No. 003Детерминизм7 мин чтения

Уверенно ошибочная выручка: почему LLM не умеют считать

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

В октябре 2025 года Deloitte вернула деньги австралийскому правительству. Компания выполнила обзор стоимостью 440 000 австралийских долларов для Министерства занятости и трудовых отношений; опубликованный отчёт содержал выдуманную цитату из решения федерального суда и ссылки на несуществующие научные работы (The Guardian, 2025). В исправленной версии было раскрыто, что при подготовке использовался GPT-4o. По последующим данным, возврат составил около 97 000 австралийских долларов — последний транш по контракту.

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

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

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

Правдоподобное — не вычисленное

Инстинкт подсказывает списать неверные числа на незрелость модели: следующая версия наверняка считает правильно. Исследования говорят, что сбой структурный, и они на удивление единодушны в объяснении причин.

GPT-4, которому предложили перемножить два трёхзначных числа, дал правильный ответ в 59% случаев без подсказок; ChatGPT — в 55% (arXiv, 2023). На четырёх цифрах GPT-4 упал до 3%. На пяти — до 0%. Авторы Faith and Fate проследили механизм: трансформеры решают составные задачи, сопоставляя линеаризованные фрагменты увиденного — поиск по шаблону, а не процедура. Обрыв происходит именно там, где шаблоны заканчиваются.

Сложение не безопаснее. Анализ 2025 года показал, что LLM складывают с помощью эвристики однозначного предпросмотра, а не алгоритма: точность рушится именно там, где переносы каскадируются более чем на один разряд, — независимо от промптинга или токенизации, а сбои предсказуемы только из структуры переносов (arXiv, 2025). Систематически, а не случайно. Модель не почти вычисляет. Она делает нечто иное, что часто совпадает с вычислением.

GSM-Symbolic от Apple закрыл оставшуюся лазейку — что, возможно, это касается только сложной арифметики (Apple, 2024). Возьмите задачи уровня начальной школы и измените только числа: каждая протестированная передовая модель стала хуже. Добавьте одно правдоподобно звучащее, но нерелевантное условие — точность упала на 65%. И точность заметно варьировалась при разных запусках одного и того же шаблона вопроса: одна и та же задача, переформулированная, возвращает другое распределение ответов. Последнее наблюдение объясняет проблему демо. Демо — это одна выборка из распределения. Аудит — это само распределение.

Вердикт авторов — «современные LLM не способны к подлинному логическому рассуждению» — необычно прямолинеен для научной статьи. Никто его не опроверг.

100 50 0 accuracy, % zero-shot scratchpad 59 92 3×3-digit 4 4×4-digit 0 5×5-digit
Точность GPT-4 при умножении n-значных чисел: без подсказок vs пошаговый scratchpad. Faith and Fate, NeurIPS 2023.

Очевидные решения — в измерениях

Каждая команда, столкнувшаяся с этим сбоем, тянется к одним и тем же четырём решениям. Каждое из них было измерено.

Извлечение. FinanceBench задал GPT-4-Turbo 150 вопросов о публичных финансовых отчётах, снабдив систему документами через retrieval. Неправильно ответил или отказался ответить — 81% (Patronus AI, 2023). Шестнадцать конфигураций — GPT-4-Turbo, Llama 2, Claude 2, векторные хранилища, длинный контекст — показали слабые места в 2 400 ответах, проверенных вручную, а модели галлюцинировали цифры всякий раз, когда нужные страницы с доказательствами не были поданы идеально. Retrieval достаёт документ. Модель всё равно искажает число.

Заземление. BBC дала ChatGPT, Copilot, Gemini и Perplexity прямой доступ к собственным статьям и спросила о новостях. 51% ответов имели существенные проблемы; 91% — хотя бы какие-то. 19% ответов, ссылавшихся на материалы BBC, содержали фактические ошибки — неверные утверждения, неверные числа, неверные даты — а 13% цитат, приписанных статьям BBC, были изменены или никогда не существовали (BBC, 2025). Источник был под рукой. Числа всё равно искажались.

Более умная модель. Собственная системная карта OpenAI сообщает, что o3 галлюцинирует в 33% случаев на промптах PersonQA, а o4-mini — в 48%, против 16% у более старой o1 (OpenAI, 2025). По собственным измерениям вендора, новые reasoning-модели галлюцинируют в два-три раза чаще предшественника. o3 просто делает больше утверждений — больше правильных и больше выдуманных, с одинаковой температурой уверенности.

Лучший промптинг. Пошаговый scratchpad-промптинг поднимает точность GPT-4 при умножении трёхзначных чисел с 59% до 92% (arXiv, 2023). Лучше — и всё равно одно неверное произведение из двенадцати. Даже исчерпывающий fine-tuning GPT-3 на четырёхзначном умножении давал около 40% на новых четырёхзначных задачах и 0% на пятизначных. Потолок — в механизме, а не в промпте.

