LLM2022· NeurIPS 2022· CLASSIC

Chain-of-Thought Prompting Elicits Reasoning

Wei et al.

给 LLM few-shot 示例时加入推理过程("Let's think step by step"),数学/常识推理性能飙升。

arXiv:2201.11903
#prompting#reasoning#in-context-learning

核心贡献

  • 01发现:在 prompt 示例中展示 step-by-step 推理,大模型(>62B)准确率大幅提升
  • 02GSM8K 数学题从 18% → 58%
  • 03"涌现"特性:CoT 只在足够大的模型上有效,小模型用反而更差
  • 04后续 Zero-shot CoT("Let's think step by step")证明触发推理不需要示例

核心思想

普通 Few-shot:

text
1Q: 树上有 5 只鸟,飞走 2 只,还剩几只?
2A: 3
3
4Q: 小明有 10 个苹果,吃掉 4 个,还有几个?
5A: ???

CoT Few-shot:

text
1Q: 树上有 5 只鸟,飞走 2 只,还剩几只?
2A: 原本 5 只,飞走 2 只,剩下 5 - 2 = 3 只。答案是 3。
3
4Q: 小明有 10 个苹果,吃掉 4 个,还有几个?
5A: ???

差别:强制模型在给出最终答案前先生成中间推理步骤

为什么有效?

  1. 把复杂任务分解:难问题 → 一串简单子问题
  2. 利用 LLM 的自回归性:生成的中间 token 成为后续 token 的条件,形成内部 scratchpad
  3. 激发预训练中见过的推理模式:训练数据里有大量人类写的推理过程

关键发现

  • Scale-dependentGPT-3 13B 基本无效;62B+ 开始显著收益;175B 效果最好
  • 不止数学:常识推理、符号推理、多步 QA 都有效
  • Self-Consistency:采样多条 CoT 再投票,进一步提升 10-15%

后续演进

  • Zero-shot CoT: "Let's think step by step" 一句话触发
  • ReAct: CoT + Tool Use 交替
  • Tree of Thoughts: 树状探索不同推理分支
  • Reasoning Models (o1, R1): CoT 作为显式训练目标,通过 RL 强化
面试视角

面试考点

"CoT 为什么只在大模型上有效?" 小模型生成的中间推理往往是错的,错误会累积放大;大模型的中间步骤质量更高。这是 Emergent Abilities 的经典例子。

"Zero-shot CoT 和 Few-shot CoT 哪个好?" Few-shot 通常更稳定(示例能 anchor 格式和难度),但 Zero-shot 更灵活。现代做法常组合:先 zero-shot 生成,再让模型自评/self-consistency。

"CoT 和 Reasoning Models (o1/R1) 的关系?" CoT 是 prompting 技巧——只改输入;Reasoning Models 把 CoT 变成训练目标——用 RL 直接优化推理链本身。DeepSeek R1 的 RL 阶段就是在 RLHF 框架下强化 CoT 质量。

"CoT 的 failure mode?" 自信地胡说八道——中间推理看似合理实际错了;计算步骤遗漏;长度爆炸。缓解方法:Self-Consistency、Verifier、Tool Use(用代码计算)。

"如何评估 CoT 质量?" 不能只看最终答案——可能 reasoning 错但答案对。需要 step-level 评估(PRM 过程奖励模型、Monte Carlo 验证每一步)。

相关论文