Перейти к содержанию

Ручная настройка весов трансформера для точного умножения без обучения

8.0/10

Разработчик вручную задал веса стандартного трансформера Phi-3, чтобы реализовать школьный алгоритм умножения без какого-либо обучения. Он представил вычислительный граф алгоритма и скомпилировал его в обычный чекпоинт Hugging Face с помощью собственного компилятора Torchwright. Трёхзначная версия правильно вычисляет все 3 000 000 поддерживаемых выражений, а опубликованные чекпоинты поддерживают умножение чисел длиной до 12 цифр. Для сравнения автор отключил рассуждения у шести передовых моделей и обнаружил, что их точность резко падает с ростом длины чисел: при семи цифрах пять моделей набрали 0 из 500. Проект включает четыре архитектурных варианта — школьный, аппаратный, scratchpad и запоминание полным перебором, — которые вычисляют одну и ту же функцию, но по-разному расходуют слои, ширину, генерируемые токены и параметры.

Контекст

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

Влияние

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

Обсуждение

Комментаторы отмечают, что подход скорее превращает модель в калькулятор, чем обучает её математике, и сравнивают его с работами о труднообучаемых алгоритмах, таких как Game of Life. Также упоминаются более ранние идеи Scratchpad и цепочек рассуждений как способы обхода арифметических слабостей нейросетей.

Проверка фактов

Утверждение о том, что трансформеры часто плохо справляются с арифметикой, особенно при увеличении длины чисел, подтверждается независимыми источниками: Papers with Code описывает проблемы трансформеров с арифметическими задачами, а работа по length generalization показывает ограничения обобщения у арифметических трансформеров [tool-2-2, tool-2-3]. Конкретные заявления автора — 100% точность на 3 000 000 трёхзначных выражений, поддержка чекпоинтов до 12×12 цифр и результаты шести frontier-моделей, из которых пять набрали 0/500 на семизначных числах, — остаются внутренними экспериментальными данными поста и не подтверждены независимыми источниками в предоставленных результатах. Ссылка на Torchwright и репозиторий GitHub также не проверялась внешними источниками в данном блоке.

Детали

Автор реализовал умножение как явный вычислительный граф и скомпилировал его в чекпоинт Phi-3 через Torchwright, не используя обучение. Он создал четыре версии: школьный алгоритм, аппаратный стиль, scratchpad и запоминание полным перебором; все они вычисляют одну функцию, но сильно различаются по использованию слоёв, ширины, генерируемых токенов и числа параметров. Трёхзначный калькулятор проходит все 3 000 000 поддерживаемых выражений со 100% точностью, а публичные чекпоинты расширяют поддержку до 12-значных множителей. В тесте шести передовых моделей с отключёнными рассуждениями точность резко деградирует с длиной чисел: на семи цифрах пять моделей дали 0/500. Ссылки включают технический разбор на ood.dev, репозиторий Torchwright на GitHub и чекпоинт на Hugging Face.

Источники