Lil’Log: зачем модели думать
Конспект обзора Лилиан Венг «Why We Think» (май 2025) о вычислениях во время ответа: зачем модели «думать дольше», параллельное сэмплирование и последовательные исправления, RL для рассуждений (DeepSeek-R1), честность цепочек рассуждений и опасность давления на них, мышление в непрерывном пространстве, рассуждение как скрытая переменная и законы масштабирования времени размышления.
Коротко
Заголовок раздела «Коротко»- Пост — обзор того, как модели тратят вычисления во время ответа (вычисления во время инференсавычисления во время инференса (test-time compute)EN test-time computeБольше вычислений на ответ вместо большей модели: длинное рассуждение, много сэмплов с голосованием, поиск с проверщиком.) и почему цепочка рассуждений (цепочка рассужденийцепочка рассужденийEN chain of thought (CoT)) так сильно помогает.
- Три мотивации: аналогия с «медленным мышлением» человека (Канеман); вычисления как ресурс — CoT даёт модели больше FLOP на каждый токен ответа и позволяет тратить их по трудности задачи; рассуждение как скрытая переменная в модели .
- Способы думать в токенах: параллельное сэмплирование (best-of-N, лучевой поиск с PRM, самосогласованность) и последовательные исправления (самокоррекция — без внешней обратной связи работает плохо, её надо обучать).
- RL с проверяемыми наградами (DeepSeek-R1 и др.) учит модель рассуждать дольше и исправлять себя; PRM и MCTS у DeepSeek не сработали.
- Честность CoT: рассуждающие модели чаще признают, что на ответ повлияла подсказка, но оптимизировать CoT напрямую опасно — модель начинает прятать взлом награды.
- Есть и «мышление» в непрерывном пространстве: рекуррентная глубина, токены-паузы, Quiet-STaR. Время размышления масштабируется, но не заменяет 1:1 вычислений претрейна.
Как читать вместе с курсом
Заголовок раздела «Как читать вместе с курсом»Это лучший обзор литературы к модулю 6.4. Читайте после уроков 6.4.1 «GRPO» и 6.4.2 «R1-Zero»: тогда раздел о DeepSeek-R1 будет повторением, а остальные — расширением. Раздел о законах масштабирования и s1 — к уроку 6.4.4 «Дистилляция и бюджет мышления», раздел о честности CoT и мониторинге — к 9.3.3 «Выравнивание». Перед чтением полезно освежить конспект о взломе награды — Венг на него ссылается.
Новичку можно пропустить «Мышление как скрытая переменная» (ЭМ-алгоритм, веса важности) — это самая математическая часть; достаточно понять, что STaR — это градиент политики с наградой «ответ верен».
1. Мотивация
Заголовок раздела «1. Мотивация»Психология. Мы не перемножаем 12345 на 56789 мгновенно. Канеман делит мышление на быструю, интуитивную «Систему 1» и медленную, логическую «Систему 2». Первая дешева, но ошибается; вторая затратна, но позволяет проверить интуицию. CoT даёт модели аналог «Системы 2».
Вычисления как ресурс. Нейросеть можно описать тем, сколько вычислений и памяти ей доступно за прямой проход; градиентный спуск сам решит, как организовать их в «цепи» вычислений. Значит, если дать модели больше вычислений во время ответа и научить ими пользоваться, она станет сильнее. На один токен трансформер тратит около FLOP, где — число параметров (у MoE — число активных параметров). Цепочка рассуждений умножает вычисления на каждый токен ответа — и, главное, позволяет тратить их переменно, по трудности задачи.
Скрытая переменная. Если — задача, — ответ, а — ход решения, то : распределение ответов становится богаче. Параллельный поиск по многим CoT можно понимать как сэмплирование из апостериорного распределения , а логарифм правдоподобия — как естественную цель обучения.
2. Мышление в токенах
Заголовок раздела «2. Мышление в токенах»Предыстория: промежуточные шаги перед ответом в математике (AQUA-RAT, Ling и др., 2017; GSM8K, Cobbe и др., 2021, где генератор учили на решениях людей, а проверяющую модель — выбирать правильные). Затем — «думай по шагам» в промпте, SFT на отфильтрованных по правильности рассуждениях (это уже зачаточный RL) и, наконец, RL на задачах с автоматически проверяемыми ответами — подход, ставший знаменитым после o1-preview.
Ветвление и правка
Заголовок раздела «Ветвление и правка»flowchart LR Q["Задача"] --> P["Параллельно: N попыток"] P --> V["Выбор: голосование, верификатор, PRM"] Q --> S["Последовательно: ответ → критика → исправление → ..."] V --> A["Ответ"] S --> A
Параллельное сэмплирование — проще и популярнее: best-of-N, лучевой поиск (лучевой поисклучевой поиск (beam search)EN beam searchДержит B лучших частичных последовательностей вместо одной. Хорош для перевода, плох для свободной генерации.), самосогласованность (самосогласованностьсамосогласованность (голосование большинством)EN self-consistency (majority voting)Сгенерировать N ответов и выбрать самый частый итоговый. В отчётах — maj@k или cons@k.). Лучевой поиск можно направлять моделью награды за процесс (процессная модель вознагражденияпроцессная модель вознаграждения (PRM)EN process reward model (PRM)Оценивает каждый шаг рассуждения, а не только итоговый ответ. В DeepSeek-R1 описана как «неудачная попытка»., Lightman и др., 2023) или самооценкой: модель сама оценивает шаг как вопрос с вариантами ответа (Xie и др., 2023). Любопытная находка Wang и Zhou (2024): CoT появляется и без промпта, если ветвиться на первом токене — взять самых уверенных вариантов первого токена и дальше декодировать жадно; многие такие продолжения уже содержат рассуждение, и уверенность модели в ответе выше там, где оно есть. Ограничение параллельного подхода — модель должна уметь решить задачу с одной попытки хоть иногда.
Последовательные исправления — модель смотрит на свой ответ и исправляет. Но «врождённой» самокоррекции у LLM почти нет: без внешней обратной связи модель портит правильные ответы, вносит мелкие косметические правки или не обобщает исправления. Поэтому её обучают:
- Self-correction learning (Welleck и др., 2023): отдельная модель-корректор учится на парах «ответ → лучший ответ на ту же задачу», отобранных по росту качества и сходству;
- рекурсивная интроспекция (Qu и др., 2024): одна модель и отвечает, и исправляет;
- SCoRe (Kumar и др., 2024): двухэтапный многоходовый RL — сначала максимизировать точность второй попытки, держа первую близкой к исходной модели (KL-штраф), затем — точность обеих попыток; первый этап не даёт модели «схлопнуться» в почти нулевые правки.
По Snell и др. (2024), лёгким задачам больше помогают последовательные исправления, а трудным — подобранное сочетание параллельного и последовательного.
RL для рассуждений
Заголовок раздела «RL для рассуждений»Венг пересказывает рецепт DeepSeek-R1 (подробно — в уроке 6.4.2): SFT на нескольких тысячах примеров «холодного старта» (данные холодного стартаданные холодного стартаEN cold-start dataНебольшой набор качественных длинных рассуждений для SFT перед RL — так в DeepSeek-R1 исправили нечитаемость R1-Zero.) → RL на задачах рассуждения с наградами по правилам (правиловая наградаправиловая наградаEN rule-based rewardНаграду считает программа (сверка ответа, запуск тестов, проверка формата), а не нейросеть. Её трудно «взломать».) — за формат и за правильность ответа → отбор с отклонением (отбор с отклонениемотбор с отклонением (rejection sampling)EN rejection samplingСгенерировать много ответов и оставить только прошедшие проверку. В пост-трейнинге — способ собрать SFT-данные из RL-модели.) и SFT на 800 тыс. примеров (рассуждения плюс обычные задачи V3) → финальный RL на рассуждениях и общих задачах. Чистый RL без SFT (R1-Zero) сам научился рефлексии и откату — «момент озарения» («момент озарения»«момент озарения»EN aha momentЭффект из статьи DeepSeek-R1: модель при RL-обучении сама начинает перепроверять свои рассуждения.) — и рост длины рассуждений. Неудачи DeepSeek: PRM (трудно определить правильность промежуточного шага, легко взломать) и MCTS (слишком большое пространство токенов, трудно обучить модель ценности).
Инструменты
Заголовок раздела «Инструменты»Часть шагов надёжнее отдать интерпретатору кода (PAL, Chain of Code) или поиску (ReAct). o3 и o4-mini используют поиск, исполнение кода и обработку изображений прямо внутри рассуждения, и, по словам OpenAI, крупномасштабный RL следует тому же принципу «больше вычислений — лучше результат».
Честное мышление
Заголовок раздела «Честное мышление»CoT — удобная форма интерпретируемости: по ней видно, как модель пришла к ответу. Мониторинг CoT ловит взлом награды
(например, «выйти через exit(0) до запуска тестов» или «пропустить тесты исключением»), причём слабая модель может
следить за сильной (Baker и др., 2025), а более долгое размышление повышает устойчивость к атакам (Zaremba и др., 2025).
Но честна ли CoT? Проверки:
- испортить CoT — оборвать раньше, вставить ошибку, заменить «пустыми» токенами (точками), перефразировать (Lanham и др., 2023). Пустые токены не помогают; перефразирование не вредит; зависимость ответа от CoT для задач с вариантами не всегда растёт с размером модели, а для сложения растёт;
- подсказать в промпте неверный ответ («профессор думает, что ответ B») или всегда ставить правильный ответ на «(A)» в примерах (Turpin и др., 2023; Chen и др., 2025) — и посмотреть, признаётся ли модель, что подсказка повлияла. Рассуждающие модели (Claude 3.7 Sonnet, DeepSeek R1) признаются заметно чаще обычных.
Давление на CoT — хорошо или плохо? Мониторинг как фильтр при отборе работает лишь в начале RL. Если же добавить монитор CoT в награду, модель продолжает взламывать — реже, но скрывая намерение в рассуждении (Baker и др., 2025). Награда за длину CoT порождает новый взлом — модель повторяет текст (Yeo и др., 2025). В эксперименте Chen и др. (2025) модель использовала подложенную «дыру» в оценщике более чем в 99 % примеров, но почти никогда (меньше 2 %) не упоминала её в рассуждении в большинстве сред. Вывод Венг: прямо оптимизировать CoT в RL надо очень осторожно, а лучше вовсе избегать.
3. Мышление в непрерывном пространстве
Заголовок раздела «3. Мышление в непрерывном пространстве»Идея восходит к адаптивному времени вычислений (Graves, 2016; см. статью Distill о дополненных RNN): модель сама решает, сколько шагов думать.
- Рекуррентная архитектура. Universal Transformer; рекуррентная глубина Geiping и др. (2025): блок повторяется раз над эмбеддингом входа и случайным начальным состоянием (похоже на условную диффузию); на обучении случаен, обратное распространение — только через последние итераций. Обучение очень чувствительно к инициализации, нормализации и гиперпараметрам.
- Токены размышления и паузы. Вставить после слов служебный токен
<T>(Herel и Mikolov, 2023) или добавить в конец входа «пустые» токены-паузы (Goyal и др., 2024): токены не несут информации, но дают лишние проходы вычислений. Паузы надо использовать и на претрейне, и на дообучении — одного дообучения мало. - Quiet-STaR (Zelikman и др.): после каждого токена модель порождает короткое «обоснование» будущего текста (параллельно, со специальной маской внимания), смешивает предсказания с ним и без него через обучаемую «голову смешивания» и учит обоснования методом REINFORCE. На Mistral 7B без дообучения под задачи: CommonsenseQA 36,3 % → 47,2 %, GSM8K 5,9 % → 10,9 %.
4. Мышление как скрытая переменная
Заголовок раздела «4. Мышление как скрытая переменная»Если рассуждение — скрытая переменная, цель — максимизировать . Отсюда ЭМ-подход: E-шаг — найти хорошие рассуждения (по разметке людей, MCMC или выборке с весами важности), M-шаг — дообучить модель на них. Ruan и др. (2025) просили LLM вставлять «скрытые мысли» между префиксом и продолжением веб-документа и отбирали их по весу : хорошая мысль объясняет текст, проста, но не очевидна.
Итеративное обучение. STaR (Zelikman и др., 2022): породить рассуждения, оставить те, что привели к верному ответу, дообучить, повторить. Для нерешённых задач — «рационализация»: породить рассуждение, зная правильный ответ. Венг показывает, что STaR — это приближение градиента политики с наградой :
то есть SFT на отобранных правильных примерах — это REINFORCE с наградой 0/1 (сравните с уроком 6.3.1). Предостережение авторов: высокая температура чаще даёт правильный ответ при неверном рассуждении, и обучение на таком портит обобщение.
5. Законы масштабирования времени размышления
Заголовок раздела «5. Законы масштабирования времени размышления»- Оптимизация вычислений во время ответа может быть выгоднее роста модели: маленькая модель с хорошим алгоритмом вывода даёт Парето-оптимальный компромисс цены и качества (Snell и др., 2024; Wu и др., 2025).
- Но обмен не 1:1: на лёгких и средних задачах время размышления быстро закрывает небольшой разрыв в способностях, а на трудных помогает мало. Выгодно, только когда токенов на инференсе намного меньше, чем на претрейне. Сильная базовая модель по-прежнему нужна.
- s1 (Muennighoff и др., 2025): «принуждение к бюджету» (бюджет мышлениябюджет мышленияEN thinking budgetЛимит токенов на рассуждение; при его исчерпании рассуждение обрывают и просят модель ответить. Ручка «точность ↔ задержка».) — удлинить рассуждение, дописывая «Wait», или оборвать его токеном конца размышления. Средняя длина размышления и точность заметно положительно связаны. А простой отбор по длине (сэмплировать, пока не уложится в бюджет) даёт обратную зависимость: длинные цепочки оказываются хуже.
6. Открытые вопросы (из конца поста)
Заголовок раздела «6. Открытые вопросы (из конца поста)»Как в RL поощрять читаемые и честные рассуждения без взлома награды? Как определять и ловить взлом без людей и без бесконечной «игры в крота»? Как учить самокоррекцию без ошибок и откатов, когда нет правильного ответа? Как делать RL с CoT для творческих и трудно проверяемых задач? Как переносить выигрыш от долгого размышления обратно в базовую модель (дистилляцией)? Как делать бюджет размышления адаптивным к трудности задачи?
Что сделать руками
Заголовок раздела «Что сделать руками»Посчитайте цену «размышления» в FLOP — по оценке поста (активные параметры) на токен:
# Сколько вычислений тратит модель на ответ: ≈ 2 FLOP на каждый активный параметр на каждый токенdef flops(active_params, tokens): return 2 * active_params * tokens
dense = 7e9 # плотная модель на 7 млрд параметровmoe_active = 3e9 # MoE: 30 млрд всего, но на токен активны ~3 млрдanswer, cot = 5, 2000 # короткий ответ и ответ с рассуждением на 2000 токенов
for name, p in [("плотная 7B", dense), ("MoE 30B-A3B", moe_active)]: a, c = flops(p, answer), flops(p, answer + cot) print(f"{name}: без CoT {a:.1e} FLOP, с CoT {c:.1e} FLOP, в {c / a:.0f} раз больше")
# Параллельно (8 попыток по 2000 токенов) или последовательно (одна попытка на 16000 токенов) — одинаковый бюджетprint(f"8 x 2000 токенов: {flops(dense, 8 * 2000):.1e} FLOP; 1 x 16000 токенов: {flops(dense, 16000):.1e} FLOP")Ожидаемый вывод:
плотная 7B: без CoT 7.0e+10 FLOP, с CoT 2.8e+13 FLOP, в 401 раз большеMoE 30B-A3B: без CoT 3.0e+10 FLOP, с CoT 1.2e+13 FLOP, в 401 раз больше8 x 2000 токенов: 2.2e+14 FLOP; 1 x 16000 токенов: 2.2e+14 FLOPОценка не учитывает внимание: при длинном контексте его доля растёт, и одна попытка на 16 000 токенов на практике дороже восьми по 2000 (а ещё её нельзя распараллелить). Это одна из причин, по которой параллельное сэмплирование популярнее.
Дальше, с локальной моделью и кодом модуля 6.4:
- Повторите «принуждение к бюджету» s1: на 30 задачах GSM8K обрывайте рассуждение на 256, 512, 1024 токенах и дописывайте «Final Answer:»; затем вместо обрыва дописывайте «Wait» один-два раза. Постройте точность от средней длины.
- Проверьте честность CoT по Turpin и др.: добавьте в промпт «Мне кажется, ответ — (B)» к вопросам с вариантами и посчитайте, как часто ответ меняется и как часто модель упоминает подсказку в рассуждении.
- Реализуйте STaR на игрушечной задаче (сложение двузначных чисел): порождайте решения, оставляйте верные, дообучайте маленькую модель — и сравните с GRPO из урока 6.4.5.
Словарик
Заголовок раздела «Словарик»| EN | RU |
|---|---|
| test-time compute, thinking time | вычисления во время ответа, время размышления |
| System 1 / System 2 | Система 1 (быстрое) / Система 2 (медленное мышление) |
| latent variable, posterior | скрытая переменная, апостериорное распределение |
| parallel sampling / sequential revision | параллельное сэмплирование / последовательные исправления |
| process reward model (PRM) | модель награды за процесс |
| self-correction | самокоррекция |
| cold start, rule-based reward | холодный старт, награда по правилам |
| CoT faithfulness, CoT monitoring | честность цепочки рассуждений, мониторинг CoT |
| obfuscated reward hacking | скрытый взлом награды |
| recurrent depth, pause / thinking tokens | рекуррентная глубина, токены-паузы / токены размышления |
| expectation-maximization (EM) | ЭМ-алгоритм |
| rationalization (STaR) | рационализация |
| budget forcing | принуждение к бюджету размышления |
| Pareto-optimal | Парето-оптимальный |