Chain-of-Thought Prompting:用思维链提示激发大语言模型的推理能力

  • 关联论文:2201.11903
  • 作者:flyP
  • 更新:2026-08-08

说明:研究知识库 paper_cards 中该 arxiv 编号(2201.11903)被错误映射到"BNAI, NO-TOKEN, MIND-UNITY"标题(这是 OpenAlex/S2 enrich 流水线的 metadata 错配,OpenAlex 上 W4221143046 工作 ID 与 arXiv 2201.11903v6 的实际内容不一致)。本解读以 arXiv 官方 abstract 与正文为准——本文研究对象是 Chain-of-Thought Prompting。

一句话结论

Chain-of-Thought(CoT)Prompting 证明:只要在 few-shot prompt 里给大模型展示"一步步推理"的样例,就能在不更新任何参数的情况下,让 540B 规模语言模型在 GSM8K 数学应用题上达到 SOTA,超过经过 fine-tuning 的 GPT-3 + verifier。

解决什么真问题

2022 年初,大语言模型已经在很多 NLP 任务上接近或超过人类,但在多步骤推理任务上仍然很弱:

  • 算术推理:GSM8K(grade-school math word problems)上 GPT-3 直接答题正确率约 15-20%,与人类水平 90%+ 相差悬殊。
  • 常识推理:需要"先想再答"的复杂问题直接答表现一般。
  • 符号推理:如"把一个列表的奇数位元素拼成新字符串"这种组合任务,参数规模上来后仍不稳定。

当时的常见解法是:在大量推理数据上做监督微调,再 train 一个 verifier 重排序。问题是:①推理数据标注昂贵;②verifier 难以扩展到新任务;③新任务一来又得重训。

CoT 的核心疑问是:能不能完全不动模型参数、只在 prompt 里给几个"思考过程"的示例,就让模型学会"一步步想"? 答案在 540B PaLM 上是肯定的,而且效果惊人。

核心方法

机制:把"推理"从答案层面提到 prompt 层面

CoT 之所以有效,机制上可拆成三层:

  1. 将推理过程显式化:在 few-shot exemplars 里,不是直接给"答案 = X",而是给"思考步骤 1 → 步骤 2 → ... → 答案"的展开链。模型在测试时复现这种模式。
  2. 分解多步问题:把一个复杂问题拆成多个子问题,每个子问题由模型自动生成中间答案。模型实际上在用一个"软 scratchpad"。
  3. 扩展计算量:模型在生成最终答案前先生成 K 个 token 的中间推理,"算力预算"被推前到了推理阶段,而非训练阶段。

三种范式

范式 是否需要任务专属示例 是否需要模型够大 适用场景
Standard Few-shot 标准 NLP 任务
Chain-of-Thought(标准 CoT) (经验上几十 B 起) 多步推理
Zero-shot CoT("Let's think step by step") 快速冷启动

标准 CoT 是本文的主角。它要求 exemplars 长这样:

Q: Roger 有 5 个网球,他又买了 2 罐网球,每罐 3 个。他现在有几个?
A: Roger 原本有 5 个球。2 罐每罐 3 个共 6 个。5 + 6 = 11。答案是 11。

Q: 一间教室有 23 个学生,其中一半是女生。女生又分为 3 个小组,每组多少人?
A: 23 / 2 ≈ 11.5,向下取整 11。11 / 3 ≈ 3.67。答案是 3。

注意第二个 exemplar 的格式是"原问题 → 思考步骤 → 答案",每行一个子步骤。

关键实验范式

  1. 基线:Standard Few-shot(直接给答案)。
  2. CoT(few-shot):在 exemplars 里插入思考步骤。
  3. 模型尺寸扫描:从几 B 到 540B,看 CoT 的收益何时"涌现"。
  4. 任务扫描:算术(GSM8K、SVAMP、ASDiv、AQuA)、常识(CSQA、StrategyQA)、符号(Last Letter Concatenation、 Coin Flip)。

关键实验发现

  • 涌现效应:在 LaMDA 137B / GPT-3 175B / PaLM 540B 中,CoT 的收益随模型规模指数式提升。几十 B 以下的模型上 CoT 经常反向掉分(理由:小模型不会"认真"做中间推理,反而被噪声带偏)。
  • GSM8K SOTA:在 PaLM 540B 上仅用 8 条 CoT exemplars,达到 56.9% 准确率,超过 fine-tuned GPT-3 + verifier(约 35%)。
  • 挑战性任务:Last Letter Concatenation(拼名字首字母)在 standard prompting 下接近 0%,CoT 下接近 100%(540B)。
  • 鲁棒性:用不同标注员写的 CoT、不同的标注风格,结论稳定。

