Эпоха 5 · Эра LLM · 2022

43 Chain-of-Thought

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models · Wei, Wang и др. · Google · NeurIPS
🟥 читать целиком~45 миноригинал ↗
Суть за 20 секунд. Просьба показать промежуточные шаги резко улучшает арифметику, логику, символику — и это ЭМЕРДЖЕНТНО, проявляется с масштабом. Никакого обучения, только формат промпта. Предок reasoning-моделей (o1, R1).

Контекст

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

Идея и механизм

В few-shot примерах показать модели не только ответ, но и ПРОМЕЖУТОЧНЫЕ ШАГИ рассуждения («давай рассуждать по шагам»). Тогда на новой задаче модель тоже генерирует цепочку рассуждений ПЕРЕД ответом — и точность резко растёт. Восемь CoT-примеров вывели PaLM 540B на SOTA по GSM8K, обойдя даже дообученный GPT-3 с верификатором.

теория вероятностей Почему промежуточные шаги помогают

Прямой ответ — это P(a | q): вся вычислительная работа должна уместиться в один проход, и на многошаговой задаче точность низкая. CoT вводит явную цепочку рассуждений r:

P(a, r | q) = P(r | q) · P(a | r, q)

Генерация r даёт два эффекта. (1) Больше вычислений: каждый сгенерированный токен — это ещё один прямой проход, поэтому рассуждение разворачивается на много последовательных шагов вместо одного. (2) Условие на промежуточные результаты: ответ опирается на явно выписанные подвыводы, а не держит всё «в уме». Ключевое наблюдение: эффект эмерджентен — у малых моделей CoT почти не помогает (или вредит), а у больших даёт большой выигрыш. Способность «рассуждать по шагам» появляется только с масштабом.

Python CoT-промпт (few-shot с рассуждением)
prompt = """Q: У Роджера 5 мячей. Купил ещё 2 банки по 3 мяча. Сколько всего?
A: Было 5. Купил 2 × 3 = 6. Итого 5 + 6 = 11. Ответ: 11.

Q: В столовой было 23 яблока, 20 ушло на обед, купили ещё 6. Сколько яблок?
A:"""
out = lm.generate(prompt)   # модель выпишет шаги, потом ответ: 9
вопрос ответ ✗ прямо вопрос шаг 1 → шаг 2 → шаг 3 ответ ✓ по шагам
Прямой ответ на многошаговой задаче часто неверен; разложив рассуждение на шаги, модель доходит до правильного.
Аналогия. Сложную задачу по математике вы не решаете «в уме одним взглядом» — берёте черновик и пишете шаги. Промежуточные записи разгружают память и не дают ошибиться. Chain-of-thought — это «дать модели черновик»: возможность думать вслух перед тем, как назвать ответ.

Почему это важно

Практически — мощный бесплатный приём (CoT → self-consistency, ReAct, scratchpad). Концептуально — толчок направлению reasoning, кульминация которого модели с длинным «мышлением» (o1, DeepSeek-R1, #53), обучаемые делать CoT через RL. Один формат промпта раскрыл скрытую способность модели.

Связи

← раскрывается через38. GPT-3

CoT — это «продвинутый few-shot»: тот же интерфейс in-context learning GPT-3, но в примеры добавлены шаги рассуждения. Без парадигмы «учить из примеров в промпте» CoT не на чем было бы строить.

→ ведёт к53. DeepSeek V3 / R1

CoT показал, что рассуждение по шагам резко поднимает качество. R1 делает следующий шаг: обучает модель рассуждать через RL на верифицируемых наградах, и длинные цепочки мысли возникают сами. Промптинг 2022-го вырос в обучаемую способность к рассуждению.

↔ перекликается29. AlphaGo

Обе про «потратить больше вычислений во время решения». AlphaGo разворачивает поиск по дереву; CoT разворачивает рассуждение в токенах. Это две формы inference-time compute — думать дольше, чтобы решить лучше.

Вопросы пытливого ума

Цепочка рассуждений отражает настоящий ход «мысли» модели?

Не обязательно. Это правдоподобный текст, который помогает прийти к ответу, но не гарантированно описывает внутренние вычисления. Бывает, что модель выдаёт верный ответ при ошибочной цепочке, или «рационализирует» уже принятое решение. CoT — полезный инструмент и частичное окно в рассуждение, но не достоверный лог внутренней работы (тема «faithfulness of reasoning»).

Почему CoT эмерджентен — у маленьких моделей не работает?

Малой модели не хватает базовых под-навыков (надёжная арифметика, удержание контекста), чтобы цепочка из шагов была корректной — одна ошибка в шаге рушит весь вывод, и CoT даже вредит. Большая модель достаточно надёжна на каждом шаге, и тогда разложение на шаги начинает выигрывать. Это пример «способность появляется скачком с масштабом», который плохо предсказывается гладким лоссом (#37).

Можно ли получить выигрыш CoT без примеров в промпте?

Да — zero-shot CoT: достаточно дописать «давай рассуждать шаг за шагом», и модель сама развернёт рассуждение (Kojima 2022). А self-consistency усиливает эффект: сэмплируют несколько цепочек и берут самый частый ответ. Так из одного приёма выросло целое семейство методов «думать дольше при инференсе».

Что читать в оригинале

Короткий — читать целиком; обратите внимание на эмерджентность и на то, как простое изменение интерфейса раскрывает скрытые способности модели.