Почему LLM плохо считают: токенизация, решения, инструменты

Почему 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, обрабатывающего числа как текст. Исследователи работают над решениями, но на практике лучший подход — подключать внешние вычислительные инструменты. Модель должна рассуждать, калькулятор должен считать.

← Все записи
← Все записи