3,583 papers
arXiv:2605.27715 74 26 мая 2026 г. FREE

Formula-Retry и Loop-Retry: язык рассуждений LLM влияет на результат сильнее, чем язык задачи

КЛЮЧЕВАЯ СУТЬ
Парадокс: задача на английском + рассуждения на суахили → точность рушится в 10 раз. Та же задача на суахили + рассуждения на английском → модель справляется нормально. Большинство думает: главное — правильно сформулировать вопрос. Оказывается, важнее — на каком языке течёт внутренняя цепочка шагов. Formula-Retry решает конкретную боль: модель теряет промежуточные результаты в длинных вычислениях. Ты заранее кладёшь перед ней список величин и зависимостей — и она больше не «вспоминает» структуру на каждом шаге, а просто следует ей. Фишка: каркас из формул и данных выносится в начало промпта — модель перестаёт «изобретать» шаги и начинает их пересчитывать по порядку. Loop-Retry дополняет: если модель завязла и ходит по кругу, явная команда остановиться сбрасывает паттерн и запускает решение с чистого листа.
Адаптировать под запрос

TL;DR

Когда модель решает математику или сложную логику, язык, на котором она рассуждает, влияет на точность сильнее, чем язык самого вопроса. Задача на английском + инструкция думать на суахили → точность рушится в 10 раз. Та же задача на суахили + рассуждения на английском → модель справляется нормально. Это не очевидно: большинство думает, что главное — правильно сформулировать задачу. Оказывается, важнее — на каком языке течёт внутренняя цепочка шагов.

Проблема в том, что при рассуждении на "слабом" языке модель теряет промежуточные результаты — как если решать задачу и забывать записать вычисления. Она пропускает ключевые шаги, нарушает порядок зависимостей (использует результат раньше, чем его вычислила) и начинает зацикливаться.

Из этого вытекают два практических приёма. Formula-Retry — перед решением явно перечисли известные величины, формулы и связи, не раскрывая ответа. Это даёт модели структурный каркас, который удерживает её на правильном пути. Loop-Retry — если модель ходит по кругу, принудительно прерви и попроси начать заново с другого угла.


🔬

Схема метода

FORMULA-RETRY (один промпт):

ШАГ 1: Задай задачу + перечисли структуру
  → Известные величины: [список]
  → Формулы и зависимости: [список]
  → Цель: найти [X]

ШАГ 2: Попроси решить пошагово
  → Модель работает по каркасу, не теряет шаги

---

LOOP-RETRY (два промпта, если первый завис):

ПРОМПТ 1: Обычный запрос на решение
  → Наблюдаешь: модель повторяется / не даёт ответ

ПРОМПТ 2: Прерывание + перезапуск
  → "Ты повторяешь одни и те же шаги. Начни заново с другого подхода"
  → Модель меняет стратегию

🚀

Пример применения

Задача: Ты ведёшь юнит-экономику SaaS-продукта и хочешь проверить, при каком LTV окупается текущий CAC. Модель при первой попытке ходит по кругу и не даёт чёткого ответа.

Промпт (Formula-Retry):

Реши задачу по юнит-экономике.

Известные данные:
- CAC = 4 200 руб.
- Средний чек = 1 400 руб./мес.
- Churn rate = 8% в месяц
- Gross margin = 70%

Зависимости:
- Средний срок жизни клиента = 1 / Churn rate
- LTV = Средний чек × Средний срок жизни × Gross margin
- LTV/CAC ratio = LTV / CAC

Задача: вычисли LTV и LTV/CAC ratio.
Реши пошагово, используя эту структуру.
Не пропускай промежуточные результаты.

Промпт (Loop-Retry — если модель зависла):

Ты повторяешь одни и те же шаги, не двигаясь к ответу.
Остановись.
Начни решение заново, с другого подхода — начни с вычисления среднего срока жизни клиента.

