TL;DR
Когда LLM пишет «подождите, давайте проверим...» — это почти никогда не настоящая логическая коррекция. Исследователи из UCL разобрали 10 247 шагов рассуждений DeepSeek-R1 на олимпиадных задачах и выяснили: модель воспроизводит форму мышления, но не его функцию. Они назвали это топологической мимикрией — рассуждение выглядит правильно структурированным, но не продвигается к ответу.
Главная боль: длинная цепочка «размышлений» не гарантирует качества ответа. Модель может написать 132 шага, сделать вид что проверяет себя, и всё равно дать неверный ответ — потому что все «проверки» были арифметическими (перепроверить умножение), а не логическими (правильно ли вообще выбрана стратегия). Человек решает ту же задачу за ~10 содержательных шагов. Внешне похоже, внутри — совсем другое.
Суть находки: важно не сколько рефлексии, а где она происходит. Рефлексия внутри вывода («Inf_Ref_L» — логическая проверка в момент дедукции) помогает. Рефлексия внутри анализа («Ana_Ref_N» — арифметическая проверка в момент планирования) — это «крутящееся колесо» без реального прогресса.
Схема метода
Это исследование-находка, а не техника. Исследователи разложили каждый шаг рассуждений на 5 типов:
АНАЛИЗ (Analysis) → планирование, постановка задачи, НЕ даёт новых выводов
ВЫВОД (Inference) → новый факт, уравнение, результат — шаг вперёд
ВЕТВЛЕНИЕ (Branch) → параллельный путь решения, текущий не брошен
ОТКАТ (Backtrace) → отказ от пути, возврат к ранней точке
РЕФЛЕКСИЯ (Reflection) → мета-слой, накладывается на любой из 4 типов выше
Рефлексия бывает 4 видов — по возрастанию глубины:
Числовая (Numerical) → перепроверить одно число
Формальная (Formal) → проверить, соответствует ли ответ условию задачи
Обзорная (Supplementary) → взять инвентарь: что знаем, что осталось
Логическая (Logical) → поставить под сомнение саму стратегию
Ключевое открытие:
Рефлексия внутри ВЫВОДА (Inference + Logical) → реальная коррекция, помогает
Рефлексия внутри АНАЛИЗА (Analysis + Numerical) → имитация работы, не помогает
Всё это — аналитический фреймворк. Применяется как линза для оценки ответов LLM и как основа для более точных промптов.
Пример применения
Задача: Ты просишь Claude помочь составить план запуска телеграм-канала и видишь длинный ответ с фразами «подождите, давайте пересмотрим...», «с другой стороны...», «нужно учесть что...» — и в итоге получаешь 20 пунктов ни о чём.
Промпт:
Помоги составить план запуска телеграм-канала о личных финансах.
Работай так:
1. Сначала сделай один конкретный вывод — не планируй, сразу выводи.
2. Каждый шаг должен добавлять новый факт, решение или действие.
3. Если текущий подход не работает — явно напиши «Возвращаюсь к шагу X» и объясни почему.
4. Если хочешь поставить под сомнение стратегию — сначала покажи, что конкретно не так логически, потом предлагай замену.
5. Не проверяй детали, которые уже решены. Двигайся вперёд.
Не пиши «подождите», «с другой стороны», «нужно учесть» без того, чтобы это меняло направление решения.
Результат: Модель вместо расплывчатого «обзора» начнёт давать конкретные решения с явными переходами. Когда захочет «уточнить» — будет делать это с указанием логической причины, а не просто пересчитывать детали. Ответ будет короче, но каждый шаг будет нести новую информацию.
Почему это работает
Слабость LLM: Модель обучена на текстах успешных рассуждений. Она научилась воспроизводить структуру — чередование анализа, проверок, веток — потому что в тренировочных данных именно так выглядело мышление. Но структура без содержания — это декорация, не мышление.
Что модель умеет: Следовать явным инструкциям о формате и процессе. Если явно сказать «каждый шаг должен добавлять новый факт» — модель перестраивается. Chain-of-Thought работает именно потому, что задаёт структуру явно.
Как это использовать: Исследование даёт тебе словарь для управления рассуждением. Ты можешь явно попросить Inference («давай выводы»), явно разрешить Backtrace («если не работает — откатись и скажи об этом»), явно запретить Analysis-loop («не пересказывай задачу, сразу вывод»). Вместо «думай шаг за шагом» — конкретные инструкции о типе каждого шага.
Рычаги управления в промпте: - «Каждый шаг = новый факт» → заставляет модель генерировать Inference вместо Analysis - «Если меняешь стратегию — явно напиши почему» → переводит Backtrace из имплицитного в явный - «Не проверяй то, что уже решено» → убирает Numerical-reflection loops - «Если сомневаешься в логике — объясни что именно не так» → форсирует Logical-reflection вместо Numerical
Шаблон промпта
Реши задачу: {задача}
Правила рассуждения:
- Каждый шаг должен добавлять новый вывод или факт. Не пересказывай условие.
- Если текущий подход заходит в тупик — напиши явно: «Откатываюсь к [точка],
потому что [логическая причина]». Потом предложи другой путь.
- Если хочешь усомниться в стратегии — сначала объясни ЧТО именно логически неверно,
потом предлагай замену.
- Не проверяй повторно то, что уже установлено.
- {дополнительное_ограничение}
Начинай сразу с первого вывода.
Плейсхолдеры:
- {задача} — конкретный вопрос или проблема
- {дополнительное_ограничение} — например: «ответ должен быть готов к публикации» или «учитывай бюджет 50 000 рублей»
🚀 Быстрый старт — вставь в чат:
Вот шаблон для управления рассуждением модели. Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит о задаче и ограничениях — потому что ей нужно понять, какие шаги считаются «новым выводом» именно в твоём контексте. Она возьмёт паттерн из шаблона и адаптирует инструкции рассуждения под предметную область.
Ограничения
⚠️ Для простых задач не нужно: Если тебе нужен рецепт борща или перевод абзаца — эти инструкции создадут лишнюю сложность. Метод работает там, где ответ требует нескольких логических шагов.
⚠️ Не убирает проблему, а управляет ею: Топологическая мимикрия — системная особенность LLM, а не баг конкретной версии. Промпт снижает её частоту, но не устраняет. Сложные математические или стратегические задачи всё равно требуют проверки выводов.
⚠️ Работает лучше с большими моделями: Чем мощнее модель, тем точнее она следует инструкциям о типе шага. На слабых моделях инструкции могут игнорироваться.
⚠️ Финальный ответ ≠ качественное рассуждение: Исследование показало: иногда модель даёт правильный ответ через неверную логику. Если процесс важен (обучение, аргументация, юридические решения) — проверяй шаги, не только результат.
Как исследовали
Исследователи взяли все 30 задач AIME 2025 — это олимпиадные задачи уровня «отбор в американскую сборную», где нельзя угадать: нужна цепочка символьных рассуждений. На них натравили DeepSeek-R1 и получили 10 247 шагов рассуждений. Каждый шаг вручную разметили пятеро аннотаторов — участников математических олимпиад, включая медалистов. Почему вручную? Потому что контекст важнее маркеров: слово «alternatively» может означать и ветвление (добавляю путь), и откат (бросаю провальный путь) — машина без понимания не различит.
Согласие между аннотаторами — 87.3% точных совпадений, κ=0.81 — это высокий показатель для такой тонкой разметки. Параллельно взяли эталонные решения людей-математиков и построили графы логического потока для каждой задачи. Вышла наглядная картина: человек решает задачу за ~10 значимых узлов, модель — за 132 шага с тупиковыми ветками и петлями проверок.
Самый показательный результат: успешные трассы модели и провальные выглядели почти одинаково по количеству шагов и плотности «проверок» — но в успешных рефлексия была логической и встроенной в вывод, а в провальных — числовой и встроенной в анализ. Длина ≠ качество. Это противоречило интуиции «больше думает → лучше отвечает».
Оригинал из исследования
Таксономия шагов (оригинальные определения):
Analysis (A_ana): Steps that produce no new mathematical conclusion.
The model restates or rephrases the problem, sets up notation, lists constraints,
names a candidate strategy, or describes what it intends to do next.
Markers: "let me set up...", "so we need to find...", "one approach is to..."
Inference (A_inf): Steps that produce a new mathematical fact along the current
line of reasoning. A new equation, a new numerical value, a new geometric
relation, an applied theorem, or a discharged case.
Branch (A_bra): Steps in which the model proposes a parallel solution path
while leaving the current path intact.
Markers: "alternatively", "another way to see this", "we could also..."
Backtrace (A_bac): Steps in which the model abandons a recently pursued path
and explicitly returns the trace to an earlier point.
Unlike Branch, Backtrace removes a path from the working agenda rather than adding one.
Reflection subtypes (least → most impactful):
- Numerical (R_num): localised arithmetic check, single calculation
- Formal (R_form): check against output requirements (format, constraints)
- Supplementary (R_sup): stocktaking — listing what's known, what's open
- Logical (R_log): scrutiny of foundational logic, can trigger wholesale reversal
Combined label example: Inf_Ref_L = Inference step with Logical reflection
Контекст: Это операциональная таксономия, которую исследователи использовали для разметки и анализа трасс. Сами метки — готовый словарь для описания типов шагов в промптах.
Адаптации и экстраполяции
💡 Адаптация: Диагностика ответа, который уже получил
Когда модель дала длинный ответ и ты не уверен, можно ли ему доверять:
Посмотри на своё предыдущее рассуждение и оцени каждый шаг:
- Этот шаг добавил новый вывод? (Вывод)
- Или просто пересказал условие / описал план? (Анализ)
- Была ли проверка логики стратегии? Или только пересчёт цифр? (Глубокая / поверхностная рефлексия)
Если больше половины шагов — анализ без выводов, значит ты "крутил колёса".
Перерешай задачу, фокусируясь только на шагах, которые дают новые факты.
🔧 Техника: Форсированный откат при тупике
Когда видишь, что модель повторяет одно и то же разными словами:
Вместо того чтобы продолжать текущий подход — явно откатись. Напиши: «Текущий путь не работает потому что [причина]. Возвращаюсь к [точка]. Пробую [другой подход].»
Это форсирует настоящий Backtrace вместо имитации пересмотра.
🔧 Экстраполяция: Применить к code review или анализу документа
Тот же принцип работает вне математики. Если просишь модель проанализировать договор или код:
Анализируй документ: {текст}
Для каждого найденного вопроса:
1. Сначала сформулируй конкретный вывод (не «нужно обратить внимание», а «пункт 5.3 противоречит пункту 2.1 потому что...»)
2. Если ставишь под сомнение свой вывод — объясни ЧТО логически неверно, не просто «с другой стороны»
3. Не проверяй повторно то, что уже установил
Избегай общих фраз без конкретных последствий.
Ресурсы
A Comprehensive Anatomy of Human and DeepSeek-R1 LLM Mathematical Reasoning Авторы: Yuxiang Chen, Jun Wang Организация: UCL Centre for Artificial Intelligence (University College London) Контакт: jun.wang@cs.ucl.ac.uk
Связанные работы, упомянутые в исследовании: - Chain-of-Thought (Wei et al., 2022) - Tree-of-Thought (Yao et al., 2023) - Reflexion / Self-Refine (Shinn et al., 2023; Madaan et al., 2023) - DeepSeek-R1-0120 (Shao et al., 2024)
