Chain-of-Thought Prompting Elicits Reasoning
Wei et al.
给 LLM few-shot 示例时加入推理过程("Let's think step by step"),数学/常识推理性能飙升。
arXiv:2201.11903核心贡献
- 01发现:在 prompt 示例中展示 step-by-step 推理,大模型(>62B)准确率大幅提升
- 02GSM8K 数学题从 18% → 58%
- 03"涌现"特性:CoT 只在足够大的模型上有效,小模型用反而更差
- 04后续 Zero-shot CoT("Let's think step by step")证明触发推理不需要示例
核心思想
普通 Few-shot:
1Q: 树上有 5 只鸟,飞走 2 只,还剩几只?2A: 334Q: 小明有 10 个苹果,吃掉 4 个,还有几个?5A: ???
CoT Few-shot:
1Q: 树上有 5 只鸟,飞走 2 只,还剩几只?2A: 原本 5 只,飞走 2 只,剩下 5 - 2 = 3 只。答案是 3。34Q: 小明有 10 个苹果,吃掉 4 个,还有几个?5A: ???
差别:强制模型在给出最终答案前先生成中间推理步骤。
为什么有效?
- 把复杂任务分解:难问题 → 一串简单子问题
- 利用 LLM 的自回归性:生成的中间 token 成为后续 token 的条件,形成内部 scratchpad
- 激发预训练中见过的推理模式:训练数据里有大量人类写的推理过程
关键发现
- Scale-dependent:
GPT-313B 基本无效;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 验证每一步)。