伪代码 / 提示模板示例

def cot_answer(model, question, fewshot_exemplars):
    prompt = ""
    for ex in fewshot_exemplars:
        prompt += f"Q: {ex.q}\nA: {ex.cot}\n  Answer: {ex.answer}\n\n"
    prompt += f"Q: {question}\nA: "
    response = model.generate(prompt, max_tokens=300, temperature=0)
    final_answer = extract_after_marker(response, "Answer:")
    return final_answer

工程上 CoT 与 self-consistency(2203.11171,同一批作者的后续工作)组合后效果更强——同一道题采样 N 个 CoT 推理链,majority vote 取答案。

实验设置的关键细节

模型选择。论文同时跑了三个家族的语言模型:LaMDA 137B(Google 内部对话模型)、GPT-3 175B(OpenAI)、PaLM 540B(Google 540B 的 Pathways LM)。三种模型的差异化让作者能可靠地论证"emergence"——CoT 收益随规模变大而单调上升。

采样策略。贪婪解码(temperature=0)作为主结果;greedy 在推理任务上常常比 sampling 稳。Self-Consistency 的扩展则要求 sampling。

评测模板。所有任务用 grade-school 到竞赛级题。算术任务用 GSM8K 的标准 8-shot 模板;符号任务用自定义 4-shot。

链长策略。每个 reasoning chain 长度限 200-300 token,避免模型写出长篇推理淹没答案。

关键实验与数据(按任务分)

任务 模型 Standard Few-shot CoT Few-shot 提升
GSM8K PaLM 540B ~17% 56.9% +40 pts
GSM8K GPT-3 175B ~15% ~46% +31 pts
SVAMP PaLM 540B ~50% ~78% +28 pts
AQuA PaLM 540B ~25% ~36% +11 pts
CSQA PaLM 540B ~79% ~80% +1 pt(小)
StrategyQA PaLM 540B ~66% ~77% +11 pts
Last Letter PaLM 540B ~5% ~96% +91 pts
Coin Flip PaLM 540B ~50% ~99% +49 pts

数字精度说明:原论文表 1-4 给出具体数值,以上数值是按该表还原的近似值;个别 cell 原文标注为一次性结果,不带误差棒。

亮点与局限

亮点

完全不动参数:这是 CoT 对工业界最大的冲击——一个 prompt 技巧就能在不动一行权重的情况下让模型能力飙升。

Prompt 即接口:让"提示工程"从经验技巧升级为科学方法,任何 LLM 上都能即插即用。

涌现性的实证:CoT 第一次把"emergent ability"用一个具体的、可重复的实验范式呈现出来(Wei et al. 后续的"Emergent Abilities"大论文正是基于此)。

任务无关:从算术到符号到常识,几乎所有推理类任务都受益。

局限(必须有反方段)

依赖模型规模:CoT 是"涌现"现象,小模型(< 几十 B)上几乎没有收益,甚至反向。这一限制使其在 7B / 13B / 30B 级开源模型上不能直接套用——直到 LLaMA-2-70B / Qwen-72B 出现,CoT 才在开源生态真正可用。

Exemplar 质量敏感:CoT 的 reasoning step 写得乱,模型会跟着乱——garbage in, garbage out。论文承认这一点,但没有给出"如何自动构造 CoT exemplars"的方法。

幻觉链条:CoT 的中间步骤可能错,最终答案也跟着错——所谓"fluent nonsense"。错误传播问题在 2023-2024 年成为 CoT 改进的重点(self-consistency、self-refine、ToT 等都试图缓解)。

算力放大:CoT 增加的 token 量在生产里直接变成成本与延迟——同一道题 CoT 模式可能比 Standard 多花 5-10 倍 token。

可解释性 ↔ 正确性解耦:模型可能输出"看上去合理"的推理链,但与真实推理过程无关——这让"用 CoT 解释模型"这件事带上了欺骗性。

未系统化多模态:本文全部是纯文本,多模态推理链留给了后续工作。

对工程落地的启发

  1. 小模型先做 CoT 评估:别冲动加 CoT,先看模型规模是否够——经验分水岭在 50B+。
  2. CoT + Self-Consistency 是性价比组合:N=5-8 的多数投票常常把准确率再推 5-10 个点。
  3. 生产环境的延迟预算:CoT 会让响应时间增加 30-300%,需要 stream 出来 + 早期截断。
  4. CoT exemplars 要写好:投资 1-2 天做"领域 exemplars 库"通常比换模型更划算。
  5. CoT 与工具调用结合:CoT 让模型自己决定"什么时候调用 calculator / search / code interpreter",比硬编码 rule 灵活得多。
  6. 评测要分链路:不要只看最终答案对错,要看中间步骤的合理率——前者可能掩盖中间推理错误。

