Agentic Coding · RUПеревод редакции 7 октября 2026

Почему LLM ошибаются

Вероятность — не логика​

LLM подчиняются выученным вероятностям, а не логическим правилам.

Логическая система выводит заключения из явно заданных посылок. Если посылки истинны, а правила корректны, заключение следует из них. Правильность заложена в самом механизме.

У LLM другой механизм. Она не хранит набор утверждений, не доказывает на их основе новые и не проверяет истинность результата. Она усвоила, какие токены, структуры и ответы обычно следуют за другими токенами, структурами и ответами. Во время инференса она генерирует продолжение, которое соответствует контексту согласно этим выученным вероятностям.

Механика LLM

Вероятность имитирует логику, но не становится логикой

Логика следует по цепочке правил от посылок к заключению. Предсказание токенов движется по вероятностному ландшафту: нужное направление может быть ясным, но полученный артефакт всё равно остаётся лишь продолжением, выбранным моделью.

Поэтому ответ LLM может выглядеть как рассуждение, хотя рассуждение им не управляет. Модель способна выдать объяснение в форме доказательства, уверенное техническое утверждение, реалистичный вызов API или стройный архитектурный довод, потому что такие формы часто встречались в данных обучения. Форма может быть логичной, даже если процесс таковым не является.

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

Это фундаментальное ограничение: вероятность может имитировать правильность, но не гарантирует её.

Поэтому ответ LLM нужно считать кандидатом на результат, а не проверенным ответом. Сначала оцени, имеет ли он нужную форму. Затем проверь, действительно ли он верен: запусти тесты, проверь ссылку на источник, изучи API, проверь ограничение, воспроизведи результат.

Ошибки людей и LLM оставляют разные следы​

Люди постоянно ошибаются, поэтому возникает соблазн считать все ошибки одной проблемой. Это не так, и причина — в причинности. У человеческой ошибки всегда есть причина: человек устал, болен, испытывает давление или преследует цель, ради которой твоя неудача ему выгодна. Эту причину можно найти и на неё повлиять. Человеческие ошибки оставляют такие причины в виде подсказок — пробел в знаниях, усталость, бегло прочитанное требование, предубеждение. Со временем они складываются в предсказуемые области ошибок. Начинающему инженеру могут плохо даваться распределённые системы, а уставший ревьюер может пропускать тонкие дефекты. Постепенно эти закономерности помогают команде настраивать ревью.

LLM не даёт сопоставимого объяснения в человеческих категориях. Модель, только что выполнившая безупречный архитектурный анализ, в следующем предложении может сложить 2+2 и получить 5. Сбой может коррелировать с охватом обучающих данных, формой задачи, качеством контекста или настройкой инференса, но отдельный ответ часто не позволяет понять, какой фактор сыграл роль.

Структура ошибок

Ошибки людей и LLM оставляют разные следы

Причинные ошибки выявляют фактор, от которого можно защититься; стохастическая модель порождает правдоподобные ошибки без такой причины, поэтому доверию нужны внешние подтверждения.
Почему подсчёт букв и простая арифметика вводят в заблуждение

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

Такие тесты измеряют надёжность оркестрации инструментов, а не понимание. Модель, которая не смогла посчитать буквы r в слове «strawberry», всё равно может правильно рассуждать об архитектурных компромиссах.

Практический вывод: не доверяй LLM на основании человеческих представлений о сложности задачи. Блестящий анализ архитектуры не делает следующий шаг — тривиальную проверку ограничения — безопасным. Более длинные цепочки дают больше возможностей непроверенной ошибке повлиять на дальнейшую работу. Выполняй проверку на границах этапов, прежде чем непроверенное состояние успеет распространиться.

Это также объясняет, почему дополнительный контекст не устраняет проблему. Он даёт модели больше материала для формирования ответа, но не превращает вероятность в логику. Модель всё ещё может придать вес не тем свидетельствам, упустить ограничение или продолжить локально правдоподобную закономерность вместо глобально правильной.

Локальное предсказание, глобальные последствия​

Предыдущая формулировка — вероятность имитирует логику, но не гарантирует её — описывает философское различие. Однако есть и более острое практическое следствие: каждый токен выбирается как лучшее локальное продолжение, тогда как ответ в целом требует глобальной согласованности. Эти две цели могут конфликтовать.

Механика LLM

Локальные предсказания складываются в глобальный результат

Каждый выбранный токен правдоподобен в текущем контексте. После выбора он становится контекстом следующего предсказания, поэтому небольшие локальные решения могут привести итоговый ответ к иному глобальному результату.

Ошибочный токен в начале ответа не остаётся локальным. Он входит в контекст каждого следующего предсказания, меняя вероятности дальнейшего продолжения. Модель может исправиться, но просьба проверить собственную работу — всё ещё очередная генерация модели. Исправление становится надёжнее, когда цикл получает внешнюю обратную связь: результаты инструментов, выполнение кода, тесты или найденные источники.

Сгенерированный текст также способен подкреплять сам себя. Повторяющаяся фраза, ложная посылка или некорректный план становятся свидетельством для следующего предсказания и облегчают продолжение в том же направлении. Если запуск начинает повторяться или защищать ошибочное состояние, останови его. Удали проблемный контекст, заново изложи проверенное состояние и продолжи с этой границы.

Во время обычного инференса веса модели остаются неизменными. Сброс контекста работает потому, что меняет доступный модели ввод, а не потому, что модель научилась на неудачном запуске.

Контекст — единственное рабочее состояние модели. Следующий вопрос — какая его часть остаётся пригодной к использованию по мере роста.