Меня часто поражает, как технически грамотные люди спорят, есть ли у LLM интеллект или это всего лишь математические вычисления по определенному алгоритму без зачатков разума. И что самое интересное, иногда оппонентами в споре за наличие интеллекта у генеративных нейросетей выступают люди, которые таким образом рекламируют свое IT-решение, не понимая, что тем самым они только создают себе проблемы.
Ведь создавая рассуждающую иллюзию интеллекта, разработчики фактически ставят крест на возможности какого-либо реального применения подобных решений в серьезных задачах, так как имитация разума превращает потенциально полезный рабочий инструмент в игру на бубне без каких-либо гарантий качества и воспроизводимости полученных результатов.
Ложные ожидания от внедрения ИИ
Подавляющее большинство статей о прорывах в области ИИ преследуют одну простую цель - продать свое решение, и целевых аудиторий как минимум две:
Первая - это люди с недостаточной квалификацией, которым внушают, что с помощью ИИ они смогут выполнять работу более высококлассных специалистов, что создает ложное чувство расширения собственных возможностей и якобы дает возможность самостоятельно писать программы без каких-либо навыков программирования (это тот самый вайб-кодинг), которое разбивается о первую же реальную и нетривиальную задачу.
И вторая, более серьезная аудитория, - это менеджмент компаний, которым продают идею оптимизации расходов: зачем платить команде дорогих сотрудников, если можно заменить их одним специалистом с низкой квалификацией и подпиской на ИИ-сервис? Расчет прост: сократить фонд оплаты труда, заменив обычный, но дорогой человеческий труд на дешевый, но непредсказуемый на основе ИИ-агентов.
В сфере разработки программного обеспечения этот тренд проявился особенно ярко. Некоторые компании поддались всеобщей эйфории и начали массово сокращать опытные команды и заменять их более дешевыми решениями с привлечением ИИ. Но оценка первых результатов оказалась отрезвляющей. Процесс разработки превратился в непредсказуемое и неконтролируемое шаманство. В итоге на рынке наметилась обратная тенденция: компании, которые, уже столкнувшись с хаосом после внедрения ИИ, начинают без шума и пафоса возвращать ранее уволенных сотрудников.
Мои не оправдавшиеся надежды
Поводом для написания этой статьи послужила очередная психологическая война (не найду более подходящего определения) с LLM в попытке решить относительно простую задачу, а именно написать систему сборки проекта на CMake вместо пользовательского Makefile. Сам проект включает в себя пару файлов на C++, которые компилируются с помощью clang. Из одного получается плагин для компилятора (обычный so-файл), а из второго - исполняемый файл с юнит-тестами для Google Test Framework.
С учетом того, что изначально сборка выполняется корректно, а все тесты проходят, я надеялся, что подобная задача будет по плечу любому ИИ-помощнику. К сожалению, ожидания полностью разошлись с реальностью, так как мало того, что сборка проекта с помощью CMake так и не заработала, так еще Имитация Интеллекта самовольно создала новый файл, хотя я уже ученый и в промте стоял явный запрет на такие действия (не создавать новые файлы, кроме явно перечисленных). Кроме этого, была самопроизвольно изменена лицензия проекта с LGPL на MIT и был полностью изменен файл документации, где подробное описание проекта было заменено на два десятка строк с описанием процесса сборки, которая, кстати, так и не заработала!
Это был последний раз, когда я пытался использовать ИИ для рефакторинга существующего кода, так как не представляю, как в принципе можно работать с инструментами, если они могут произвольным образом выдавать то полную чушь, то нормальный код без возможности какого-либо контроля со стороны пользователя и без возможности повторения предыдущих удачных попыток.
Разработка ПО - не шаманство!
Разработка ПО - уже давно инженерия с контролем качества и воспроизводимостью результатов. И один из основных процессов в разработке ПО - это отладка кода, которая зачастую заключается в многократном повторении одного и того же сценария, чтобы найти причину возникновения неправильного поведения программы.
Современные большие языковые модели (LLM) не «понимают» задачу в инженерном смысле. Это вероятностные системы, которые не вычисляют единственно верный ответ, а на основании входных данных и запроса (промта) генерируют наиболее вероятную последовательность слов (токенов) на основе гигантского массива данных, на котором их обучали.
А теперь представим сценарий: разработчик использует ИИ для генерации фрагмента кода. Он пишет промт, на основании которого получает рабочий код и внедряет его. Через неделю ему нужно внести небольшое изменение. Он пишет новый промпт для доработки кода и все перестает работать. Он пытается поправить исходный пром и... тоже ничего не получается. В чем причина: только ли в изменении запроса? Или модель просто сгенерировала другой вариант из-за изменившейся «фазы луны» (нового SEED, изменившихся системного промта у провайдера или дообучения модели)?
Один и тот же промт, отправленный на одну и ту же модель, может выдавать разные данные, и ни о какой воспроизводимости результатов здесь не может быть и речи, так как на это влияет множество дополнительных факторов:
Существует много провайдеров и их моделей Модели от OpenAI, Google, Anthropic или GigaChat на один и тот же запрос дадут разный код, потому что их архитектуры и данные для обучения различаются.
Обновления модели - провайдер может обновить модель без уведомления пользователя. Та версия, что вчера генерировала идеальный код, сегодня после обновления может выдавать совершенно другой результат.
Скрытые настройки - системный промт (внутренние инструкции, которые модель получает перед обработкой вашего запроса), настройки цензуры и безопасности постоянно меняются провайдером, и это напрямую влияет на генерацию итогового результата.
Temperature - параметр, который контролирует степень «креативности» и случайности ответа, и даже небольшое его изменение кардинально меняет результат.
SEED - начальное значение для генератора псевдослучайных чисел, и если оно не зафиксировано, то каждый запуск модели с одними и теми же данными также будет уникальным.
В итоге работа с ИИ превращается в настоящее шаманство. Вы получили хороший результат? Отлично! Но вы не можете гарантировать, что получите его снова. Отсутствие повторяемости результата делает невозможным разработку ПО из-за непредсказуемости даже малейших доработок существующего кода и невозможности отладки промптов!
Воспроизводимость результатов как обязательное требование к ИИ
Прежде чем начинать использовать любые ИИ-модели как серьезный инструмент при разработке ПО, необходимо решить проблему воспроизводимости (повторяемости) результатов хотя бы в рамках одной версии модели.
У пользователя должен быть какой-либо механизм, который будет гарантировать, что на один и тот же запрос можно получить один и тот же ответ (неважно, правильный он или нет), иначе без возможности повторного воспроизведения запросов, ИИ навсегда останется игрушкой, а не рабочим инструментом инженеров.
Самый простой и очевидный вариант реализации подобного механизма - это в начале сессии или при генерации ответа отдавать вместе с ним специальный токен, который включает в себя (или каким-то образом идентифицирует) все внутренние настройки сессии провайдера.
Он может включать в себя хэш системного промта, настройки безопасности и цензуры, начальный SEED для генератора случайных чисел и т. д. Тогда при повторном обращении к API пользователь сможет передать этот токен вместе с исходным запросом, а провайдер использует те же самые внутренние настройки, чтобы пользователь получил тот же самый результат.
Подобная функциональность потребует переделок уже используемых систем. К тому же она может быть неинтересна массовому пользователю, который решил просто поиграться или которому не требуется воспроизводимость результатов (например, при работе с обычным текстом), но при разработке программного обеспечения повторяемость результатов запросов по конкретному промту очень нужна (даже если за это придется платить отдельно).
И раз уж на эту статью меня уговорили добавить плашку «Сезона ИИ в разработке», то было бы логично с моей стороны предложить разработчикам GigaChat попробовать реализовать механизм воспроизводимости результатов в рамках своего сервиса. Это превратило бы GigaChat из интересного экспериментального продукта в профессиональный инструмент, который можно без опаски интегрировать в серьезные процессы разработки программного обеспечения.
Комментарии (5)

