TL;DR
Когда просишь модель «думать по шагам», она генерирует «пену» — шаги, которые логически верны, но вообще ничего не добавляют к решению. Исследователи выявили 5 конкретных типов такой пены и доказали, что убрав её, можно сократить рассуждение на 30–50% без потери точности.
Главная находка неочевидна: стандартные оценщики рассуждений проверяют только правильность шага, но не его необходимость. Шаг «Напомним, что Х = 10» — верный. Но если Х уже использовался раньше, это просто повтор. Модель его всё равно сохранит, потому что он «не содержит ошибки». Итог — рассуждение раздувается, токены тратятся, а полезной информации не прибавляется.
Метод предлагает называть типы пустых шагов явно — либо чтобы модель их избегала при генерации, либо чтобы сама же находила и сжимала после. Это работает в обычном чате без кода: достаточно включить таксономию в промпт.
Схема метода
ВАРИАНТ А — Превентивный (один промпт):
Запрос → Инструкции «думать по шагам» + список 5 типов пены → Компактный CoT
ВАРИАНТ Б — Диагностический (два запроса):
Запрос → Генерация CoT (стандартная)
↓
Аудит CoT → Классификация каждого шага: УДАЛИТЬ / СЖАТЬ / ОСТАВИТЬ → Сжатая цепочка
Оба варианта работают в одном чате без кода.
Пятёрка типов «пены»
Исследователи выявили ровно 5 паттернов, которые раздувают рассуждение без пользы:
| Тип | Что происходит | Пример |
|---|---|---|
| Простое дублирование | Шаг повторяется дословно | «Итак, X = 10» → «Мы установили, что X = 10» |
| Перефразировка | То же самое, другими словами | «Нужно найти Y» → «Наша задача — вычислить значение Y» |
| Круговое рассуждение | Шаг ссылается сам на себя | «A → B, потому что A подразумевает B» |
| Избыточное дробление | Один простой шаг бьётся на микро-шаги | «3 × 10 = 30» → три строки вместо одной |
| Нерелевантный факт | Верное, но не нужное утверждение | «Кстати, компания основана в 2010 году» при анализе прибыли |
Пример применения
Задача: Ты готовишь питч для инвестора. Просишь ChatGPT проанализировать слабые места идеи — и хочешь чёткий анализ, а не растянутое резюме на три экрана.
Промпт (Вариант А — превентивный):
Проанализируй слабые места моей бизнес-идеи пошагово.
Идея: сервис доставки готовой еды для офисов в Москве — подписка на 10 обедов в неделю,
меню меняется ежедневно, минимум 10 человек в команде.
Думай по шагам. Каждый шаг — один конкретный вывод.
ВАЖНО: избегай этих типов пустых шагов:
— Простое дублирование: не повторяй уже сказанное другими словами
— Перефразировку: не переформулируй предыдущий шаг
— Круговое рассуждение: не возвращайся к тому, что уже установил
— Избыточное дробление: не разбивай один простой вывод на три микро-шага
— Нерелевантные факты: не добавляй верные, но не нужные детали
После анализа — вердикт: топ-3 риска и один способ проверить каждый до вложения денег.
Промпт (Вариант Б — диагностический, второй запрос после получения анализа):
Вот твой анализ выше. Проверь каждый шаг рассуждения по таким критериям:
УДАЛИТЬ — если шаг дублирует предыдущий или перефразирует его
СЖАТЬ — если шаг верный, но слишком многословный для своей мысли
ОСТАВИТЬ — если шаг добавляет новую информацию к решению
Выведи сжатую версию: только шаги ОСТАВИТЬ и СЖАТЬ (уже сжатые).
Результат:
В варианте А модель выдаст пошаговый анализ без лирических отступлений — каждый шаг будет содержать новый вывод. В варианте Б сначала появится таблица классификации шагов с обоснованием, затем сжатая версия анализа — примерно вдвое короче оригинала при той же информационной ценности.
Почему это работает
Модели умеют оценивать правильность, но не необходимость. Шаг «напомним, что выручка = цена × объём» — верный. Но если это уже было сказано, он ничего не добавляет. Без явного критерия модель его сохранит: он не содержит ошибки. Стандартный вопрос модели: «Это правда?» — вместо нужного «Это нужно?»
Но модели хорошо следуют явным ограничениям. Если назвать паттерны, которых нужно избегать, — у модели появляется конкретный фильтр. Не абстрактный «будь кратким», а пять проверяемых критериев. Это меняет поведение при генерации.
Рычаги управления промптом: - 🔧 Добавь только нужные типы — если задача простая, достаточно запретить «дублирование» и «перефразировку». Для сложного анализа включай все пять. - 🔧 Варьируй конечный формат — «Вердикт: топ-3 риска» даёт цель, к которой модель движется без лирики. - 🔧 Вариант Б = режим отладки — если не хочешь менять исходный промпт, просто добавляй второй запрос на аудит. Работает с любым сложным ответом.
Шаблон промпта
{Задача с исходными данными}
Думай по шагам. Каждый шаг — один конкретный вывод о {предмет анализа}.
Избегай пустых шагов:
— Дублирование: не повторяй уже сказанное
— Перефразировку: не переформулируй предыдущий шаг
— Круговое рассуждение: не ссылайся на вывод, который из него же и следует
— Избыточное дробление: один вывод = один шаг
— Нерелевантные факты: не добавляй верное, но не нужное для {цель}
Итог: {формат финального ответа — список, решение, вердикт}.
Что подставлять:
- {Задача с исходными данными} — конкретный вопрос или материал для анализа
- {предмет анализа} — что именно разбираем (риски, аргументы, план)
- {цель} — к чему идёт рассуждение (принятие решения, выбор варианта)
- {формат финального ответа} — как хочешь получить вывод
🚀 Быстрый старт — вставь в чат:
Вот шаблон анти-пенного CoT-промпта. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить все поля.
[вставить шаблон выше]
LLM спросит, какой формат финального ответа тебе нужен и что именно анализировать — потому что без этого она не сможет правильно настроить критерий «нерелевантного факта».
Ограничения
⚠️ Простые задачи: Для коротких вопросов («посоветуй ресторан», «переведи фразу») инструкция избыточна — модель итак не генерирует длинных рассуждений.
⚠️ Субъективные задачи: Там, где нет логической цепочки (написать стихотворение, придумать слоган), «нужность» шага субъективна — инструкция теряет смысл.
⚠️ Сжатие ≠ всегда лучше: Иногда развёрнутое объяснение нужно специально — например, чтобы понять логику вывода или проверить рассуждение. В этом случае Вариант А не нужен, Вариант Б лучше.
⚠️ Нет готового инструмента: CAID как автоматическая система требует кода (MiniLM + GPT-2 + скрипт). То, что даётся в шаблоне выше — это экстракция принципов, не порт системы в чат.
Как исследовали
Команда из KT Corporation и Pohang University поставила эксперимент с хирургической точностью. Идея была простой: взять математические задачи из GSM8K с правильными решениями и намеренно испортить цепочки рассуждений — вставить туда пустые шаги, которые не содержат ошибок, но ничего не добавляют. Получился датасет RIV-GSM8K: 7 473 задачи и больше 20 000 встроенных паразитных шагов пяти типов.
Потом взяли лучшие доступные оценщики рассуждений — ReasonEval, ThinkPRM, Qwen2.5-Math-PRM — и проверили: заметят ли они пустые шаги? Спойлер: почти нет. Qwen2.5-Math-PRM-72B (72 миллиарда параметров!) сохранил 84% простых дублирований — то есть попросту не заметил, что шаг повторяет предыдущий. ReasonEval, который специально создан для оценки рассуждений и даже имеет встроенный «счёт избыточности», тоже сохранил ~70% дублирований и перефразировок.
Это стало главным сюрпризом исследования: размер модели и специализация не помогают, если критерий оценки — только правильность, а не необходимость. Собственная метрика авторов CAID при этом весит 146 миллионов параметров против 7–72 миллиардов у конкурентов — и при этом почти идеально находит дубликаты (0% сохраняется), круговые рассуждения (2%), паразитные перефразировки (1.7%). Правда, цена — более агрессивная обрезка «золотых» шагов (сохраняет только ~55% оригинальных шагов vs 90%+ у конкурентов). Практическое подтверждение: PACE на реальных задачах сжимает рассуждение на 31–53% без потери правильности ответов.
Адаптации и экстраполяции
🔧 Техника: аудит по четырём сигналам CAID → детальная диагностика
Исследование описывает четыре сигнала, которые CAID проверяет автоматически. Их можно перевести в натуральный язык и попросить модель проверить себя вручную:
Проверь своё рассуждение выше по четырём критериям.
Для каждого шага укажи: (ОСТАВИТЬ / СЖАТЬ / УДАЛИТЬ)
1. Похожесть на предыдущий шаг — если близко по смыслу, скорее всего повтор → УДАЛИТЬ
2. Связь с исходным вопросом — если слабо связан с целью → УДАЛИТЬ
3. Плотность информации — если много слов, мало нового → СЖАТЬ
4. Продвижение рассуждения — если не двигает к ответу → УДАЛИТЬ
Выведи итоговую сжатую версию.
Это буквально CAID в чате — без кода, только через инструкции.
🔧 Экстраполяция: принцип «необходимость > правильность» для оценки любого текста
Та же логика работает за пределами Chain-of-Thought. Если просишь модель проверить документ, аргументацию или план:
Проверь текст ниже. Для каждого абзаца / аргумента / пункта задай вопрос:
«Если убрать это — изменится ли вывод или решение?»
Если нет → предложи удалить или сжать.
Если да → оставь.
Текст: {текст}
Принцип «необходимость, а не правильность» — универсальный редакторский инструмент.
Ресурсы
Valid ≠ Necessary: Diagnosing Latent Inefficiency in Chain-of-Thought
Авторы: Daeyeop Lee (KT Corporation), Hwanjo Yu (Pohang University of Science and Technology, POSTECH)
Упомянутые ориентиры: GSM8K (Cobbe et al., 2021), StrategyQA, ARC-Challenge, ReasonEval (Xia et al., 2025), Math-Shepherd (Wang et al., 2024), PRM800K (Lightman et al., 2024)
