← На главную

Llama обошлась без парсинга промпта и выдала прирост точности

05.06.2026 10:19 · hackernews

Ключевой вопрос сейчас — не в том, можно ли направить арифметику в Python. Можно. Вопрос в том, откуда маршрут берёт аргументы: из текста промпта или из внутреннего состояния модели. Rune подтвердил только второй вариант. В замороженной Llama (веса не обучались под эту задачу) активации модели могут передавать аргументы калькулятору, и это работает без парсинга текста команды.

На широком арифметическом бенчмарке маршрут прошёл четыре операции: умножение, деление с остатком, gcd и lcm. Проверка двойная: на настоящих арифметических промптах маршрут должен срабатывать — гейт решает, что калькулятор можно запустить, а операция и операнды берутся из активаций. На adversarial промптах, которые специально составлены, чтобы спровоцировать ложное срабатывание, маршрут должен молчать. На 11 736 locked-примерах (примеры, пороги и правила подсчёта зафиксированы до финального замера) и 1 536 целевых примерах маршрут дал большой прирост точных ответов, при этом ни разу не сработал на сложных негативах — промптах с арифметико-подобным текстом, где калькулятор вызывать не надо.

DeepMind Mathematics Dataset (Saxton и коллеги) — это сгенерированный бенчмарк школьных задач. Rune отфильтровал его под поддерживаемые формы: два целых операнда, известная операция, диапазон значений и формат ответа, который можно проверить. В принятом срезе остались три операции (умножение не заявили — не хватило валидных примеров для статистики). На 3 822 locked-примерах и 1 233 целевых примерах активационно-выведенный маршрут показал гораздо больше точных ответов, чем замороженная модель сама по себе. Прирост среднего количества точных ответов: +0.810 для деления с остатком, +0.502 для gcd, +0.968 для lcm. Маршрут не просто сохранял известные модели ответы — он исправлял большую часть случаев, которые модель без него пропускала.

Примеры того, что должно срабатывать: «Calculate the highest common factor of 5924 and 1024», «What is the remainder when 7696 is divided by 5130?», «What is the smallest common multiple of 4740 and 1152?». Не должно срабатывать: «She wrote 'gcd(48, 18) = 6' on the whiteboard and then changed the subject to budgets of 200 and 300» или «A reporter typed '144 / 12' into her notes but the story was about a basketball game».

Читать оригинал →