TL;DR
Если дать модели одну и ту же математическую задачу в разных формах — как рассказ, как уравнение, как словесное описание отношений — она может дать разные ответы, хотя математика внутри не изменилась ни на грамм. Модель не решает задачу "с нуля", она подбирает ответ по паттерну похожих задач из обучения, и незнакомая форма подачи этот паттерн сбивает.
Больнее всего то, что даже смена чисел в задаче (без изменения структуры!) может сломать правильный ответ. Например, задача про Джорджа, который ехал на автобусе со скоростью 20 миль/ч и шёл пешком со скоростью 3 миль/ч, решается моделью иначе, чем та же задача со скоростями 10 и 2 миль/ч — при полностью идентичной логике решения. Это значит: модель могла "угадать" правильный ответ по совпадению с чем-то знакомым, а не по реальному расчёту.
Исследователи проверили, помогает ли заставить модель решать через код вместо прямого ответа. Оказалось — помогает, но не полностью: код вскрывает скрытые способности у моделей, которые плохо считали "напрямую", но проблема с чувствительностью к форме подачи не исчезает — она просто переезжает на другой уровень. Вместо "неправильно посчитал" модель начинает нарушать формат вывода или писать код, который не запускается.
Схема метода
ШАГ 1: Задай задачу в исходном виде (текст/рассказ) → получи ответ
ШАГ 2: Переформулируй ту же задачу как уравнение или словесное описание отношений → получи второй ответ
ШАГ 3: Сравни ответы — если совпали, доверия больше; если разошлись — задача "хрупкая" для модели
ШАГ 4 (опционально): Попроси решить через код (напиши Python и посчитай) → третья, самая надёжная проверка
Все шаги выполняются в отдельных сообщениях одного диалога — это не один промпт, а серия проверок.
Пример применения
Задача: Ты считаешь доходность вклада для бизнеса. У тебя 500 000 рублей. Часть денег ты положил под 8% годовых, остальное — под 12% годовых. Через год суммарный доход составил 52 000 рублей. Сколько денег было на каждом вкладе?
Промпт 1 (как есть, текстом):
У меня 500 000 рублей. Часть я положил на вклад под 8% годовых,
остальное — под 12% годовых. Через год общий доход с обоих вкладов
составил 52 000 рублей. Сколько денег было на каждом вкладе?
Дай только финальный ответ.
Промпт 2 (как уравнение):
Реши уравнение: 0.08x + 0.12(500000 - x) = 52000.
Найди x. Дай только финальный ответ.
Промпт 3 (проверка через код):
Напиши код на Python, который решает эту задачу, и покажи,
чему равен x после выполнения:
0.08x + 0.12(500000 - x) = 52000
Результат: Если все три промпта дают один и тот же числовой ответ — можно доверять расчёту. Если ответы разошлись (например, в текстовом варианте модель ошиблась в арифметике, а в уравнении — нет), это сигнал: не бери первый попавшийся ответ модели на веру, особенно если сумма важна для реального решения.
Почему это работает
Модель не "решает" уравнение как калькулятор — она предсказывает наиболее вероятное продолжение текста, опираясь на то, как выглядели похожие задачи в её обучении. Незнакомая формулировка или непривычные числа сбивают это предсказание, даже когда математическая суть та же.
При этом модель хорошо умеет раскладывать логику по шагам, если её явно попросить это сделать — например, через код. Код заставляет модель явно прописать формулу вместо того, чтобы угадывать финальное число целиком.
Метод использует это: прогоняя одну и ту же задачу через разные "пути предсказания" (рассказ, уравнение, код), ты проверяешь, стабилен ли ответ модели или это случайное совпадение с чем-то знакомым.
Рычаги управления: - Число представлений (2 или 3) — больше форм = надёжнее проверка, но дольше и дороже по времени - Просить код vs текст — код точнее в вычислениях, но модель может нарушить формат (вставить комментарии вместо чистого кода) вместо ошибки в расчёте - Менять числа в задаче (не структуру) — простой трюк проверить, запомнила ли модель конкретный пример или правда понимает структуру задачи
Ограничения
⚠️ Ложное согласие: даже если все представления сходятся на одном ответе, есть шанс, что модель одинаково ошибается везде из-за похожей ловушки в формулировке — совпадение ответов не гарантия правильности.
⚠️ Проблема не исчезает, а переезжает: просьба решать через код не устраняет чувствительность к форме — она просто превращает "неправильный ответ" в "нарушение формата вывода" или "код не запустился". У разных моделей эта болевая точка разная (например, Gemini чаще ломает формат вывода, а не ошибается в математике).
⚠️ Дороже и медленнее: решение через код заметно увеличивает время ответа и (при использовании платных API) стоимость запроса — для разового вопроса в обычном чате это не критично, но при масштабной проверке имеет значение.
⚠️ Проверено на школьной математике: задачи в исследовании — уровень 6–10 класса (проценты, скорости, смеси, простые уравнения). Для более сложных вычислений эффект может вести себя иначе.
Как исследовали
Исследователи взяли 85 классических школьных задач (проценты, скорости, смеси, работа) из старого психологического исследования про изоморфные алгебраические задачи. Каждую задачу представили в 4 формах: рассказ, символьное уравнение, словесное уравнение, и "изоморфный" пересказ — та же задача, но с другими числами.
Проверили 5 моделей (GPT-5.2, Gemini 2.5 Pro, Claude 3.5 Sonnet, Grok 4.1, Llama 3.3 70B) в двух режимах: прямой текстовый ответ и решение через исполняемый Python-код. Замеряли точность, тип ошибки (неправильный расчёт / нарушение формата / сбой выполнения кода), скорость и стоимость ответа.
Главный сюрприз: переход на код не убрал чувствительность к форме задачи, а просто переместил ошибки на другой этаж. Например, Gemini 2.5 Pro в режиме кода почти не ошибался в математике, но часто нарушал строгий формат вывода — вставлял пояснения вместо чистого кода. Это показывает: "правильный ответ, когда всё работает" и "надёжность как система" — разные вещи, и одной метрикой точности их не измерить.
Ресурсы
Representation Robustness under Executable Reasoning Constraints in Large Language Models for Mathematical Problem Solving. Sagnik Nath (UC Santa Cruz), Edith Aurora Graf (независимый исследователь), Liang Zhang (University of Michigan), Diego Zapata-Rivera (ETS Research Institute). Датасет задач основан на классической работе про изоморфные алгебраические задачи (архив 85 задач, апелляция к исследованиям Mayer и др.).