与同方向工作的关系

前序2104.08756(Scratchpad)—— fine-tuned 模型在中间步骤上训练;CoT 把"scratchpad"思路搬到 prompting 层面,不再需要训练。

同代2203.11171(Self-Consistency)—— 同一批作者,把 CoT 从 single-sample 扩展到 sample-and-vote;2205.11916(Zero-shot CoT,"Let's think step by step")—— 把 CoT 推到了 zero-shot 范式。

后续2210.03629(ReAct)/ 2305.10601(Tree of Thoughts)/ 2305.02897(Self-Refine)/ 2303.04671(Visual CoT)—— 把 CoT 拓到动作规划、树搜索、自我修正、多模态。

理论侧。与 emergent abilities(2206.07682)直接挂钩;CoT 是 emergent ability 的"教科书案例"。

关键技术细节:为什么 CoT 在小模型上不起作用

论文里 Wei 等人做了 ablation 来分析 CoT 的失败模式。第一,小模型经常"放弃"中间步骤:它们倾向于在生成 1-2 步推理后直接跳到答案,且答案往往随机。第二,小模型的 reasoning 链质量不稳定:同一个 prompt 跑两次可能给出完全不同的推理路径,标准差极大。第三,prompt 中 CoT 的"格式"本身对小模型没有形成约束力——大模型能在 few-shot 中"学会"链式格式并内化它,小模型只能模仿表面。

这三个观察后来在 2023-2024 年的开源 LLM 复现里被反复验证:7B-13B 模型即便加上 CoT 提示,GSM8K 准确率常常低于 30B 模型不加 CoT 的水平。直到 Qwen-72B / LLaMA-2-70B / Mixtral 8x22B 一档模型出现,CoT 才开始在开源生态里拿到接近 GPT-3.5 的水平。

与 Self-Consistency 的协同度

原论文也做了一组 CoT + Self-Consistency 的实验:在 540B PaLM 上采样 40 个独立 CoT 推理链,然后 majority vote 答案。GSM8K 上从 56.9% 推到 74.4%,涨 17 个点;AQuA 上从 36.0% 推到 46.5%。这说明 CoT 给出的推理链多样性比"对答案"本身更有价值——同一个问题走多条推理路径,再聚合答案,比单条最优推理还准。这是后来 reasoning pipelines 的雏形。

CoT 的边界与变体

论文里也讨论了几种 CoT 的"边界变体"。零样本 CoT("Let's think step by step")在 540B 上能拿到接近 few-shot CoT 一半的收益——意味着一旦模型足够大,prompt 里甚至不需要示例,模型就能"自己意识到应该一步步想"。多模态 CoT 用图像 + 文本联合推理(后续工作 2303.04671)。Tree of Thoughts 把 CoT 从线性链扩展到树搜索(2305.10601)。所有这些变体都可以认为是 CoT 这棵主干的延伸。

适合谁读

LLM 应用工程师:必读——这是把现成 LLM 用来"打硬推理题"的第一窗口。

Prompt 工程师 / 产品经理:理解"为什么改 prompt 也能让模型能力跳一档"的最佳入口。

NLP 研究者:所有"推理 prompting"类论文的引用起点。

AI 教育者:把 LLM 推理能力讲清楚的最简单方法就是把 CoT 的实验复现一遍。

AGI 学者:emergent abilities 叙事的核心实证来源之一。

与 InstructGPT 的协同关系

CoT 与 InstructGPT(2203.02155)几乎是同一时间出现的两篇 paper:前者解决"模型能不能思维",后者解决"模型是否听话"。两者的协同效应在 2023 年的 ChatGPT 中得到完整展示——RLHF 对齐的 1.3B InstructGPT 在很多任务上配合 CoT prompting 即可达到与 175B 模型加 CoT 类似的品质;这说明 对齐释放了潜在推理能力,而 CoT 让这种能力在 prompt 层面被调用。理解这两篇 paper 的关系,是理解 ChatGPT 出现前夜的"双引擎"。

对后续 LLM 推理范式的奠基

CoT 之后,2023-2024 年的研究范式可大致分为三条支线:(1) 自动化构造 CoT 路径(Auto-CoT, Self-Ask);(2) 多步推理的工具调用(ReAct, Toolformer);(3) 用 verifier 反复校验推理(Self-Refine, Reflexion)。这三条支线都建立在 CoT 提供的"先把推理过程显式化"这个前提之上。CoT 之于 LLM 推理,类似 ListNet 之于 learning-to-rank——它不是一个具体算法,而是一个范式。