tenzink
11.12.2025 06:27Воспроизводимость - дорогая фича. Она мешает разработке и поддержке, а пользователь, завязавшийся на неё, скорее всего прикуёт себя к конкретной сборке конкретной LLM. Это более сильная и болезненная привязка, чем версия другого софта, например компилятора или OS

Dobr
11.12.2025 06:27Я конечно похож на моську, которая тявкает на опытного сеньора (судя по профилю автора), но позвольте вставить свои 5 копеек.
1) "LLM — это вероятностная система, а значит, не интеллект". А человек — не вероятностная система? Да, LLM — это не мозг с синапсами и нейротрансмиттерами, где "интеллект" возникает из хаотичной, но адаптивной сети (стохастика в нейронных спайках или пластичность в гиппокампе). Это всего лишь вероятностный автокомплит текста, обученный на петабайтах данных, без настоящей саморефлексии, префронтальной коры и других причуд, свойственным кожаным.
2) Temperature=0 + фиксированный seed + фиксированная версия модели + фиксированные параметры дают детерминизм. Это тривиальная вещь, которую нормальные провайдеры уже умеют (или могут сделать, и многие сделали на уровне API).
3) И мое любимое — ложные ожидания. С новичками, которые вайбкодят. Так это только начало. Сейчас они научатся писать промпты, вырастет контекстное окно у моделей, адаптируются инструменты (привет Antigravity); и они уже начнут вытеснять мидлов по эффективности. А менеджмент компаний? Напоминает ситуацию, когда было 20 токарей, но купили ЧПУ станок, и теперь он один делает работу за 20 токарей. Проблема тут в том, что уволили 20 сотрудников, наняли эникейщика, а надо было нанимать опытного оператора, который сможет работать со станком.
Лично я считаю, что сейчас хайп по ИИ, как и с любыми технологиями, которые начали сильно изменять нашу жизнь. НО вот этот текст звучит как ворчание луддита, который требует, чтобы квантовая механика работала по законам Ньютона, потому что так надежнее. Индустрия уйдет вперед, также, как это было с изобретениями разных машин и методов.
зы: я осознанно использую em dash
Bardakan
есть две категории людей. Одни говорят, что ИИ полностью заменяет рабочих, другие - что ИИ вообще ничего не умеет. И те, и другие неправы. Вы относитесь ко второй категории.
rsashka Автор
Ну вы то точно относитесь к первой, тогда как вижу реальный потенциал при использовани LLM, но в текущей реализации есть серьезные проблемы при их использовании в разработке ПО, о чем я и написал.
Bardakan
где конкретно я написал "считаю, что ии полностью заменит рабочих"?
У меня одна модель не смогла написать слово по буквам в обратном порядке - есть задачи, с которыми ИИ не справляются, например, из-за особенностей реализации, а другая (claude opus 4.5 с режимом high) за один промт в пару предложений создала MVP продукт на node.js с минимальными ошибками - и то из-за того, что я не уточнял детали.
Вы же даже не указали какую именно модель использовали. Может там какой-нибудь qwen 0.5B, который почти ничего не умеет.