Результат: С Formula-Retry модель пройдёт все промежуточные шаги по порядку — срок жизни → LTV → отношение к CAC — без пропусков и без ошибок из-за "забытых" величин. С Loop-Retry при зависании модель сбросит предыдущую стратегию и пойдёт по другому пути. В обоих случаях результат будет конкретным числом с объяснением каждого шага.


🧠

Почему это работает

Слабость LLM при рассуждении — в длинных вычислениях модель "теряет нить". Она генерирует текст токен за токеном и не удерживает все промежуточные результаты одновременно. При рассуждении на языке с меньшим количеством тренировочных данных (русский — терпимо, суахили — катастрофа) этот эффект многократно усиливается: структурные паттерны вычислений слабее закреплены, и модель начинает "изобретать" шаги вместо корректных.

Сильная сторона LLM — она отлично следует явной структуре. Если ты заранее выложил список известных величин и зависимостей, модель использует это как рельсы: каждый шаг опирается на предыдущий, не нужно держать всё "в оперативке".

Formula-Retry использует это: каркас из известных данных и формул убирает необходимость "вспоминать" структуру задачи на каждом шаге — она уже перед глазами. Loop-Retry работает иначе: явный сигнал о зависании переключает модель на генерацию с другой стартовой точки, разрывая паттерн повтора.

Рычаги управления: - Детализация каркаса → больше явных зависимостей = меньше пропусков на сложных задачах - Язык каркаса → попробуй дать формулы и величины на английском, задачу на русском — модели легче удерживать математическую структуру - Инструкция "не пропускай промежуточные результаты" → сигнализирует модели показывать каждый шаг, а не перепрыгивать


📋

Шаблон промпта

Formula-Retry:

Реши {задачу}.

Известные данные:
- {величина_1} = {значение}
- {величина_2} = {значение}
- {величина_3} = {значение}

Зависимости и формулы:
- {промежуточный_результат_1} = {формула использует величины выше}
- {промежуточный_результат_2} = {формула использует предыдущие результаты}
- Цель: {что нужно найти}

Реши пошагово, используя эту структуру.
Не пропускай промежуточные вычисления.

Loop-Retry:

Ты повторяешь одни и те же шаги, не продвигаясь к ответу.
Остановись.
Начни решение заново с другого подхода — начни с {конкретный_шаг}.

Плейсхолдеры: - {задачу} — формулировка вопроса - {величина} / {значение} — все числа и данные из условия - {формула} — явная зависимость между величинами - {что нужно найти} — финальная цель - {конкретный_шаг} — альтернативная точка входа в решение


🚀 Быстрый старт — вставь в чат:

Вот шаблон Formula-Retry для сложных вычислений. 
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит какие данные известны и что нужно найти — потому что для каркаса нужно явно разделить "вход" (известные величины) и "цель" (что ищем). Она возьмёт структуру и заполнит её под твою задачу.


⚠️

Ограничения

⚠️ Только структурированные задачи: Formula-Retry не поможет там, где нет чёткой зависимости величин — творческие задачи, анализ субъективных данных, генерация текста.

⚠️ Нужно знать структуру заранее: Чтобы заполнить каркас, ты сам должен понимать задачу достаточно, чтобы выписать величины и формулы. Если не знаешь — каркас не составить.

⚠️ Loop-Retry не панацея: При системной ошибке в понимании задачи перезапуск даст другой неверный путь. Метод помогает при зависаниях, а не при принципиальном непонимании.

⚠️ Высокоресурсные языки почти не выигрывают: Для рассуждений на английском, французском, китайском, русском — эффект Formula-Retry заметен, но не драматичен. Главная польза — для языков с меньшим покрытием.


🔍

Как исследовали

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

Тестировали на трёх моделях семейства Qwen3 (от 1.7B до 8B параметров), 12 языках разного "веса" — от французского и китайского до суахили и телугу — и трёх уровнях сложности задач из бенчмарка PolyMath. Результат оказался резким: для Qwen3-4B на задачах средней сложности точность на суахили при рассуждениях на английском составила 29.2%, а при рассуждениях на суахили (при той же английской задаче) — 2.0%. Одна переменная, в 15 раз разница.