Каждое решение улучшает шансы. Ни одно не меняет того, кто выполняет арифметику. Ответ по-прежнему сэмплируется из распределения правдоподобных чисел, и ровно один элемент этого распределения является суммой.

0 50 100 % RETRIEVAL · FINANCEBENCH 2023 wrong or refused 81% GROUNDING · BBC 2025 significant issues 51% factual errors introduced 19% REASONING · PERSONQA, OPENAI 2025 o1 (predecessor) 16% o3 33% o4-mini 48%
Частота сбоев после применения решений. FinanceBench 2023 · BBC 2025 · системная карта OpenAI o3 / o4-mini 2025.

Измените того, кто считает

Структурный ответ — разделение труда, проведённое точно по линии компетентности. Языковые модели превосходны в языке и ненадёжны в бухгалтерии, поэтому модель никогда не должна быть тем, кто вычисляет.

SQAI построен на этом разделении. Модель создаёт типизированное намерение — sum amount where region = "east" — а SQAI runtime исполняет его как скомпилированный код: проверенный по контракту с хэш-привязкой, сверенный с политикой, вычисленный в float64 в одном потоке, возвращённый с провенансом.

{
  "status": "ok",
  "value": 2130.5,
  "rows_matched": 5
}

Это 2130.5 — не вероятный токен. Это сумма, полученная детерминистическим ядром из поверхности 4 574 доступных только для чтения возможностей в 445 модулях — 4 564 из них полностью детерминированы — с ответом за 0,83–0,93 мс в прогретом состоянии.

Детерминированный означает проверяемый. finance.npv(0.1, [-1000, 300, 420, 560, 680]) возвращает 505.020148896933 с хэшем вычисления b74f67d0… — одно и то же значение и один и тот же хэш независимо от того, выполняется ли вызов из TypeScript или Python, поскольку результаты хэшируются по единой канонической JSON-форме. Утверждение сформулировано честно: детерминированность в рамках объявленной области исполнения, с конвертом, фиксирующим версию runtime, платформу, режим точности и количество потоков, — без избыточных претензий. Ответ модели на тот же промпт не может гарантировать совпадение с собой при следующем запуске. Этот воспроизводится побайтово, спустя месяцы, на любом из языков.

Есть и вторая утечка, которую большинство стеков оставляет открытой. Подключите вычислительный движок, а затем влейте сырые строки запроса в контекст «для суммаризации» — и модель тихо переосмыслит и переизобретёт числа из строк. SQAI рассматривает контекст как управляемую границу: не более 25 строк, 250 ячеек и 32 000 байт когда-либо достигают модели, за стандартным лимитом в 100 строк и жёстким потолком исполнения в 1 000. Усечение всегда объявляется, поэтому модель не может честно утверждать, что просуммировала увиденное. Частичные строки никогда не показываются, чтобы ни одна неполная запись не соблазнила её на домысливание. Агрегаты вычисляются до границы. Модель получает ответ, а не домашнее задание.

И политика — не промпт. Разрешённые источники, поля и функции фиксируются в коде при вызове createSQAI() и проверяются внутри процесса до исполнения; входные данные инструмента модели не содержат никаких полей политики, поэтому расширять нечего. Запрос возможности за пределами политики не порождает творческого обходного пути — он порождает policy_denied_function. Аргумент тот же, что и в основе запрета агентам писать SQL: не управляйте сгенерированным текстом инструкциями по принципу наилучших усилий; управляйте исполнением с помощью списков разрешений, которых текст не может коснуться.

GOVERNED BOUNDARY MODEL language in, language out sum(amount) · region = "east" typed intent — never a SQL string ENGINE contract → policy → execute float64 · 1 thread · sub-ms warm value 2130.5 · rows 5 plan_hash f87610d8afeb… byte-identical replay · TS ≡ PY answer, not rows ≤ 25 rows · ≤ 250 cells · ≤ 32,000 B truncation always declared
Разделение труда: модель создаёт типизированное намерение; ядро float64 вычисляет; ограничения на строки не пускают сырые данные в контекст.

Кто считал?

В следующий раз, когда AI-система подаст вам цифру выручки, один вопрос разделит все архитектуры на рынке: кто выполнял арифметику?

Если ответ — «модель», у вас на руках число с отличной осанкой и неизвестным происхождением, а единственный путь верификации — человек, который переделывает работу заново: именно то, что вы пытались автоматизировать. Фальсификации Deloitte были обнаружены потому, что один учёный за пределами процесса решил проверить. Это не контроль. Это удача.

Если ответ — «SQAI runtime, и вот хэш», верификация — это воспроизведение: то же намерение, тот же runtime, те же байты. Сбой становится тоньше — и тише — когда неверное число приходит из разветвлённого джойна, а не из неверного сложения, но это отдельная история. Однако дисциплина умещается в одном предложении: модель пишет вопрос, но никогда — ответ.

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