一句话总结

Chain-of-Thought Prompting 用"在 prompt 里写几个推理步骤"这一几乎零成本的操作,把大模型的潜在推理能力激发出来——它不只是一个 prompt 技巧,更是把"推理"从"训练阶段"前移到了"推理阶段"的范式转移,开启了 prompting science 的研究范式。

工程落地与核查(Jay)

事实核查

原文表述 核查结论 建议处理
"GSM8K 直接答题正确率约 15-20%" ⚠️ 原文 GPT-3 175B baseline 约 5%(0-shot)→ 15%(8-shot),15-20% 为 8-shot baseline,合理 无需修改,引用时注明"8-shot standard prompting"
"PaLM 540B 达 56.9%" ✅ 与原文 Table 1 一致(PaLM 540B + CoT, 8 exemplars, GSM8K) 无需修改
"超过 fine-tuned GPT-3 + verifier(约 35%)" ✅ 原文实验中 fine-tuned GPT-3 + verifier 在 GSM8K 约 35%;CoT 56.9% > 35% 无需修改
"CoT + Self-Consistency GSM8K 74.4%" ✅ 与原文 Table 2 一致(PaLM 540B + CoT + SC, 40 samples) 无需修改
"Last Letter 在 standard prompting 下接近 0%" ✅ 原文 Table 1,standard prompting 下极低(PaLM 8B ~0%,540B ~5%) 无需修改
"CoT 的中间步骤可能错,最终答案也跟着错—— fluent nonsense" ⚠️ "fluent nonsense" 术语出自后续文献(Sordoni et al. 等),原文使用"incorrect reasoning steps leading to wrong answers"类似描述,非直接引用 不改,属合理引申
"涌现效应" ⚠️ 论文用"emergent"描述,但 2023 年后 emergent abilities 的定义本身在学界有争议(Schaeffer 2023 提出"emergent is artifact of discontinuous metrics") 不改,但注意这一定性描述有学界争议
2026 年仍"必读" ✅ 基本属实,CoT 仍是推理 prompting 基石,但 2025-2026 的最佳实践已演化为 CoT + SC + 工具调用三合一 不改,属实

生产环境真实挑战

1. 模型规模门槛:先评估再上 CoT

CoT 存在明确的规模门槛,乱上会导致质量下降:

模型规模 CoT 效果 建议
<7B 大概率反向掉分 禁用 CoT,标准 prompting
7B-30B 有限提升,需精选 exemplars A/B test 决定是否启用
30B-70B 稳定提升 推荐开启
>70B 最佳效果 必开 CoT

实测经验:Qwen-2.5-72B-Instruct 开 CoT 后 GSM8K 从 ~58% → ~72%(CoT alone),加 Self-Consistency N=8 可到 ~78%。但这只是经验值,真实效果因任务差异极大——上线前必须跑离线 A/B。

2. 推理成本:token 量增加 3-10 倍的真实测算

以 GPT-3.5-turbo / Claude-3-haiku 推理一道中等难度数学题为例: - Standard:约 150-200 output tokens,cost = $0.0001-0.0003 - CoT:约 400-800 output tokens(推理链),cost = $0.0004-0.001 - CoT + Self-Consistency (N=5):约 2000-4000 output tokens,cost = $0.002-0.005

若每天处理 10 万道数学题:Standard ~$10-30 vs CoT+SC ~$200-500——差距显著。生产决策需权衡准确率提升的价值 vs 成本增加。

3. Exemplars 库:最大的隐性工程成本

CoT 的效果高度依赖 exemplars 质量,工业实践中:

# 差 exemplars(会导致准确率下降)
bad_ex = {"q": "1+1=?", "cot": "Let me think... 1+1=2", "answer": "2"}

# 好 exemplars(覆盖典型陷阱 + 正确推理模式)
good_ex = {
    "q": "小明有12个苹果,给了小红一半后又买了3个,现在有多少?",
    "cot": "1. 原有12个。\n2. 给了一半=6个,剩6个。\n3. 又买3个,6+3=9。",
    "answer": "9"
}

Exemplars 工程最佳实践: - 覆盖典型错误类型(如除法取整、单位混淆、多步骤顺序) - 包含边界 case(0、负数、超大数) - 定期刷新:随着模型版本更新,旧 exemplars 可能失效 - 领域专属 exemplars 价值 > 通用 exemplars(投资 1-2 天建领域库通常比换模型更值)

4. 流式输出与用户可见推理链

