TL;DR
Один и тот же промпт на разных моделях может дать противоположный результат. Просьба «рассуждай кратко» (Chain of Draft, то есть короткие черновые шаги вместо длинного рассуждения) на одной модели исправила 20 неверных ответов и испортила 5. На другой исправила 5 и испортила 37. RCCM сравнивает два промпта по одним и тем же вопросам и считает, сколько ответов промпт спас (было неверно, стало верно) и сколько испортил (было верно, стало неверно). Для этого нужно ещё смотреть, как закончился ответ: дошёл до конца или обрезан по лимиту длины.
Главная боль: общая точность скрывает происходящее. У двух промптов может быть одинаковый результат, например 88 из 120. При этом один из них исправил десять ошибок и испортил десять верных ответов. Вы видите «без изменений», а на деле поменялась пятая часть ответов. Ещё коварнее другое. У одной из моделей «краткий» промпт помог не потому, что рассуждение стало короче. Он помог потому, что ответ перестал обрываться на полуслове. Модель упиралась в лимит токенов, не успевала выдать итог, и проверка засчитывала ей ошибку.
Метод простой: прогнать два промпта на одной и той же выборке своих вопросов с известным ответом, разложить результат на «спасённые / испорченные» и отдельно посмотреть, где ответы обрезались. Затем проверить альтернативное объяснение: оставить модели место под итоговый ответ. Если выигрыш даёт и это, дело было не в краткости.
Схема метода
ШАГ 1: Взять 30–60 своих вопросов с известным верным ответом
ШАГ 2: Прогнать промпт A (базовый) и промпт B (новый) на ОДНОЙ модели, с одним лимитом длины
ШАГ 3: По каждому вопросу: спасён (A✗ → B✓) / испорчен (A✓ → B✗) / оба верно / оба неверно
ШАГ 4: Отметить, как закончился ответ: дошёл до конца или обрезан по лимиту
ШАГ 5: Проверить, что засчитанный ответ — итоговый, а не промежуточное число из рассуждения
ШАГ 6: Проверить альтернативу: оставить место под ответ («сначала рассуждай, но в конце обязательно дай итог»)
Шаги 1–5 делаются в чате или в таблице. Шаг 6 в статье делали программой с двумя вызовами модели. В чате его можно приблизить инструкцией (см. адаптации).
Пример применения
Задача: Вы руководите небольшой командой продавцов на Ozon. Аналитик нашёл в интернете «волшебный» промпт: «рассуждай кратко, не больше трёх строк». На ChatGPT он, говорят, ускоряет расчёты юнит-экономики. Вы хотите поставить его в локальную модель (Qwen через Ollama), которая считает маржинальность по 40 тестовым SKU. Перед внедрением нужно понять, не сломает ли он расчёты.
Для проверки вы прогнали 40 SKU двумя промптами и собрали таблицу: SKU, верная маржа, ответ A (обычный), ответ B (краткий), пометка «обрезан/не обрезан».
Промпт:
Ниже таблица результатов двух промптов на одной модели.
Колонки: номер, эталонный ответ, ответ A (обычный промпт), ответ B («рассуждай кратко, не больше трёх строк»), статус A (дошёл до конца / обрезан), статус B.
Для каждой строки определи:
1. Верен ли A, верен ли B (сравни с эталоном по числу, допускай округление до рубля).
2. Категорию: «спасён» (A неверно → B верно), «испорчен» (A верно → B неверно), «оба верно», «оба неверно».
Затем выведи:
- Сколько спасённых, сколько испорченных, итог (спасённые − испорченные) в процентных пунктах.
- Отдельную таблицу: сколько ответов обрезано у A и у B, и как категории распределяются по статусам «обрезан/не обрезан».
- Список строк, где засчитанное число похоже на промежуточное значение из рассуждения, а не на итоговый ответ.
- Вывод в 3 предложениях: помогает ли B на этой модели, и за счёт чего (краткость или то, что ответ перестал обрезаться).
Данные:
{таблица}
Результат: Модель вернёт размеченную таблицу по каждому SKU и сводку: сколько ответов спасено и испорчено, чистый итог. Отдельно будет видно, где ответы обрезаны. Затем она выдаст список подозрительных «ответов», взятых из середины рассуждения, и короткий вывод. Если окажется, что «краткий» промпт ломает расчёты, вы узнаете это до внедрения, а не из жалоб на неверную маржу.
Почему это работает
Слабость. Средняя точность усредняет всё. Плюс на одних вопросах и минус на других дают «ноль» в сводке, и вы не видите, что поменялось. Вторая слабость: промпт просит одно (кратко), а модель делает другое. Одна модель в тесте уложилась в три строки на 57 из 60 вопросов. Другая не уложилась ни разу, потому что у неё рассуждение идёт в отдельном «мыслительном» блоке. Выигрыш при этом всё равно был, но не из-за краткости.
Сильная сторона. Сравнение «спасён / испорчен» по одним и тем же вопросам считается просто и показывает механику. Часть выигрыша у Phi пришлась на ответы, которые раньше обрывались по лимиту длины, а теперь доходили до конца. Из 60 вопросов 13 перешли из «обрезан» в «завершён», и 12 из них стали верными. Это почти весь выигрыш.
Как метод обходит слабость. Он разделяет три вещи: что промпт просил, что модель сделала и что проверка засчитала. Когда это видно по отдельности, можно понять причину выигрыша. Это важно, потому что «краткость помогает» и «ответ перестал обрезаться» требуют разных действий.
Рычаги управления: - Размер выборки: 30 вопросов дают грубую картину, 60 и больше надёжнее. В статье даже на 60 интервалы широкие. - Лимит длины: при увеличении лимита эффект «краткого» промпта у Phi уменьшался. Проверяйте на том лимите, который у вас в проде. - Критерий засчёта: ужесточите правило (число только из итоговой строки) и увидите, сколько выигрыша было мнимым. - Резерв под ответ: добавьте требование «итог в конце, даже если не закончил» и сравните с «кратким» промптом.
Шаблон промпта
Промпт для самого теста (оригинальный «краткий» запрос из исследования плюс требование итогового ответа):
Реши задачу. Рассуждай не более чем в трёх коротких строках.
Затем на отдельной строке напиши: «Ответ: {число}».
Задача: {задача}
Промпт для разбора результатов:
Ниже результаты двух промптов на одной модели.
Колонки: {номер}, {эталон}, {ответ_A}, {ответ_B}, {статус_A}, {статус_B}.
Для каждой строки определи верность A и B и категорию:
«спасён» (A✗→B✓), «испорчен» (A✓→B✗), «оба верно», «оба неверно».
Выведи: число спасённых и испорченных, чистый итог в п.п.;
таблицу «категория × обрезан/не обрезан»;
список строк, где засчитанное число могло быть промежуточным;
вывод в 3 предложениях: помогает ли B и за счёт чего.
Данные:
{таблица}
Что подставлять: {задача} — ваш вопрос с проверяемым числовым ответом. {эталон} — верный ответ. {ответ_A}, {ответ_B} — ответы вашей модели на два промпта. {статус} — «дошёл до конца» или «обрезан по лимиту».
🚀 Быстрый старт — вставь в чат:
Вот шаблон парного сравнения промптов. Адаптируй под мою задачу: {опиши, какую модель и какой промпт хочешь проверить}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какие у вас задачи с известным верным ответом, какой лимит длины стоит в проде и как вы определяете «правильный» ответ. Эти данные нужны, чтобы разделять «спасён» и «испорчен» и отличать обрезанные ответы от завершённых. Она возьмёт паттерн из шаблона и соберёт таблицу под вашу задачу.
Ограничения
⚠️ Модели и задачи: Всё проверено на небольших локальных моделях (3–7 млрд параметров) и на математике на английском. Для ChatGPT, Claude и Gemini в статье ничего не проверено, перенос выводов на них остаётся догадкой.
⚠️ Малая выборка: Главные выводы по Phi и Qwen получены на 60 вопросах, причём повторные запуски шли на тех же вопросах. Это не 180 независимых проверок. Интервалы широкие.
⚠️ Выигрыш мог быть мнимым: Автоматическая проверка засчитывала число даже из «мыслительного» блока. Когда авторы проверили, что модель действительно пришла к верному итоговому ответу, выигрыш Phi сократился и перестал быть статистически надёжным. Проверял один автор вручную.
⚠️ Шаг с резервом под ответ требует кода: В исследовании он делался контроллером с двумя вызовами модели. Это дороже по токенам на входе и по числу вызовов. В обычном чате можно лишь приблизить его инструкцией.
⚠️ Нужен эталон: Метод работает там, где есть заранее известный верный ответ. Для творческих задач «спасён / испорчен» не посчитать.
Как исследовали
Идея была простой: вместо одной цифры точности сравнить ответы на одни и те же вопросы. Сначала взяли пять локальных моделей, девять стратегий рассуждения и 120 математических вопросов. Стратегии: от обычного Chain of Thought и «чернового» Chain of Draft до схем с повторной проверкой и исправлением. Потом проверили шесть вариантов на 500 вопросах MATH500 на трёх моделях при общем лимите длины.
Самое неожиданное нашлось в первом же сравнении. Chain of Draft помог Phi (с 83 до 98 верных) и сильно навредил Qwen (с 88 до 56). Рейтинги стратегий у разных моделей почти не совпадали: средняя корреляция около 0,4, а у пары Gemma и Phi даже отрицательная. На общем лимите в 2048 токенов Chain of Draft проиграл обычному Chain of Thought на всех трёх моделях MATH500.
Затем авторы задались вопросом: почему у Phi краткость помогла? Они взяли ещё 60 новых вопросов и прогнали всё повторно. Выигрыш Phi повторился, а Qwen стабильно терял очень много. Дальше шёл контроль: резервирование 128 токенов под ответ вместо краткости. Он дал примерно такой же выигрыш, и разница с «кратким» промптом не прошла проверку на значимость. Ручной разбор тоже снизил оценку выигрыша Phi: с +13 п.п. по автоматической сверке до +7 п.п., статистически неподтверждённых. Вывод для практики: приписывать выигрыш краткости нельзя, пока не исключены обрезание ответа и ложные засчёты.
Адаптации и экстраполяции
🔧 Техника: резерв под ответ в обычном чате → меньше обрывов.
В статье резерв под ответ делал контроллер программы. В чате, где лимит вывода ограничен, его можно приблизить инструкцией. Это моя адаптация, в статье она не проверялась:
Рассуждай не более {N} строк. Если чувствуешь, что не успеваешь закончить, остановись и сразу выдай «Ответ: ...» с лучшей оценкой.
Проверьте её тем же парным тестом против обычного промпта.
Экстраполяция: парный тест системных инструкций агента.
Тот же подход можно применять к двум версиям системного промпта или файла инструкций агента (CLAUDE.md, AGENTS.md). Это тоже моя идея, не из статьи.
Вот 20 задач с известным верным результатом, и результаты агента с инструкцией v1 и v2.
Разметь каждую задачу как «спасена», «испорчена», «оба верно», «оба неверно».
Покажи, какие типы задач инструкция v2 портит, даже если общий итог не изменился.
Так вы увидите, что новая инструкция ломает у конкретных типов задач, даже когда общая «успешность» не изменилась.
Ресурсы
- RCCM: Diagnosing Gains and Harms in Reasoning-Prompt Transfer — Yuqi Zhang, Di Zhang (университет в предоставленном тексте не указан).
- Chain of Draft (Xu et al., 2025) — «черновые» краткие шаги рассуждения.
- Sun et al. (2025) — контроль «резерв под ответ» при жёстком лимите токенов.
- The Format Tax (Lee et al., 2026) — разделение требований к формату и правильности ответа.
- Наборы данных: GSM8K, MATH, MATH500 (PRM800K). Запуск моделей: Ollama.
