为什么 GPT-3 解不了小学数学题,加一句"让我们一步步想"就突然开窍了?——CoT Prompting 把"推理"从训练阶段搬到 prompt 阶段
- 关联论文:2201.11903
你有没有遇到过这种时刻 🤔:
你问 GPT-3(2020)一道小学数学题—— "小明有 12 个苹果,给小红一半后又买了 3 个,现在有几个?" 它直接答:"12"(错了) 你在 prompt 里加一句"让我们一步步想"—— 它忽然写出: "原来 12 个,给一半剩 6 个,又买 3 个 = 9 个" ✅
这是 2022 年 Google 的一篇论文里的实验——arXiv 2201.11903,Chain-of-Thought(CoT)Prompting。
核心结论极其反直觉:
只要在 few-shot prompt 里给模型展示"一步步推理"的样例,就能在不更新任何参数的情况下,让 540B PaLM 在 GSM8K 数学题上拿到 56.9% 准确率——超过经过 fine-tuned 的 GPT-3 + verifier(约 35%)。
这件事一旦成立,"prompt 工程"就从经验技巧升级为科学方法—— 后续所有 ChatGPT、Claude、Gemini 的"会思考"展示,都站在 CoT 的肩膀上。
为什么这事值得每个用过 ChatGPT 的人回头看一眼
今天你觉得"AI 能做推理"是理所当然的。但 2022 年初,这件事远不是理所当然:
- GPT-3 在算术题上正确率只有 15-20%——175B 参数的大模型,GSM8K 小学数学题考不过小学生
- 当时的主流解法是 fine-tune + verifier——在大量推理数据上做监督微调,再训一个 verifier 重排序——数据标注昂贵,新任务一来又得重训
- prompt engineering 完全是经验技巧——prompt 写得好 vs 写得差,效果天差地别,但没有任何科学方法
- "模型规模即能力"是默认假设——更大 = 更强,CoT 第一次用实验打破了这个假设:不动参数也能让能力跳一档
CoT 想回答一个朴素的问题:
"能否完全不动模型参数,只在 prompt 里给几个'思考过程'的示例,就让模型学会'一步步想'?"
答案是:能,而且效果惊人——540B PaLM 在 GSM8K 上从 17% 跳到 56.9%,涨了 40 个点。
一句话核心
Chain-of-Thought(CoT)Prompting 证明:只要在 few-shot prompt 里给大模型展示"一步步推理"的样例,就能在不更新任何参数的情况下,让 540B PaLM 在 GSM8K 数学题上达到 56.9% 准确率,超过 fine-tuned GPT-3 + verifier——这把"推理"从"训练阶段"前移到"推理阶段",开启了 prompting science 的研究范式。
三个洞察
洞察 1:CoT 是一个「涌现」现象——模型不够大就完全不起作用
CoT 最反直觉的地方:它只在足够大的模型上才有效。
论文同时跑了三个模型家族:LaMDA 137B、GPT-3 175B、PaLM 540B。关键发现:
| 模型规模 | Standard Few-shot | CoT Few-shot | 提升 |
|---|---|---|---|
| LaMDA 8B | ~5% | ~3% | 负向 ❌ |
| LaMDA 137B | ~12% | ~36% | +24 pts |
| GPT-3 175B | ~15% | ~46% | +31 pts |
| PaLM 540B | ~17% | 56.9% | +40 pts ✅ |
这是"涌现能力"(emergent abilities)的第一个清晰实证—— 小模型上 CoT 经常反向掉分,因为它们不会"认真"做中间推理,反而被噪声带偏; 大模型能"学会"链式格式并内化它,把推理当成新的能力涌现出来。
⚠️ 生产含义:CoT 不是"加一行 prompt 就有用"——必须先看模型规模。 - < 7B:大概率反向掉分,禁用 CoT - 7B-30B:有限提升,需精选 exemplars,A/B test 决定是否启用 - 30B-70B:稳定提升,推荐开启 - > 70B:最佳效果,必开 CoT
经验值:Qwen-2.5-72B-Instruct 开 CoT 后 GSM8K 从 ~58% → ~72%,加 Self-Consistency N=8 可到 ~78%。
洞察 2:CoT 的伪代码极其简单,但工程含义极深
CoT 的 exemplar 长这样:
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 的格式是「原问题 → 思考步骤 → 答案」,每行一个子步骤。
伪代码:
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 的机制可拆成三层:
- 将推理过程显式化——在 exemplars 里不是直接给"答案 = X",而是给"步骤 1 → 步骤 2 → ... → 答案"的展开链
- 分解多步问题——把复杂问题拆成多个子问题,每个子问题由模型自动生成中间答案
- 扩展推理计算量——模型在生成最终答案前先生成 K 个 token 的中间推理,算力预算被推前到推理阶段,而非训练阶段
这就是为什么 CoT 比 fine-tune 便宜得多——不用训任何参数,只在 prompt 里加几行 exemplar。
洞察 3:CoT + Self-Consistency 是真正"性价比组合"
论文里还做了一个实验:同一道题采样 40 个独立 CoT 推理链,然后 majority vote 答案。
PaLM 540B + CoT(单条推理链):GSM8K = 56.9%
PaLM 540B + CoT + Self-Consistency(N=40):GSM8K = 74.4% ← 涨 17 个点!
为什么 Self-Consistency 这么管用?——CoT 给出的推理链多样性比"对答案"本身更有价值—— 同一个问题走多条推理路径,再聚合答案,比单条最优推理还准。
经验生产配置: - N = 5-8:性价比较好,准确率提升 5-10 个点 - N = 20-40:论文实验级,提升最大但成本也最大 - 温度 temperature = 0.7-0.9:SC 需要 sampling,不能 greedy
成本测算(以 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——差距 10 倍。生产决策需权衡准确率提升价值 vs 成本增加。
它给后续 5 年铺了什么路
读 CoT 不能只看"它做了什么",要看它打开了什么门:
1. Prompting Science 成为独立研究范式
CoT 之前,"prompt 写得好"是经验;CoT 之后,prompting 是可系统化研究的科学——后续 Self-Consistency、Zero-shot CoT、ReAct、Tree of Thoughts、Self-Refine、Reflexion、DSPy 全部建立在 CoT 提供的"先把推理过程显式化"这个前提上。
2. "Emergent Abilities"叙事的核心实证
CoT 是 emergent abilities 的教科书案例——Wei 等人后续的"Emergent Abilities of Large Language Models"(arXiv 2206.07682)正是基于此。2023 年 Schaeffer 等人提出"emergent is artifact of discontinuous metrics"——这个争议本身也是 CoT 引发的学术讨论。
3. "推理"从训练阶段搬到推理阶段
CoT 之前,改进模型推理能力 = 重新训练;CoT 之后,改进模型推理能力 = 改 prompt 或加工具——这把 LLM 应用的迭代速度从"周/月"压到"小时/天",直接催生了 LangChain、DSPy 等"prompt 编排框架"。
4. Self-Consistency 成为"推理 + 验证"范式起点
CoT + Self-Consistency 是"模型自己多次验证自己"的雏形——后续 ToT(树搜索)、Self-Refine(自检)、Reflexion(反思)、Verifier-based RL(用 verifier 给奖励)全部建立在"先给出推理路径,再聚合/校验"这个范式上。
5. 与 InstructGPT 形成 ChatGPT 出现的"双引擎"
CoT 与 InstructGPT(arXiv 2203.02155)几乎是同一时间出现的两篇 paper: - CoT 解决:模型能不能"思维" - InstructGPT 解决:模型是否"听话"
两者的协同效应在 2023 年的 ChatGPT 中得到完整展示——RLHF 对齐的模型配合 CoT prompting,即可达到接近大模型加 CoT 的品质。理解这两篇 paper 的关系,是理解 ChatGPT 出现前夜的"双引擎"。
工程落地清单(如果你今天做 LLM 推理 prompting,这是必经路径)
✅ Step 1:模型规模评估(>30B 推荐开 CoT,<30B 谨慎)
✅ Step 2:Exemplars 库建设(覆盖典型错误类型 + 边界 case)
✅ Step 3:CoT 单链推理(temperature=0 或 0.3)
✅ Step 4:Self-Consistency 聚合(N=5-8, temperature=0.7-0.9)
✅ Step 5:符号验证(数值题接 sympy / calculator, 非数值题一致性检查)
✅ Step 6:流式输出策略(后台完整推理,前端选择性显示)
✅ Step 7:超时保护(max_tokens=500-800,分阶段 timeout)
✅ Step 8:评测双轨(答案准确率 + 推理链有效率,人工抽检)
⚠️ 6 个常见落地坑:
- 🔴 小模型开 CoT 反向掉分——7B 模型加 CoT 经常比不加还差,必须先做 A/B test
- 🟠 推理成本 5-10 倍放大——CoT 让 token 量从 ~200 涨到 ~800,SC 再涨 5 倍,日均成本可能从 $30 涨到 $500
- 🟠 Exemplars 质量决定上限——garbage in, garbage out,投资 1-2 天建领域 exemplars 库比换模型更划算
- 🟡 Fluent Nonsense——推理链"看起来合理"但答案错,必须接符号验证或一致性检查
- 🟡 延迟方差极大——简单题 50 token,难题 500+ token,需要 max_tokens 上限 + 流式截断
- 🟡 推理链暴露 prompt 策略——流式输出时用户能看到 reasoning,可能暴露 exemplars 或敏感信息
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),但生产级需定制 - 评测:同时追踪 answer accuracy + reasoning step validity,不要只追答案对错
关键实验数据(按任务分)
| 任务 | 模型 | 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 |
数字精度说明:原论文 Table 1-4 给出具体数值,以上数值是按该表还原的近似值;个别 cell 原文标注为一次性结果,不带误差棒。
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 逻辑做渐进迁移。
总结
CoT 的核心贡献不在某个新算法——而在三件事:
- 证明了"不动参数也能让能力跳一档"——PaLM 540B 上 CoT 比 fine-tuned GPT-3 + verifier 还准,这是 prompting 路线的奠基性实证
- 给出了「在 prompt 里写推理步骤」这一极简范式——所有 ReAct / ToT / Self-Refine / Reflexion / DSPy 都建立在 CoT 的"先显式化推理过程"前提上
- 把"推理"从训练阶段搬到推理阶段——这把 LLM 应用迭代速度从"周/月"压到"小时/天",直接催生了 LangChain / DSPy 等 prompt 编排框架
读懂 CoT,就读懂了 ChatGPT 为什么"会思考"、为什么加一句"让我们一步步想"就能让模型开窍、为什么 prompt engineering 是科学而不是玄学、为什么 Self-Consistency 能再涨 17 个点、为什么 CoT 是 emergent abilities 的教科书案例。
这不是一篇过时的"prompt 技巧"——这是所有现代 LLM 推理应用的工程起点。
三个标题变体
- 为什么 GPT-3 解不了小学数学题,加一句"让我们一步步想"就突然开窍了?——CoT Prompting 把"推理"从训练阶段搬到 prompt 阶段
- 不动一行参数,540B 模型在 GSM8K 从 17% 跳到 57%——CoT 是 prompting science 的奠基工作
- "Let's think step by step" 这一句话,怎么就值 20k 被引?——CoT Prompting 把 LLM 推理从玄学变成科学
小红书风格卡片文案(可直接发布)
🧠 为什么 GPT-3 解不了小学数学题,加一句"让我们一步步想"就突然开窍了? 🧠
你有没有遇到过这种时刻 🤔:
你问 GPT-3(2020)一道小学数学题 — "小明有 12 个苹果,给小红一半后又买了 3 个,现在有几个?" 它直接答:"12"(错了) ❌ 你在 prompt 里加一句"让我们一步步想" — 它忽然写出: "原来 12 个,给一半剩 6 个,又买 3 个 = 9 个" ✅
这是 2022 年 Google 的一篇论文里的实验 — arXiv 2201.11903,Chain-of-Thought(CoT)Prompting 🎯
核心结论极其反直觉:
只要在 few-shot prompt 里给模型展示"一步步推理"的样例, 就能在不更新任何参数的情况下, 让 540B PaLM 在 GSM8K 数学题上拿到 56.9% 准确率 — 超过经过 fine-tuned 的 GPT-3 + verifier(约 35%) 🚀
这件事一旦成立,"prompt 工程"就从经验技巧升级为科学方法 — 后续所有 ChatGPT、Claude、Gemini 的"会思考"展示,都站在 CoT 的肩膀上 🌍
🔥 核心数字:
- 20,789+ 被引 —— LLM reasoning prompting 方向历史最高 🏆
- GSM8K:17% → 56.9% —— PaLM 540B 上 CoT 涨 40 个点 📈
- 超过 fine-tuned GPT-3 + verifier(约 35%) —— 不动一行参数反超 💥
- CoT + Self-Consistency(N=40):74.4% —— 同一道题采样 40 条推理链 majority vote,再涨 17 个点 🎲
- Last Letter 任务:5% → 96% —— 拼名字首字母任务涨 91 个点 📚
📊 CoT 是「涌现」现象 —— 模型不够大就完全不起作用:
| 模型规模 | Standard Few-shot | CoT Few-shot | 提升 |
|---|---|---|---|
| LaMDA 8B | ~5% | ~3% | 负向 ❌ |
| LaMDA 137B | ~12% | ~36% | +24 pts |
| GPT-3 175B | ~15% | ~46% | +31 pts |
| PaLM 540B | ~17% | 56.9% | +40 pts ✅ |
🪜 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
Exemplar 长这样:
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。
💥 CoT 的机制可拆成三层:
1️⃣ 将推理过程显式化 —— 在 exemplars 里不是直接给"答案 = X",而是给"步骤 1 → 步骤 2 → ... → 答案"的展开链 📝 2️⃣ 分解多步问题 —— 把复杂问题拆成多个子问题,每个子问题由模型自动生成中间答案 🔀 3️⃣ 扩展推理计算量 —— 模型在生成最终答案前先生成 K 个 token 的中间推理,算力预算被推前到推理阶段 ⚡
🛡️ 为什么 Self-Consistency 这么管用? —
CoT 给出的推理链多样性比"对答案"本身更有价值 — 同一个问题走多条推理路径,再聚合答案,比单条最优推理还准 🎯
⚠️ 必须看清的边界:
- 🔴 小模型开 CoT 反向掉分 —— 7B 模型加 CoT 经常比不加还差,必须先做 A/B test 📉
- 🟠 推理成本 5-10 倍放大 —— CoT 让 token 量从 ~200 涨到 ~800,SC 再涨 5 倍,日均成本从 $30 涨到 $500 💸
- 🟠 Exemplars 质量决定上限 —— garbage in, garbage out,投资 1-2 天建领域 exemplars 库比换模型更划算 📚
- 🟡 Fluent Nonsense —— 推理链"看起来合理"但答案错,必须接符号验证或一致性检查 🎭
- 🟡 延迟方差极大 —— 简单题 50 token,难题 500+ token,需要 max_tokens 上限 + 流式截断 ⏱️
- 🟡 推理链暴露 prompt 策略 —— 流式输出时用户能看到 reasoning,可能暴露 exemplars 或敏感信息 🔓
🛠️ 今天做 CoT 的工程切片(2026 最佳实践架构):
用户问题
↓
[规模评估] 模型 ≥ 30B? → 否 → 标准 prompting → 跳转答案
↓ 是
[Exemplars 检索] 在领域库里找 Top-3 最相似 exemplars(embedding similarity)
↓
[CoT 推理] N=1 推理链(temperature=0 或 0.3)
↓
[Self-Consistency] N=5-8 采样推理链,majority vote → 聚合答案
↓
[可选验证] 数值题走符号计算器核对;非数值题走一致性检查
↓
[答案 + 推理链] 返回给用户(推理链可选择是否显示)
🌱 它给后续 5 年铺了什么路:
1️⃣ Prompting Science 成为独立研究范式 —— Self-Consistency / Zero-shot CoT / ReAct / ToT / Self-Refine / Reflexion / DSPy 全部建立在 CoT 前提上 📜 2️⃣ Emergent Abilities 叙事的核心实证 —— "涌现能力"的教科书案例,Wei 等人后续大论文正是基于此 🌟 3️⃣ "推理"从训练阶段搬到推理阶段 —— 把 LLM 应用迭代速度从"周/月"压到"小时/天",催生 LangChain / DSPy 🚀 4️⃣ Self-Consistency 成为"推理 + 验证"范式起点 —— ToT / Self-Refine / Reflexion / Verifier-based RL 全部建立在"先给推理路径,再聚合/校验"上 🎲 5️⃣ 与 InstructGPT 形成 ChatGPT"双引擎" —— CoT 解决"模型能不能思维",InstructGPT 解决"模型是否听话",两者协同催生 ChatGPT 🤖
📎 论文 ID:2201.11903
💬 评论区聊聊:你团队用过 CoT prompting 吗?模型规模是多大?踩过"小模型开 CoT 反向掉分"的坑吗?最后是 N=5 还是 N=20?🤔