Наука и технологии5 мин.

ИИ не понимает твой код, пока ты не поймешь его «мышление»

Старший вице-президент, руководитель блока «Технологий» Сбербанка Кирилл Меньшов о том, как перестать быть менеджером промптов и стать инженером, усиленным искусственным интеллектом.

Вот сценарий, знакомый каждому разработчику. Программист пишет код, просит ИИ-ассистента помочь с задачей — допустим, обработать данные в определённом формате. Система за несколько секунд выдаёт готовое решение: 30 аккуратных строк кода, с обработкой ошибок, с красивой структурой. Всё выглядит солидно. Разработчик просматривает что получилось, ставит галочку и отправляет код на проверку коллегам. Они принимают его без замечаний. Код уходит в работу.

А через неделю приходит баг-репорт. Система падает на сложном случае, о котором никто не подумал. Программист открывает тот самый файл и видит: ИИ «забыл» предусмотреть вложенные структуры данных. Синтаксически всё идеально, стилистически — образцово. Но логически решение неполное. Это классический случай: код выглядит как рабочий, но может содержать скрытую ошибку, которую человек при поверхностной проверке может не заметить.

Как показали исследования, когда разработчики решают задачи с помощью генеративного искусственного интеллекта, их объективная производительность растёт в среднем на 15–20%. Но при этом они переоценивают качество своих решений на 25–30%. Получается, что ИИ делает нас быстрее, но не внимательнее. Разработчик уверен, что получил готовое рабочее решение. На деле же — лишь прототип, который не выдержит реальных нагрузок. Ещё более тревожный факт: программисты, которые глубоко разбираются в устройстве ИИ-ассистентов, знают, как работают механизмы, чаще других переоценивают качество сгенерированного кода. Именно их код потом оказывается полным скрытых логических ошибок.

Парадокс в том, что глубокое понимание того, как устроена нейросеть, не помогает предсказать её ошибки. Зато создаёт иллюзию полного контроля. Почему так происходит? Мы относимся к LLM (large language models, большие языковые модели) как к обычным инструментам — компиляторам, линтерам, статическим анализаторам. Нажал кнопку — получил результат. Но большая языковая модель — не компилятор. Это вероятностный генератор паттернов, который не понимает семантику вашего кода, не знает контекст вашей архитектуры и не способен отличить «просто работает» от «работает правильно». Чтобы эффективно взаимодействовать с таким инструментом, нужен принципиально новый навык. Я называю его LLM-интеллект.

Когда вы работаете с джуном, вы интуитивно строите его ментальную модель: знаете, какие концепции ему нужно объяснить подробнее, где он скорее всего ошибётся, как отреагирует на критику. В психологии это называется теорией разума — способность моделировать чужие когнитивные процессы. Тот же принцип работает с ИИ — но с важной поправкой. GPT не понимает код, но имеет предсказуемую когнитивную архитектуру. Его «мышление» основано на частоте паттернов в обучающих данных, а не на корректности алгоритма. Он отлично генерирует шаблонный код, но плохо справляется с нетривиальной бизнес-логикой. Он знает синтаксис популярных языков, но путается в малоизвестных библиотеках. Он может написать unit-тест, но не понимает, что именно тестировать в вашей конкретной системе.

LLM-интеллект — это способность разработчика эффективно взаимодействовать с языковыми моделями через глубокое понимание этой когнитивной архитектуры, метакогнитивный контроль над процессом генерации и адаптивную настройку промптов. Мы видим, что разработчики с развитой теорией разума для ИИ пишут код с помощью моделей значительно эффективнее, тогда как традиционный IQ, опыт программирования или знание алгоритмов не коррелируют с качеством AI-assisted разработки. Немецкие исследователи предложили фреймворк, который я адаптировал для разработки. Чтобы эффективно работать с ИИ, нужно оперировать тремя взаимодополняющими ментальными моделями:

  • Глубокое понимание задачи, требований, сложных пограничных случаев и критериев качества. Постоянно обновляемая карта того, что модель умеет хорошо, а что плохо. Она строится только через опыт.
  • Понимание того, как выстроить диалог, когда использовать цепочку рассуждений, когда давать примеры для подражания, а когда просто попросить улучшить код.

Вернёмся к парадоксу ИИ-грамотности. Почему разработчики, знающие механизмы attention, переоценивают качество ИИ-кода? Здесь работает психологическая ловушка — иллюзия компетентности по ассоциации. Вы прочитали «Attention is All You Need»? Знаете, как работает RLHF? Это создаёт ложное ощущение, что вы понимаете, как правильно использовать искусственный интеллект для кодинга. Но техническое знание об ИИ и практический навык работы с ИИ — это два разных навыка. Исследования фиксируют метакогнитивный разрыв: высокая ИИ-грамотность коррелирует с повышенной уверенностью, но и с повышенной ошибкой в самооценке. Те, кто «знает про ИИ», настолько убеждены в корректности сгенерированного кода, что пропускают этап критического анализа. Более того, эксперименты показали, что использование ИИ нивелирует эффект Даннинга-Крюгера: и джуниоры, и сеньоры одинаково переоценивают качество AI-generated кода примерно на 25–30%. Модель выравнивает производительность, однако создаёт иллюзию корректности у всех.

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

Я сформулировал для себя шесть инженерных практик, которые помогают развивать LLM-интеллект:

  • ИИ — джуниор, не компилятор. Давайте спецификации, контекст, edge cases; всегда делайте code review.
  • Интерфейсное программирование. Сначала опишите интерфейсы и типы — это каркас, дисциплинирующий модель.
  • Калибруйте доверие. Ведите ментальную карту сильных и слабых сторон модели, обновляйте после каждого инцидента.
  • Требуйте объяснений. Просите обосновать сложные решения — это прокачивает вашу «теорию разума» об ИИ.
  • Слепая проверка. Перед коммитом ищите ошибки в коде, не сверяясь с заданием.
  • Архитектуру не делегируйте. Топология, БД, кэширование — за человеком.

В ближайшие 5–10 лет разработка с поддержкой ИИ станет стандартом, как сегодня стандартом стали IDE с автодополнением, статические анализаторы и CI/CD. Но разница между обычным и высокоэффективным разработчиком будет определяться не тем, используют ли они ИИ, а тем, как они его используют.

LLM-интеллект — это не про техническое знание трансформерных архитектур. Это про теорию разума для ИИ, метакогнитивный контроль, адаптивные стратегии промптинга, а также постоянную калибровку доверия. Такие навыки приходят не из чтения научных работ, а из рефлексии того, что работает и не работает, систематизации успешных паттернов, динамического обновления ментальных моделей.