Сегодня пятница, а значит время немного пошалить и побеседовать на разные нетривиальные темы, к примеру про нейрослоп. Лично я (хочется верить, что) научился вычислять нейрослопосодержащую статью на второй главе, иногда даже на первой, иногда просто пролистав текст даже не читая. Глаз цепляет пару знакомых клише и далее читать уже не хочется. Ну а за последний год таких постов везде (не только на Хабр) стало больше, чем когда-либо, и это утомляет.
Нейрослоп — это текст, который выдала модель, а человек поленился подчистить.
Но мой поинт не в том, что моделька писала текст, меня в таком тексте тригерит то, что автор не посчитал нужным этот текст привести в божеский вид. Я уже ворчал на эту тему у себя на канале: сначала про то, что соцсети тонут в нейроконтенте, потом собрал список маркеров, от которых меня мутит. Под вторым постом набежало сто с лишним комментов (а какашек и клоунов поставили сколько, ууу, загляденье), и многие комменты оказались местами полезнее самого поста. Из них и выросла данная публикация.
Но давайте разберёмся, почему слоп вообще читается как слоп? По каким признакам его ловить, не превращаясь при этом в параноика? И чем чистить свои черновики, чтобы не стыдно было публиковать?
Почему слоп выглядит плохо
Многие (в том числе и я) полагают, что слоп выдают ёлочки-кавычки, тире и эмодзи, но к моему большому сожалению это лишь вершина айсберга, ибо настоящая причина глубже, и она скорее про структуру.
Модель раздувает мысль, давая смысла на рубль она генерит слов на два, повторяет тезис разными словами, ходит по кругу аки кот учёный, добавляет абзацы, которые пересказывают предыдущие.
Второе — ровный ритм. В одном из комментариев это сформулировали лучше меня: все предложения примерно одной длины, как по линейке, нет коротких добивающих фраз, нет разнообразия. Живой человек сбивается, длинное предложение может быть уточнениями и скобками, а следом рубленое в три слова. Модель так не умеет, она гнёт свою линиююю.
Третье я заметил по себе. Моя голова привыкла отключаться, когда смысл размазан, по ощущению это мне напоминает баннерную слепоту, типа когда заходишь на сайт и просто не замечаешь рекламные баннеры где бы они ни были. В другом комментарии описали этот эффект примерно так: внимание отрубается на размытом тексте и, наоборот, цепляется за человеческую небрежность — забытую запятую, резкое словцо не по правилам.
Нейрослоп вычищен до стерильности, и именно сей факт выдаёт его с головой.
Получается забавно, текст грамотный, ровный, структурированный, будто научная работа по ГОСТу, а читать тяжко, словно это кисель какой-то.
Как вычислять
У меня правило простое: три или более маркеров в одном тексте — почти наверняка слоп.
Сильные признаки, про содержание и структуру:
-
Вода и повторы, когда абзацы пересказывают друг друга, перетекая из одного в другой аки градиент;
-
Ровные абзацы по два-три предложения, ровное количество абзацев в главе;
-
Конструкция “Z это Y, а не X” и вариации;
-
Заголовок вида “Прорывная технология Ж: как мы сделали О через П” с двоеточиями;
-
Натянутая структура с подзаголовком на каждые два предложения;
-
Идиотский дружелюбный тон и метафоры.
Слабые признаки, про форму:
-
Длинные тире в каждом втором предложении;
-
Кавычки-ёлочки вместо нормальных;
-
Эмодзи по поводу и без;
-
Горизонтальные разделители между абзацами;
-
Лишние двоеточия там, где двоеточие не уместно.
Хотя к слову сказать, по оформлению легко ошибиться, в блоге в одном комментарии напомнили, что Word и всякие гугл-доки сами меняют дефис на длинное тире и ставят ёлочки, а в другом — что Хабр при отложенной публикации делает то же самое. То есть тире само по себе не улика, человек мог нормально написать в редакторе, а тот уже проставил за него. Поэтому оформление — это слабый сигнал, больше всего роляет содержимое. Если текст состоит из воды, ходит по кругу, тогда и тире встаёт на своё место, а если мысль раскрыта лаконично и по делу, то ладно, прощу тире или ёлочку.
Кстати, большая статья Признаки сгенерированности текста есть в Википедии.
Но к сожалению, гарантированно отличить машину от человека не просто, в одном из комментариев человек рассказал, как написал научный текст сам, руками, в сухом academic-стиле и получил 80% “сгенерированного” в Антиплагиате.
Чем чистить текст
Перейдём к практике. Я генерю посты из рукописных черновиков агентами и не стыжусь этого. Однако, нюансик между мной и авторами слопа в том, что я сначала пишу большие куски текста, в котором передаю суть, добавляю примеры, цитаты, формирую последовательность, потом через агента довожу текст до ума, а после генерации прогоняю текст через несколько скиллов. Кстати вот они:
ru-text
Начнём с ru-text от Арсения Камышева @nafigator, сей скил про грамотность и типографику, внутри оного скила порядка тысячи правил: инфостиль, редактура, пунктуация, UX-тексты, деловая переписка, антипаттерны. Есть команда /ru-text:ru-score, которая ставит тексту оценку, удобно мерить прогресс.
Ставим в Claude Code так:
/plugin marketplace add anthropics/claude-plugins-community/plugin install ru-text@claude-community
Авто скила /ru-text на Хабре про него не писал, но есть подробный разбор от Сергея Пименова в его блоге: ru-text — плагин, который научил моих ИИ-агентов писать по-русски грамотно.
humanizer-ru
humanizer-ru от Ильи Утова @ilyautov работает несколько иначе, он убирает сами паттерны нейросети, типа канцелярита, кальки с английского, вечное “является”, негативные параллелизмы вида “не просто X, а Y”. Внутри полсотни паттернов и два десятка жёстких запретов, а фишка в том, что агент всегда выбирает самый вероятный, самый средний вариант, но человеческий текст живёт на отклонениях от этой середины, вот вокруг данной идеи и построен данный скил.
/plugin marketplace add ilyautov/humanizer-ru/plugin install humanizer-ru@ilyautov-plugins
Автор скила /humanizer-ru свои посты публикует на vc.ru, рекомендую почитать про то как он писал первую версию плагина на 37 паттернов и разбор второй версии.
stop-slop
Третьим я добавляю stop-slop, он про универсальные и англоязычные привычки моделей: кринжовые вступления, лишние наречия, ровный ритм. Хорошо ловит то, что специфично для генерации вообще (в смысле не только для русского языка).
У stop-slop своего маркетплейса нет, поэтому кладём папку скила руками в ~/.claude/skills:
git clone --depth 1 https://github.com/hardikpandya/stop-slop ~/.claude/skills/stop-slop
Ещё про хуманизаторы
На самом Хабре по теме есть много чего почитать, к примеру @SergeMNE, автор одного из форков /humanizer-ru разобрал свой опыт в статье 7 метрик, которых не хватало моему AI-хуманизатору, там как раз про то, что фразовой чистки мало, нужна ещё и структурная.
И до кучи порекомендую годноту Битва двух ёкодзун о том почему гонка детекторов и хуманизаторов делает тексты только хуже.
Как это собрать вместе
Сначала пилим черновик, в нём несколько абзацев в своём стиле чтобы модель могла настроить, потом просим агента почитать несколько предыдущих постов для референса стиля и запускаем генерацию, пусть агент пишет как может. Далее прогон через /stop-slop, /humanizer-ru и /ru-text, дополнительно прошу агента не трогать мой авторский стиль.
У меня это зашито в AGENTS.md в папке Obisidian, где я готовлю посты. Небольшой кусок оттуда:
## Общие правилаТебе запрещено использовать длинные тире (вместо них используй дефис -),фигурные кавычки ёлочки (вместо них используй "), двоеточие (кроме случаевперечисления списком), использовать эмодзи тоже запрещено. Старайся не менятьстиль речи автора, не пиши в конце что можешь что-то предложить или улучшить,делай что говорят.## Про блогЕсли пользователь просит написать пост для блога, перед работой с текстомвызови скиллы stop-slop, humanizer-ru и ru-text, сначала пиши черновик, затем прогоняйчерез правила скиллов, при этом очеловечивать надо только нейрослопкоторый ты генеришь, но авторский текст и цитаты ты не трогаешь.
Теперь про грабли, ибо без них сея публикация будет лишь наполовину полной.
Запреты в промпте работают так себе. В комментариях писали, что прямые запреты почти не помогают, а двоеточия вообще непобедимы, автор даже сам стал чаще их ставить. В другом комментарии советуют вешать запреты в конец промпта и не размазывать формулировки вроде “старайся” и “попробуй”, они ослабляют инструкцию. Я с этим спорю лишь частично, на микромоделях до сотни миллиардов параметров запреты ещё держатся, но на больших практичнее делать few-shot, показать модели слоп и сказать “вот так не пиши” ИМХО эффективнее, чем перечислять правила.
Но к сожалению только промптом слоп до конца не вычистить, поэтому и нужна постобработка отдельным проходом. В одном из комментариев, кстати, один из подписчиков гонял Claude Code в headless-режиме по разделам своей магистерской и получил на выходе 10% “сгенерированного” в Антиплагиате при том, что черновик был полностью машинный. Там же подкинули идею с pre-tool-use хуком, типа перед тем как сохранить или запостить текст, дёргать сабагента со скиллом, чтобы тот вычитывал автоматически и не приходилось гонять руками. Однако, лично я предпочитаю ходить и читать глазами тест, вносить правки и поругивать модельку за её косноязычие и подхалимаж.
Что в итоге
Нейрослоп выдаёт “пустота”, вода, повторы, ровный ритм и стерильность.
Маркеры из оформления суть лёгкий способ скипнуть текст в ленте, но судить по ним всё нельзя, потому что половину тире и ёлочек за нас расставляют редакторы, а детекторы слопа частенько брешут, поэтому писать ради того, чтобы их обмануть, бессмысленно.
Важное уточнение, я не против сгенерированного текста, просто считаю, что главное уважать читателя, поэтому рекомендую машинный текст сжимать вдвое, вернуть живой ритм, придать стиль устной речи, прогонять текст через /ru-text, /humanizer-ru и /stop-slop, стараться сохранить свой уникальный стиль, а модель пусть пишет черновик, финальную вычитку и корректуру же оставляем за собой.
Спасибо за прочтение, буду рад вашим комментариям, мой телеграм-канал @evilfreelancer.
Всем хороших выходных!
ссылка на оригинал статьи https://habr.com/ru/articles/1052480/