Почему LLM плохо считают: токенизация, решения, инструменты
Большие языковые модели (LLM) научились писать код, сочинять стихи и проходить экзамены на уровне человека. Но попросите GPT-4 сложить 8367 и 2948 — и шанс получить неправильный ответ неожиданно высок. Проблема не в «глупости» модели, а в фундаментальном ограничении архитектуры Transformer.
Что такое LLM и причём тут арифметика
LLM (Large Language Model) — это нейросеть, которая обрабатывает текст как последовательность токенов, предсказывая следующий токен на основе предыдущих. Токен — это не буква и не слово, а фрагмент текста, определённый токенизатором. Для модели число 8367 — это не «восемь тысяч триста шестьдесят семь», а набор токенов вроде [836, 7] или [8, 3, 67]. Она работает с числами как с текстом, а не как с математическими объектами.
Почему токенизация ломает вычисления
Арифметика требует поразрядной обработки: сначала единицы, потом десятки, потом сотни — с переносом разрядов. Токенизация разрушает эту структуру. Когда число 8367 превращается в токены [836, 7], модель «не видит» отдельные цифры и не может выполнить поразрядное сложение.
Исследование Meta 2024 года показало, что точность LLM на сложении чисел падает с 95% для двузначных до менее 30% для пятизначных — именно из-за того, что чем длиннее число, тем непредсказуемее его разбиение на токены.
Как исследователи решают проблему
- Chain-of-thought prompting — модель рассуждает пошагово, что радикально улучшает точность на математических задачах.
- Scratchpad-метод — модель записывает промежуточные вычисления. Исследователи из Google показали рост точности с 30% до 90% на многозначных операциях.
- Посимвольная токенизация — Meta предложила токенизировать каждую цифру отдельно, сохраняя разрядную структуру числа.
- Clock-токенизация (Google) — специальное кодирование временных и числовых значений для лучшего понимания порядка величин.
Практическое решение: инструменты вместо честного счёта
Пока LLM не научатся считать нативно, рабочий подход — делегировать вычисления внешним инструментам. Модель генерирует математическое выражение, а калькулятор, Python-интерпретатор или API выполняет расчёт. Именно так работают агентские фреймворки — LangChain, AutoGPT, Claude с tool use.
Если вы используете LLM в задаче, где важна точность вычислений — подключайте внешние инструменты. Это не костыль, а архитектурно правильное решение.
Часто задаваемые вопросы
Почему ChatGPT ошибается в простых примерах?
ChatGPT обрабатывает числа как текстовые токены, а не как цифры. Разбиение числа на токены разрушает разрядную структуру, необходимую для поразрядных вычислений. Результат — ошибки даже на простом сложении многозначных чисел.
Какие LLM лучше справляются с математикой?
Gemini с встроенным калькулятором, Claude с tool use и специализированные модели вроде Qwen2.5-Math показывают лучшие результаты. Но даже они полагаются на внешние инструменты для точных вычислений.
Исправят ли это в будущих моделях?
Вероятно, частично — через улучшенную токенизацию и нативный tool use. Но фундаментальное ограничение Transformer в чистом виде, скорее всего, останется.
Итог
LLM не умеют считать — это не баг, а следствие архитектуры Transformer, обрабатывающего числа как текст. Исследователи работают над решениями, но на практике лучший подход — подключать внешние вычислительные инструменты. Модель должна рассуждать, калькулятор должен считать.