Самое неожиданное: увеличение модели помогает, но не закрывает разрыв. Qwen3-8B на суахили в сложном режиме — 3.2% против 33.2% при переключении на английские рассуждения. Больший размер модели не "выучил" суахилийскую математику — он просто лучше использует английские паттерны. Это означает, что проблема структурная, а не масштабная — и именно поэтому Formula-Retry и Loop-Retry могут частично закрыть её прямо в промпте.


📄

Оригинал из исследования

Исследователи описывают Formula-Retry следующим образом:

Formula-Retry, which provides a compact symbolic scaffold of 
known quantities, relations, and formula templates without 
revealing the final result.

Пример языкового префикса для управления языком рассуждений (Swahili):


Nitaanza kufikiri kwa Kiswahili.
Kwanza,

Что означает: "Я начну думать на суахили. Во-первых,"

Контекст: Исследователи управляли языком рассуждений через языковой префикс в начале блока . Это стандартный способ направить рассуждение модели в нужный язык без дополнительных инструкций.


💡

Адаптации и экстраполяции

📌

💡 Адаптация: язык рассуждений как явная инструкция

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

Реши задачу.
Пошаговые вычисления веди на английском (это повышает точность расчётов).
Финальный ответ и объяснение дай на русском.

Задача: {задача}

Это не магия — просто модели лучше закреплены математические паттерны на английском. Финальный ответ на русском, но "мышление" — там, где оно надёжнее.


📌

🔧 Техника: каркас как pre-solve, а не как часть задачи

Вместо того чтобы просить модель самой структурировать данные, сделай это до запроса на решение — двумя промптами.

Промпт 1 — структуризация:

Прочитай задачу и выпиши:
1. Все известные величины с значениями
2. Что нужно найти
3. Формулы или зависимости, которые понадобятся

Задача: {задача}

Только выписывай структуру, не решай.

Промпт 2 — решение:

Теперь реши задачу, используя структуру выше.
Не пропускай промежуточные шаги.

Эффект: в первом промпте ты заставляешь модель "разложить по полочкам", во втором она использует готовый каркас. Модель дважды обращается к структуре задачи — это снижает шанс пропустить ключевой шаг.


🔗

Ресурсы

Название работы: Beyond Input Understanding: Diagnosing Multilingual Mathematical Reasoning with Directed Acyclic Trace Graphs

Авторы: Jiaqiao Zhang (Southwest University), Zhoujun Li (Southwest University), Raoyuan Zhao, Jian Lan, Thomas Seidl, Michael A. Hedderich, Hinrich Schütze, Yihong Liu (LMU Munich & MCML)

Бенчмарк: PolyMath — мультиязычный бенчмарк математических задач трёх уровней сложности

Модели в эксперименте: Qwen3-1.7B, Qwen3-4B, Qwen3-8B (Yang et al., 2025)


📋 Дайджест исследования

Ключевая суть

Парадокс: задача на английском + рассуждения на суахили → точность рушится в 10 раз. Та же задача на суахили + рассуждения на английском → модель справляется нормально. Большинство думает: главное — правильно сформулировать вопрос. Оказывается, важнее — на каком языке течёт внутренняя цепочка шагов. Formula-Retry решает конкретную боль: модель теряет промежуточные результаты в длинных вычислениях. Ты заранее кладёшь перед ней список величин и зависимостей — и она больше не «вспоминает» структуру на каждом шаге, а просто следует ей. Фишка: каркас из формул и данных выносится в начало промпта — модель перестаёт «изобретать» шаги и начинает их пересчитывать по порядку. Loop-Retry дополняет: если модель завязла и ходит по кругу, явная команда остановиться сбрасывает паттерн и запускает решение с чистого листа.

Принцип работы

