思维链推理
问题
什么是 CoT(Chain-of-Thought)?如何有效使用思维链提升 LLM 的推理能力?
答案
思维链(Chain-of-Thought, CoT) 是让 LLM "展示推理过程" 而非直接给出答案的 Prompt 技术。这是提升 LLM 推理能力最有效的方法之一,详细原理见涌现能力。
一、标准 CoT vs Zero-shot CoT
标准 CoT(Few-shot CoT)
在示例中包含完整推理过程:
Q: 一个商店有 5 个苹果,又进了 3 箱,每箱 8 个。卖掉了 12 个。还剩多少?
A: 商店原有 5 个苹果。
又进了 3 箱,每箱 8 个,共 3 × 8 = 24 个。
总共有 5 + 24 = 29 个。
卖掉了 12 个,剩余 29 - 12 = 17 个。
答案是 17。
Q: [你的问题]
Zero-shot CoT
不需要示例,只需一句话触发——"Let's think step by step":
Q: 一个商店有 5 个苹果...还剩多少?
A: Let's think step by step.
二、CoT 变体
| 变体 | 思路 | 适用场景 |
|---|---|---|
| Few-shot CoT | 给推理示例 | 需要特定推理格式 |
| Zero-shot CoT | "逐步思考" | 快速应用、通用推理 |
| Auto-CoT | 自动生成推理链示例 | 减少人工编写成本 |
| CoT-SC | 多条推理链 + 多数投票 | 提高可靠性 |
| Program-of-Thought | 生成代码来推理 | 数学计算 |
三、Self-Consistency
CoT 的增强版——多次采样,取最常见的答案:
Self-Consistency 可以将数学推理准确率提升 10-20%。
四、什么时候用 CoT?
| 适合 CoT | 不适合 CoT |
|---|---|
| 数学计算 | 简单事实查询 |
| 逻辑推理 | 翻译 |
| 代码调试 | 文本摘要 |
| 多步规划 | 情感分析 |
小模型慎用 CoT
CoT 在 >10B 参数模型上才有效。小模型使用 CoT 可能生成错误的推理过程,反而降低准确率。
常见面试问题
Q1: CoT 为什么能提升推理能力?
答案:
- 分解复杂问题:将多步推理分解为简单子步骤,每步都在模型能力范围内
- 隐式计算分配:更多中间 Token = 更多计算量 = 更强推理
- 错误累积降低:逐步输出便于模型自检和纠错
- 工作记忆扩展:中间结果写入上下文,不需要全靠"记忆"
Q2: Self-Consistency 的原理是什么?
答案: 核心思想:正确答案更容易从不同推理路径得出。通过高温度采样生成多条推理链,错误的推理链各有各的错误(答案分散),而正确的推理链更容易收敛到同一答案。多数投票就能过滤掉随机错误。