Чем мощнее становятся языковые модели, и чем шире они распространяются, — тем больше на нашу бедную головушку проливается дождей из лягушек. Еще десять лет назад можно было с уверенностью отличить графомана от литературно-одаренного человека, а хорошего разработчика — от вкатуна с претензией на экспертизу. Достаточно было посмотреть на пару абзацев текста (кода) — и становилось понятно: этот рифмует «кровь–любовь», а вон тот — сортирует коллекции брутфорсом.
Хороший прозаик никогда не поставит в одно предложение три прилагательных подряд, а хороший программист — не станет использовать связные списки вместо массивов под большой нагрузкой на доступ по индексу. Согласно банальной логике, эти кванторы существования обратимы: написал единожды алгоритм O(n³) там, где можно обойтись O(n·log(n)) — иди учи матчасть, а потом возвращайся к нам в теплый коллектив джунов.
Лекала в те времена были золотыми, а сито — мелкоячеистым, мышь не проскочит. Мы просили в качестве тестового задания решить простейшую задачку, строчек на сто кода. По этой сотне строчек было видно, насколько зрело владеет кандидат языком (программирования). Декомпозиция, идиоматика, да вон хоть именование переменных — все, как на ладони. Если человек на руби вместо редьюса — объявляет аккумулятор вне скоупа, а потом его мутирует внутри цикла — нам не по пути (в других компаниях могут быть другие любимые песни, но общий посыл — понятен).
И тут к нам пришли ассистенты: генераторы кода, романов, стихов, картин.
Ассистента можно не только попросить поправить орфографию, или переписать код в идиоматическом виде — но и просто скормить ему ТЗ и на выходе получить работоспособное приложение. В случае нашего тестового на сто строчек — даже красивое. Мне лично жизни не хватит — нарисовать логотип хоть сколько-нибудь сравнивый по качеству с тем, что джеминай сделает за пять секунд. Хотя код я по-прежнему пишу лучше, и предпочитаю делать это в одно человеческое лицо, без ансамбля помощников.
Человек почуял подвох. И начал защищаться.
Как это среди гауссовой медианы по популяции принято — простейшим способом.
Вместо того, чтобы оценивать качество — мы оцениваем автора (производителя, мастерового). «Это slop» — превентивный аргумент, позволяющий даже не задумываться о качестве продукта. Интернет переполнен текстами (по иронии судьбы, на 98% состоящими из слопа), объясняющими, как отличить рукотворные произведения от выблева искусственного ассистента на калифорнийских мощностях. Spotify и даже SoundCloud напрямую запрещает распространение музыки, созданной при минимизированном участии живого человека.
Мы выплескиваем с водой ребенка, как мне кажется.
Языковые модели (ассистенты) лепят все подряд в списки не потому, что им нравятся буллиты (им ничего не нравится, они — бездушные сухарики), но потому, что они так научились на наших же текстах домодельной эпохи (сейчас не будем про петлю обучения, уробороса качества и прочие сепульки — это другая проблема, нерелевантная той, которую я пытаюсь обсудить). Человек лучше воспринимает систематизированную информацию, короткие предложения и четкие тезисы. Поэтому рубленый список — лучше толстовских фраз на полторы страницы, как минимум — в технических текстах.
Клеймить текст «слопом» и отвергать его только поэтому — глупо. То же самое относится к коду. Чтобы понять, насколько код хорош — достаточно заглянуть в один файл, для текста — достаточно буквально пары абзацев.
Хороший рассказ, стихотворение, или имплементацию алгоритма — БЯМ не напишет никогда, это совершенно очевидно по той простой причине, что и в литературе, и в разработке — ценятся: импровизация, новые подходы, фантазия и нестандартность мышления; все то, чего даже идеально натренированная модель лишена напрочь, по определению и по математическому обеспечению. Но в систематизации знаний — сиречь, в создании статей на хабр, например, — языковые модели легко выиграют соревнование у 99% антропоморфных авторов.
Это же касается любых рутинных задач разработки. Написания документации. Создания unit (подчеркиваю: unit) тестов. Property-based тестирование, требующее огонька и задора в определении тех самых свойств — навряд ли. Создание примеров использования в документации — нет, конечно. Но саму документацию, «этот модуль отвечает за создание устойчивого к сбоям подключения к СУБД, …» — запросто.
К сожалению, при этом на каждой развилке принятия решений выбор «правильной» ветки может оказаться ошибочным, модель «свернет не туда» — и на выходе получится настоящий мусор. Без компетентного редактора — творения БЯМ лучше в свет не выпускать. Я не рискну ни при каких условиях отправить не то, что созданный — переведенный на китайский — текст — живому китайцу. Вайбкодеры — люди, полностью лишенные инстинкта самосохранения, потому, что когда оно внезапно поломается (а оно поломается, как и весь рукописный софт, на котором модель обучалась) — клиент спросит по всей строгости (а я фрилансил в 90-е и мне доподлинно известен смысл выражения «по всей строгости» в данном контексте).
При наличии компетенций для вычитки, проверки и коррекции, — привлечение БЯМ в качестве ассистента уже не представляется чем-то недостойным. Я лично настолько ценю собственный стиль (и в текстах, и в коде), что меня не устраивает буквально ни единая строка, созданная генератором. Но для расширения технической документации — вполне. А если представить себе профессионала Васю, который без устали херачит на плюсах и готов бы поделиться найденной фишкой последнего стандарта, — да вот беда, тройка со скрипом по литературе отваживает, — я обеими руками за то, чтобы ему помог написать текст бездушный ассистент. В конце концов, ровно такой функциональностью обладал Лившиц, и, если бы не он, курс теоретической физики Ландау никогда бы не увидел свет.
В общем, я категорически против линчевания статей (кода) по принципу «пахнет ллмкой». Откройте свой проект на гитхабе пятилетней давности, или юношеские стихи, фантастические рассказы, что вы там писали под партой…
Иногда тексты, написанные БЯМ, — не только полезны для неофитов, но и значительно превосходят домотканные по качеству. С джейсоноукладкой то же самое. В конце концов, дать задание и посмотреть на результат — вопрос буквально десяти минут. Не понравится — всегда можно git checkout . и перее^W переписать по-своему.
Претензия «это slop» — применительно к любому набору информации (букв, пикселей, нот), — чистой воды argumento ad hominem.
Давайте перестанем считать буллиты в списках текстов, и вернемся к оценке по качеству.
Источник


