Чем мощнее становятся языковые модели, и чем шире они распространяются, — тем больше на нашу бедную головушку проливается дождей из лягушек. Еще десять лет назад можно было с уверенностью отличить графомана от литературно-одаренного человека, а хорошего разработчика — от вкатуна с претензией на экспертизу. Достаточно было посмотреть на пару абзацев текста (кода) — и становилось понятно: этот рифмует «кровь–любовь», а вон тот — сортирует коллекции брутфорсом.

Хороший прозаик никогда не поставит в одно предложение три прилагательных подряд, а хороший программист — не станет использовать связные списки вместо массивов под большой нагрузкой на доступ по индексу. Согласно банальной логике, эти кванторы существования обратимы: написал единожды алгоритм O(n³) там, где можно обойтись O(n·log(n)) — иди учи матчасть, а потом возвращайся к нам в теплый коллектив джунов.

Лекала в те времена были золотыми, а сито — мелкоячеистым, мышь не проскочит. Мы просили в качестве тестового задания решить простейшую задачку, строчек на сто кода. По этой сотне строчек было видно, насколько зрело владеет кандидат языком (программирования). Декомпозиция, идиоматика, да вон хоть именование переменных — все, как на ладони. Если человек на руби вместо редьюса — объявляет аккумулятор вне скоупа, а потом его мутирует внутри цикла — нам не по пути (в других компаниях могут быть другие любимые песни, но общий посыл — понятен).

И тут к нам пришли ассистенты: генераторы кода, романов, стихов, картин.

Ассистента можно не только попросить поправить орфографию, или переписать код в идиоматическом виде — но и просто скормить ему ТЗ и на выходе получить работоспособное приложение. В случае нашего тестового на сто строчек — даже красивое. Мне лично жизни не хватит — нарисовать логотип хоть сколько-нибудь сравнивый по качеству с тем, что джеминай сделает за пять секунд. Хотя код я по-прежнему пишу лучше, и предпочитаю делать это в одно человеческое лицо, без ансамбля помощников.

Человек по��уял подвох. И начал защищаться.

Как это среди гауссовой медианы по популяции принято — простейшим способом.

Вместо того, чтобы оценивать качество — мы оцениваем автора (производителя, мастерового). «Это slop» — превентивный аргумент, позволяющий даже не задумываться о качестве продукта. Интернет переполнен текстами (по иронии судьбы, на 98% состоящими из слопа), объясняющими, как отличить рукотворные произведения от выблева искусственного ассистента на калифорнийских мощностях. Spotify и даже SoundCloud напрямую запрещает распространение музыки, созданной при минимизированном участии живого человека.

Мы выплескиваем с водой ребенка, как мне кажется.

Языковые модели (ассистенты) лепят все подряд в списки не потому, что им нравятся буллиты (им ничего не нравится, они — бездушные сухарики), но потому, что они так научились на наших же текстах домодельной эпохи (сейчас не будем про петлю обучения, уробороса качества и прочие сепульки — это другая проблема, нерелевантная той, которую я пытаюсь обсудить). Человек лучше воспринимает систематизированную информацию, короткие предложения и четкие тезисы. Поэтому рубленый список — лучше толстовских фраз на полторы страницы, как минимум — в технических текстах.

Клеймить текст «слопом» и отвергать его только поэтому — глупо. То же самое относится к коду. Чтобы понять, насколько код хорош — достаточно заглянуть в один файл, для текста — достаточно буквально пары абзацев.

Хороший рассказ, стихотворение, или имплементацию алгоритма — БЯМ не напишет никогда, это совершенно очевидно по той простой причине, что и в литературе, и в разработке — ценятся: импровизация, новые подходы, фантазия и нестандартность мышления; все то, чего даже идеально натренированная модель лишена напрочь, по определению и по математическому обеспечению. Но в систематизации знаний — сиречь, в создании статей на хабр, например, — языковые модели легко выиграют соревнование у 99% антропоморфных авторов.

Это же касается любых рутинных задач разработки. Написания документации. Создания unit (подчеркиваю: unit) тестов. Property-based тестирование, требующее огонька и задора в определении тех самых свойств — навряд ли. Создание примеров использования в документации — нет, конечно. Но саму документацию, «этот модуль отвечает за создание ��стойчивого к сбоям подключения к СУБД, …» — запросто.

К сожалению, при этом на каждой развилке принятия решений выбор «правильной» ветки может оказаться ошибочным, модель «свернет не туда» — и на выходе получится настоящий мусор. Без компетентного редактора — творения БЯМ лучше в свет не выпускать. Я не рискну ни при каких условиях отправить не то, что созданный — переведенный на китайский — текст — живому китайцу. Вайбкодеры — люди, полностью лишенные инстинкта самосохранения, потому, что когда оно внезапно поломается (а оно поломается, как и весь рукописный софт, на котором модель обучалась) — клиент спросит по всей строгости (а я фрилансил в 90-е и мне доподлинно известен смысл выражения «по всей строгости» в данном контексте).

При наличии компетенций для вычитки, проверки и коррекции, — привлечение БЯМ в качестве ассистента уже не представляется чем-то недостойным. Я лично настолько ценю собственный стиль (и в текстах, и в коде), что меня не устраивает буквально ни единая строка, созданная генератором. Но для расширения технической документации — вполне. А если представить себе профессионала Васю, который без устали херачит на плюсах и готов бы поделиться найденной фишкой последнего стандарта, — да вот беда, тройка со скрипом по литературе отваживает, — я обеими руками за то, чтобы ему помог написать текст бездушный ассистент. В конце концов, ровно такой функциональностью обладал Лившиц, и, если бы не он, курс теоретической физики Ландау никогда бы не увидел свет.

В общем, я категорически против линчевания ст��тей (кода) по принципу «пахнет ллмкой». Откройте свой проект на гитхабе пятилетней давности, или юношеские стихи, фантастические рассказы, что вы там писали под партой…

Иногда тексты, написанные БЯМ, — не только полезны для неофитов, но и значительно превосходят домотканные по качеству. С джейсоноукладкой то же самое. В конце концов, дать задание и посмотреть на результат — вопрос буквально десяти минут. Не понравится — всегда можно git checkout . и перее^W переписать по-своему.

Претензия «это slop» — применительно к любому набору информации (букв, пикселей, нот), — чистой воды argumento ad hominem.

Давайте перестанем считать буллиты в списках текстов, и вернемся к оценке по качеству.