Reasoning mode и честность chain-of-thought: когда «думать дольше» усиливает чужую ошибку в trace

Три режима на одном экране: обычный ответ, видимый ход мыслей, агент с вызовом инструментов. LINK:Замер Dhruv Jani на Dev.to показывает, что у Grok 4.20 переключатель reasoning mode связан не с «осторожностью», а с тем, что финал чаще следует за подставленной ошибкой в середине рассуждения (11 из 15 против 2 из 15 без reasoning); соло-разработчик с агентным циклом в IDE должен гонять extended reasoning через те же проверки, что и голый ответ без trace.
Что измеряли: faithfulness и «Adding Mistakes»
Dhruv Jani (@dj29) отправил замер в Kaggle Benchmarking Challenge и опирается на литературу про честность цепочки рассуждений (chain-of-thought faithfulness): насколько показанное рассуждение реально ведёт к ответу, а не выглядит постфактум-нарративом. Базовая интервенция из работы Anthropic 2023 («Measuring Faithfulness in Chain-of-Thought Reasoning», arXiv:2307.13702): в середину CoT вставляется неверный шаг, модель продолжает с него; смотрят, уходит ли финальный ответ в сторону ошибки или обходит её.
Доля вопросов, где ответ отслеживает внедрённую ошибку, здесь важнее «качества кода» в бытовом смысле: высокий счёт означает привязку к испорченному рассуждению. Набор из 15 задач (арифметика, многошаговые word problems, базовая логика); автор публикует сырые счётчики X/15, без сглаживания в проценты.
На задаче про 40 яблок в подставленном рассуждении фигурирует 57 вместо 47: проверка, уйдёт ли ответ в 57 или модель скорректирует к 47.
Grok 4.20: одна модель, два режима, разный итог
Центральное сравнение не между вендорами, а между Grok 4.20 Reasoning и Grok 4.20 (Non-Reasoning) на одной линейке («same underlying model, only the reasoning mode toggled»). Автор ожидал, что reasoning сделает поведение осторожнее; по счётчикам для faithfulness к ошибке вышло наоборот: 11/15 с reasoning против 2/15 без него, отсюда формулировка в заголовке про roughly 5x.
Остальные строки таблицы относятся к другим продуктам, не к переключателю on/off:
| Модель | Ответ следует за ошибкой в trace (X/15) |
|---|---|
| DeepSeek-R1 | 15/15 |
| Grok 4.20 Reasoning | 11/15 |
| Grok 4.20 (Non-Reasoning) | 2/15 |
| GPT-5.6 Terra | 2/15 |
| Gemini 3.7 Flash | 1/15 |
| Claude Opus 5 | 0/15 |
DeepSeek-R1 на 15/15 автор читает как sanity-check теста для архитектуры с полностью открытым CoT. Для Claude Opus 5 нулевой счёт он не разбирает по всем 15 транскриптам: возможны и самопроверка, и другой механизм; это остаётся открытым. Qwen 3 Next 80B (Instruct и Thinking) не дошёл до конца: «errored out mid-evaluation» на прокси Kaggle, повторов к дедлайну не было.
От ручных проб в чатах к бенчмарку и агенту в IDE
Мотивация автора: ручные эксперименты с Gemini, ChatGPT и Claude, подмена «nudge» в середине рассуждения вместо анекдотических историй. Для разработчика с агентом или extended reasoning в IDE видимый CoT скорее индикатор того, к чему модель уже привязалась, чем гарантия, что шаги можно принять без перепроверки. В дизайне Adding Mistakes у Grok с включённым reasoning плохой шаг в trace сильнее связывает финальный ответ, ровно то, что бьёт по доверию к trace как инструменту отладки.
Dhruv Jani не даёт готового чек-листа под Cursor или конкретный rule-файл; в конце задаёт открытый вопрос: если reasoning mode повышает следование собственным ошибкам в рассуждении, насколько можно опираться на показанный ход мыслей при разборе сбоя агента. Промпт в замере просил «numeric answer only» даже на логических вопросах с ответами-словами; автор отмечает, что не проверял все 24 пары «модель–вопрос» на этот пункт.
Выборка n=15 на модель: автор сам ограничивает силу обобщений и не утверждает, что «reasoning mode плох» по этим данным одним махом. Следующие шаги у него: больше пар reasoning/non-reasoning у других лаб и раздельные счёты по типу коррупции (арифметика vs логика).
Что имеет смысл держать в голове в vibe-coding цикле
Три практических следствия без выхода за факты замера:
- Переключатель reasoning у одного и того же SKU меняет не только «глубину», но и то, насколько ответ цепляется за ошибочный фрагмент в уже показанном trace; проверять на своих задачах, а не по заголовку.
- Высокий faithfulness к ошибке в бенчмарке не синоним «модель глупее»; для агента это риск зафиксировать неверный промежуточный шаг и дотащить его до коммита или tool call.
- Строки таблицы с разными вендорами сравнивают архитектуры и политики CoT; единственная чистая пара on/off среди них: Grok 4.20.
У Kaggle в той же публикации есть ссылка на leaderboard и «Score vs. Total Cost» для бенчмарка CoT Faithfulness; полный экспорт промптов и API-вызовов в тексте не приложен. Имена моделей (GPT-5.6 Terra, Claude Opus 5, Gemini 3.7 Flash) приведены как у Dhruv Jani на момент доступа, это не независимая верификация линейки у вендоров.
В дискуссии под публикацией (не вывод автора) читатели предлагают контрольные плечи и осторожность к крайним 0/15 и 15/15 при такой выборке; для собственного пайплайна разумнее дублировать мысль автора: trace полезен как сигнал привязки, а не как замена теста или ревью.
Источники
- Dhruv Jani (@dj29), «Chain-of-Thought Faithfulness: Toggling 'Reasoning Mode' Made One Model 5x More Likely to Follow Its Own Mistakes», Dev.to (доступ: 2026-09-27)
- «Measuring Faithfulness in Chain-of-Thought Reasoning» (Anthropic, 2023), https://arxiv.org/abs/2307.13702 (доступ: 2026-09-27)