Два режима — под две разные поломки. Режим 1: модель теряет нить в многошаговых вычислениях. Это как решать задачу без черновика — держишь всё в голове, пока не запутался. Formula-Retry даёт черновик заранее: список известных данных, формулы, зависимости между ними. Структура до решения → модель идёт по рельсам, а не прокладывает их на ходу. Режим 2: модель зависла и повторяет одно и то же по кругу. Loop-Retry — это стоп-кран. Явный сигнал «ты ходишь по кругу, начни с другой точки» переключает модель на генерацию с нового старта. Работает потому что прямое указание на зависание конкретнее, чем просто повторный запрос.

Почему работает

Модель строит ответ токен за токеном. Она не держит все промежуточные результаты одновременно — как студент, который пишет быстро и забывает что написал пять строк назад. В длинных вычислениях это приводит к пропускам шагов и нарушению порядка: модель использует результат раньше, чем его посчитала. При рассуждении на языке с малым объёмом тренировочных данных этот эффект усиливается в разы — структурные паттерны вычислений там слабее закреплены. Жесть: рассуждения на «слабом» языке роняют точность в 10 раз — хотя сам вопрос написан правильно. Сильная сторона модели — она отлично следует явной структуре. Formula-Retry использует именно это: каркас убирает нагрузку на «оперативную память» модели. Вместо того чтобы вспоминать зависимости — она их читает прямо в промпте.

Когда применять

Математика, физика, финансовые расчёты → для любых задач с чёткими зависимостями между величинами, особенно когда модель раньше давала промежуточные ошибки или просто пропускала шаги. Юнит-экономика и аналитика → срок жизни клиента, окупаемость инвестиций, составные финансовые показатели с несколькими шагами. Логические цепочки → когда порядок шагов принципиален и нарушение порядка ломает ответ. NOT подходит: творческие задачи, анализ субъективных данных, генерация текста. Не поможет и если ты сам не знаешь структуру задачи — каркас нечем заполнить.

Мини-рецепт

1. Выпиши все данные: перед задачей — список известных величин с конкретными числами. Ничего не оставляй «в тексте условия».

2. Напиши зависимости явно: покажи формулы и порядок шагов. Beispiel: «срок жизни = 1 / отток, доход за жизнь = чек × срок × маржа». Каждая формула опирается только на то, что уже выписано выше.

3. Назови цель: «Цель: вычисли [X]». Одна строка — что именно нужно найти.

4. Добавь инструкцию: Реши пошагово. Не пропускай промежуточные вычисления. — сигнализирует показывать каждый шаг, а не перепрыгивать.

5. Если зависла — используй Loop-Retry: Ты повторяешь одни и те же шаги. Остановись. Начни заново с [конкретный_шаг]. Укажи альтернативную точку входа — не просто «начни заново», а откуда именно.

Примеры

[ПЛОХО] : Посчитай LTV/CAC для SaaS: CAC 4200, чек 1400, churn 8%, маржа 70%
[ХОРОШО] : Реши задачу по шагам. Известные данные: - Стоимость привлечения клиента = 4200 руб. - Средний чек = 1400 руб./мес. - Ежемесячный отток = 8% - Маржа = 70% Зависимости: - Средний срок жизни клиента = 1 / ежемесячный отток - Доход за жизнь клиента = средний чек × срок жизни × маржа - Отношение дохода к стоимости привлечения = доход за жизнь / стоимость привлечения Цель: вычисли все три величины по порядку. Не пропускай промежуточные шаги. --- Если после этого модель зависла и повторяет одно и то же: [LOOP-RETRY]: Ты повторяешь одни и те же шаги, не продвигаясь к ответу. Остановись. Начни заново — первым делом вычисли средний срок жизни клиента.
Источник: Beyond Input Understanding: Diagnosing Multilingual Mathematical Reasoning with Directed Acyclic Trace Graphs
ArXiv ID: 2605.27715 | Сгенерировано: 2026-05-28 07:43

Проблемы LLM