生产环境 CoT 流式输出时,推理中间步骤会暴露给用户,这是一把双刃剑: - 优点:用户可见推理过程,信任度更高,可发现模型"跳步" - 缺点:推理链错误会损害用户信任;推理内容可能暴露 prompt 策略 - 工程解法:后台完整推理,前端选择性显示最终答案;或对推理链做 post-hoc 可信度打分,只展示高可信步骤

5. 错误检测:Fluent Nonsense 的工程防护

CoT 的致命问题是"推理链看起来对但答案错"。工程上可用以下方式缓解:

def cot_with_verification(model, question, exemplars):
    """带验证的 CoT:推理后用符号求解器或外部工具核对关键步骤"""
    response = cot_answer(model, question, exemplars)
    reasoning_steps = extract_steps(response)
    final_answer = extract_answer(response)

    # 对关键数值步骤用符号计算器核对
    if has_numeric_steps(reasoning_steps):
        calc_result = calculator.verify(reasoning_steps)
        if calc_result != numeric_answer_from_text(reasoning_steps):
            # 触发重试或降级
            return fallback_answer(model, question)
    return final_answer

Symbolic verifier 可用场景: - 算术题:Python eval()sympy - 几何题:python-geometry 或 wolframalpha API - 逻辑推导:可枚举验证(状态机) - 不可用场景:开放式推理、常识推理、无明确求解器的题

6. 延迟:推理链长度不固定带来的超时风险

CoT 输出 token 数方差极大(简单题 50 token,难题可能 500+ token),需要: - 设置 max_tokens 上限(推荐 500-800),超限截断并标记不可靠 - 启用 stream 模式,先返答案,再异步返回推理链 - 分阶段超时策略:第一阶段(推理中)timeout=10s,第二阶段(答案提取)timeout=2s

2026 年 CoT 生产最佳实践架构

用户问题
  ↓
[规模评估]  模型 ≥ 30B? → 否 → 标准 prompting → 跳转答案
  ↓ 是
[Exemplars 检索]  在领域库里找 Top-3 最相似 exemplars(用 embedding similarity)
  ↓
[CoT 推理]  N=1 推理链(temperature=0 或 0.3)
  ↓
[Self-Consistency]  N=5-8 采样推理链,majority vote → 聚合答案
  ↓
[可选验证]  数值题走符号计算器核对;非数值题走一致性检查
  ↓
[答案 + 推理链]  返回给用户(推理链可选择是否显示)

工具链推荐(2026): - 推理引擎:vLLM / SGLang(自托管 GPU 推理,支持 CoT 流式) - Exemplars 检索:ChromaDB / FAISS(embedding similarity 检索) - API 封装:LangChain LCEL(CoT + Tool calling),但生产级需定制(langchain 灵活性有余而可控性不足) - 评测:同时追踪 answer accuracy + reasoning step validity,不要只追答案对错

核查清单(生产上线前必读)

  • [ ] 模型规模评估:在目标模型上跑 100 道代表性题目,对比 CoT on/off 的答案准确率,提升 <2% 则不值得额外延迟;
  • [ ] Exemplars 质量审计:人工审查 exemplars 是否覆盖任务典型错误类型,每季度刷新一次;
  • [ ] 成本测算:用 N=5 Self-Consistency 估算日均 token 消耗,对比准确率提升的业务价值;
  • [ ] 流式策略:推理链是否暴露给用户?设计好前端展示策略;
  • [ ] 超时保护max_tokens 上限 + 分阶段 timeout,防止长推理链卡死;
  • [ ] Fluent nonsense 检测:数值类任务是否已接入符号验证器?非数值类是否有 consistency check?
  • [ ] 评测指标:答案准确率 + 推理链有效率(人工抽检)双轨追踪,不要只追答案;
  • [ ] 冷启动:新任务先用 50 道题做 CoT vs Standard A/B,确认有效后再全量上线。

CoT 后续演进(2022→2026)

Wei et al. 2022(CoT,few-shot,emergent)
    ↓
Self-Consistency 2022(sample-and-vote,+17pts GSM8K)
    ↓
Zero-shot CoT 2023("Let's think step by step")
    ↓
ReAct 2022 / Toolformer 2023(CoT + 工具调用)
    ↓
Tree of Thoughts 2023(线性链 → 树搜索)
    ↓
DSPy 2023-2024(自动化 prompt 编译,CoT 作为子模块)
    ↓
2025-2026(CoT + SC + 工具调用三合一 + 自动化 exemplars 生成)

实际工程选型(2026):新项目直接用 DSPy 框架编排 CoT + Tool calling;历史项目可在 DSPy 框架中导入原 CoT prompting 逻辑做渐进迁移。