3,583 papers
arXiv:2607.11266 77 13 июля 2026 г. FREE

CAID/PACE: таксономия «пустых» шагов в Chain-of-Thought — и как убирать их промптом

КЛЮЧЕВАЯ СУТЬ
Парадокс: модель проверяет каждый шаг на правильность, но никогда — на нужность. Шаг «напомним, что X = 10» верный. Но если X уже упоминался тремя строками выше — это просто повтор. Модель его сохранит, потому что он не содержит ошибки. CAID/PACE даёт возможность убрать такую «пену» — шаги, которые верны, но ничего не добавляют к решению. Назови пять типов пустых шагов прямо в промпте — и модель получает конкретный фильтр вместо абстрактного «будь кратким». Рассуждение сокращается на 30–50% без потери точности.
Адаптировать под запрос

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)


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

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

Парадокс: модель проверяет каждый шаг на правильность, но никогда — на нужность. Шаг «напомним, что X = 10» верный. Но если X уже упоминался тремя строками выше — это просто повтор. Модель его сохранит, потому что он не содержит ошибки. CAID/PACE даёт возможность убрать такую «пену» — шаги, которые верны, но ничего не добавляют к решению. Назови пять типов пустых шагов прямо в промпте — и модель получает конкретный фильтр вместо абстрактного «будь кратким». Рассуждение сокращается на 30–50% без потери точности.

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

Стандартный вопрос модели при генерации каждого шага: «Это правда?» Нужный вопрос: «Это вообще необходимо?» Это разные вопросы, и без явного указания модель задаёт только первый. Пять паттернов пустых шагов: простое дублирование (сказал то же самое), перефразировка (сказал то же самое другими словами), круговое рассуждение (вывод ссылается на себя), избыточное дробление (один простой шаг — три микро-строки), нерелевантный факт (верно, но не нужно для задачи). Как только называешь их явно, у модели появляется второй фильтр — не только «верно ли», но и «зачем». Работает потому, что модели хорошо следуют конкретным запретам — и гораздо хуже реагируют на расплывчатое «пиши короче».

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

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

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

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

Мини-рецепт

1. Выбери вариант: превентивный (один промпт с запретами до генерации) или диагностический (сначала обычный ответ, потом второй запрос на аудит).
2. Вставь список запретов перед инструкцией «думай по шагам»: дублирование, перефразировка, круговое рассуждение, избыточное дробление, нерелевантный факт. Для простых задач достаточно первых двух.
3. Укажи формат финального ответа — «вердикт: топ-3 риска», «одно решение с обоснованием», «список из пяти пунктов». Это даёт цель, к которой модель движется без лирики.
4. Для диагностики — после получения ответа попроси: «Проверь каждый шаг: УДАЛИТЬ (дубль), СЖАТЬ (верный, но многословный), ОСТАВИТЬ (добавляет новое). Выведи сжатую версию: только ОСТАВИТЬ и СЖАТЬ.»

Примеры

[ПЛОХО] : Проанализируй риски моей бизнес-идеи пошагово
[ХОРОШО] : Проанализируй риски моей бизнес-идеи пошагово. Каждый шаг — один конкретный вывод о рисках. Избегай пустых шагов: — Дублирование: не повторяй уже сказанное — Перефразировку: не переформулируй предыдущий шаг — Круговое рассуждение: не ссылайся на вывод, который из него же и следует — Избыточное дробление: один вывод = один шаг — Нерелевантные факты: не добавляй верное, но не нужное для оценки рисков Итог: топ-3 риска и один способ проверить каждый до вложения денег. Идея: [твоя идея]
Источник: Valid ≠ Necessary: Diagnosing Latent Inefficiency in Chain-of-Thought
ArXiv ID: 2607.11266 | Сгенерировано: 2026-07-14 06:25

Проблемы LLM

ПроблемаСутьКак обойти
Цепочка рассуждений раздувается правильными, но бесполезными шагамиПросишь думать по шагам. Модель добавляет шаги, которые не содержат ошибок. Поэтому она их и сохраняет. Но шаг «напомним, что X = 10» ничего нового не даёт — X уже был использован. Модель спрашивает себя «это верно?» вместо «это нужно?». Итог: рассуждение разрастается, полезного — меньше половины. Работает против тебя на любой аналитической задачеНазови пять типов пустых шагов явно в промпте. Модель получает конкретный фильтр и применяет его при генерации. Или добавь второй запрос: попроси проверить готовое рассуждение по тем же критериям и выбросить лишнее

Методы

МетодСуть
Список запрещённых паттернов — компактное рассуждениеДобавь в промпт явный запрет на 5 типов пустых шагов. Модель получает проверяемые критерии вместо абстрактного «будь краток». Пять типов: дублирование (повтор сказанного), перефразировка (то же другими словами), круговое рассуждение (шаг ссылается сам на себя), избыточное дробление (один простой вывод разбит на три строки), нерелевантный факт (верное, но не нужное для цели утверждение). Почему работает: каждый тип — это конкретная проверка. Модель может применить её к каждому шагу. «Не дублируй» — проверяемо. «Будь кратким» — нет. Вариант А — превентивный: вставь список в исходный промпт. Вариант Б — диагностический: сначала получи рассуждение, потом вторым запросом попроси пройтись по нему и отметить каждый шаг: УДАЛИТЬ / СЖАТЬ / ОСТАВИТЬ. Когда не применять: короткие задачи, творческие задачи без логической цепочки, случаи когда развёрнутое объяснение нужно специально
📖 Простыми словами

Valid $\ne$ Necessary: Diagnosing Latent Inefficiency in Chain-of-Thought

arXiv: 2607.11266

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

Это похоже на ситуацию, когда ты спрашиваешь дорогу у прохожего, а он вместо «поверни направо» начинает лекцию об истории градостроения, устройстве асфальта и правилах дорожного движения. Формально он не соврал, каждое его слово — чистая правда, но до цели ты быстрее не дошел. Модель ведет себя как тот самый душный таксист, который не может просто довезти тебя из точки А в точку Б, не вывалив на тебя кучу ненужной инфы, которую он считает «важной для контекста».

Исследователи копнули глубже и нашли 5 типов латентной неэффективности, которые раздувают рассуждения. Самый частый облом — это повторение условий и избыточные вычисления, которые никак не влияют на итоговый ответ. Что реально работает для оптимизации: жесткая фильтрация шагов через критерий необходимости. Оказалось, что если выкинуть всю эту шелуху, рассуждение сокращается на 30–50%, а точность при этом не падает ни на процент. Модели просто нужно запретить «лить воду» и заставить её отвечать на вопрос «а этот шаг вообще что-то меняет?».

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

Короче: хватит поощрять нейронку за простыни текста, в которых полезного действия на копейку. Главный вывод исследования в том, что валидность не равна необходимости. Если ты хочешь быстрый и четкий результат, нужно внедрять фильтры, которые отсекают логический мусор еще на этапе генерации. Кто научится выжимать из моделей сухой остаток, тот получит максимальный КПД при минимальных затратах. Остальные продолжат платить за генерацию белого шума.

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

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

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