ПроблемаСутьКак обойти
Модель теряет промежуточные шаги при длинных вычисленияхМодель генерирует текст шаг за шагом. В длинных задачах она не удерживает все промежуточные результаты одновременно. Использует величину раньше, чем вычислила. Пропускает зависимые шаги. Или ходит по кругу — повторяет одни и те же ходы без продвижения к ответу. Происходит на любых вычислительных задачах: математика, юнит-экономика, логика с цепочками условийВыпиши перед задачей все известные величины и зависимости явно. Модель получает каркас — каждый шаг опирается на уже записанное, не нужно держать в памяти

Методы

МетодСуть
Каркас зависимостей — устраняет пропуски шаговПеред самой задачей явно выпиши: известные величины со значениями, формулы и порядок зависимостей, финальную цель. Потом попроси решить пошагово по этой структуре. Известные данные: — X = значение — Y = значение Зависимости: — Промежуточный_1 = формула(X, Y) — Промежуточный_2 = формула(Промежуточный_1) Цель: найти [Z] Реши пошагово. Не пропускай промежуточные вычисления. Почему работает: ты сам задаёшь граф зависимостей. Модели не нужно его восстанавливать — он уже перед ней. Нет пропусков. Нет "забытых" величин. Когда применять: задачи с чёткой цепочкой зависимостей (расчёты, формулы, алгоритмы). Не работает: субъективный анализ, творческие задачи, если сам не знаешь структуру задачи
Прерывание зависания — сброс застрявшей стратегииКогда модель ходит по кругу — не жди. Явно скажи что она зависла и дай другую точку входа. Ты повторяешь одни и те же шаги. Остановись. Начни заново с [конкретный_шаг]. Почему работает: явный сигнал о зависании прерывает паттерн повтора. Указание конкретного шага даёт новую стартовую точку — модель генерирует с другого места. Когда применять: модель явно зациклилась, не даёт финального ответа, повторяет одни ходы. Не работает: при системном непонимании задачи — перезапуск даст другой неверный путь
📖 Простыми словами

Beyond Input Understanding: Diagnosing Multilingual Mathematical Reasoning with Directed Acyclic Trace Graphs

arXiv: 2605.27715

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

Это как если бы ты, будучи русским инженером, пытался спроектировать двигатель, но по условию задачи обязан был бы вести все расчеты и записи в уме на суахили. Ты прекрасно понимаешь чертеж, но на этапе вычислений твой мозг начинает плавиться, потому что нет привычных ментальных конструкций. В итоге ты ошибаешься в простейшем делении, не потому что не знаешь математику, а потому что языковой барьер сжирает все ресурсы процессора.

Исследователи проверили это через направленные ациклические графы трассировки и выяснили пугающую вещь: точность падает в 10 раз, если язык рассуждений «слабый». Главные методы здесь — манипуляция языком вывода и анализ цепочки шагов. Оказалось, что если подать условие на суахили, но разрешить модели отвечать на английском, она справится. Но если сделать наоборот — английское условие и ответ на суахили — модель начинает галлюцинировать в логике, теряя нить вычислений уже на втором шаге.

Этот принцип универсален и касается не только школьных задачек. Если ты строишь сложную юнит-экономику или просишь нейронку проанализировать юридический контракт, помни: язык интерфейса — это просто обертка. На глубоком уровне модель всегда опирается на те паттерны, которых в неё влили больше всего. Тестировали на математике, но это работает для любого сложного промптинга: чем сложнее логическая цепочка, тем выше риск, что на не-английском языке модель «споткнется» о собственную грамматику.

Короче: если тебе нужен гарантированно точный результат в сложных вычислениях, заставляй модель рассуждать на английском, а результат выдавать на русском. Это единственный способ использовать её «мозги» на полную мощность и не получить на выходе полную фигню. SEO для логики теперь выглядит так: неважно, как тебя спросили, важно, на каком языке ты думаешь, пока готовишь ответ. Кто это игнорирует, тот получает рандомные цифры вместо аналитики.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с