你学过 few-shot:给几个 Q→A 示范,模型照做。但对需要拐几道弯的题(算术应用题、符号推理、多跳常识),哪怕给了示范、哪怕模型很大,直接输出答案的正确率依然很低。
模型在一次前向推理里、要一口气从问题跳到答案——相当于让你心算一道多步应用题、还不许打草稿、立刻报数。 人都会错,何况它每一步的「算力」是固定的。 Wei 等人的赌注:问题可能不是模型不会推理,而是我们没给它「把推理写出来」的空间。给它草稿纸试试?
| 标准 prompting | Chain-of-Thought prompting | |
|---|---|---|
| 示范长什么样 | 问题 → 直接答案 | 问题 → 一步步推理 → 答案 |
| 模型学到 | 「看到问题就吐答案」 | 「看到问题先写推理再吐答案」 |
| 多步题表现 | 常错(硬算一步到位) | 大幅提升(拆步、有草稿) |
和 RLHF 对照——RLHF 是训练(改权重、永久);CoT 是prompt 技巧(不改权重、当场生效)。 它不给模型新增推理能力,而是把模型本就潜藏的推理能力「引出来」——靠的是给它腾出「把中间步骤写下来」的空间。 所以零成本、即插即用:你在 prompt 里要一句「请一步步推理」,吃的就是这口红利。
为什么「写出来」就管用?三层,从浅到深——第三层是这门课最该带走的硬通货。
| 层 | 说明 |
|---|---|
| ① 拆解 | 把一道要拐五道弯的难题,拆成五道各拐一道弯的小题——每道都在模型「一步能力」之内。 |
| ② 草稿纸(回喂上下文) | 每写出一个中间结果,它都变成后续生成的输入(自回归)。模型读着自己的草稿往下推,而不是把一切压在脑子里。 |
| ③ 拿 token 换算力(test-time compute) | 一次前向推理的计算深度是固定的——硬题在一步里算不完。每多生成一个推理 token,就多一次前向、多一截「思考算力」。CoT 的本质,是用「输出更多 token」换「更多思考」。 |
和 in-context learning 一样,CoT 只对足够大的模型有用(~100B 级才明显)。小模型让它「一步步想」,会写出看着通顺、逻辑却错乱的推理链,帮不上忙甚至更差。 推理是随规模涌现的,CoT 只是把这份涌现的能力「解锁」出来。
一道要拐几道弯的题。点不同方式,看「直接答」怎么翻车、「写出推理」怎么救回来(示意 2022 年 GPT-3 级模型上的典型现象)。
看出门道了吗:「直接答」逼模型一步到位,错在没地方算;「写出来」让它一步一锚,每步都在能力之内。而且——只加一句「一步步想」就能触发,连示范都不用给(下一节)。
| 维度 | 标准 prompting | Chain-of-Thought |
|---|---|---|
| 给模型的 | 问题(+ Q→A 示范) | 问题 + Q→推理→A 示范(或一句触发) |
| 输出 | 直接答案 | 推理过程 + 答案 |
| 多步任务准确率 | 低 | 大幅提升 |
| 代价 | 快、省 token | 慢、多花 token(推理也占输出) |
| 改了什么 | — | 只改 prompt(不训练,能力是涌现的) |
| 招 | 做什么 | 关系 |
|---|---|---|
| zero-shot CoT | 不给示范,只在问题后加一句 「Let's think step by step」 | 惊人地有效——一句话就触发推理(Kojima et al.) |
| self-consistency(自洽) | 采样多条不同推理链,对最终答案投票取多数 | 多想几遍取共识,再涨一截准确率 |
| 推理模型(o1 / R1) | 用 RL 把「生成长 CoT」直接训进模型 | 把 CoT 从 prompt 技巧升级成模型的内建本能 |
🔮 这条线把「test-time compute(推理时算力)」推成了新的 scaling 维度:Scaling Laws 是「训练时」砸算力,CoT/推理模型是「推理时」多花算力(多想)换准确率。o1、DeepSeek-R1 的「思考越久越准」,根就在这一课。它和 RLHF 合流:用 RL 奖励「想得对的长 CoT」——对齐与推理在前沿汇成一条河。
| 你工作里的东西 | 其实就是这篇论文的什么 |
|---|---|
| 你写 prompt 时加「请一步步分析 / 先说理由再给结论」 | 就是 CoT——最便宜、最高杠杆的提质招,对任何多步任务都该默认开 |
| 你做 LLM 评分/质检(LLM-as-judge)让它直接出分 | 反了!应让它先写评判理由、再给分——CoT 同款。直接出分=逼它心算,先推理再裁决质量更稳(呼应上一课 RM 设计) |
| 你的 agent 先「想计划」再行动 | 就是 CoT 的 agent 版(下一课 ReAct 会把「想」和「做」交错)——先推理再动手 |
| 你做实时语音 agent纠结延迟 | 正面取舍:CoT 提准确率,但多出的推理 token = 多出的延迟。实时语音场景要么用隐式/简短推理,要么把「想」放到不卡用户的环节 |
| 「为什么有时模型加了思考反而更啰嗦、还可能更错」 | ① 小模型/简单题用 CoT 无益甚至有害;② 推理链本身可能错(写得通顺≠逻辑对)——要 self-consistency 或校验兜底 |
把这一课接到你真实工作上的几个关键问。点开看答。
不一定。CoT 文本是「有用的草稿」,但未必忠实反映模型内部真实的计算。研究发现模型有时先「想」出答案、再编一段看似合理的推理来圆(post-hoc rationalization),推理链甚至可能和最终答案矛盾、或受无关提示左右却不在链里承认。
对你的含义:别把 CoT 当「可信的解释」直接展示给用户当依据,它是提升准确率的手段、不是审计模型的窗口。要可信,得靠 self-consistency、外部校验、或可执行的步骤(如让它写代码跑出结果),而不是「它说它这么想的」。
不是。三种情况别加或要权衡:① 简单/单步任务(分类、抽取、查表)——CoT 没收益,白白多花 token、增延迟,有时还把简单题想复杂了;② 延迟敏感场景(如实时语音交互)——推理 token 直接变延迟,得掂量;③ 小模型——涌现门槛没到,无益甚至有害。
判据:任务要不要「拐弯」?需要多步推理/计算/规划 → 上 CoT;一步能答的 → 直接答更省更快。成本意识:CoT 是用 token(钱+延迟)买准确率,要看这道题值不值这笔买卖。
同根,不同形态。CoT 是prompt 技巧(你手动要求它一步步想,不改模型);推理模型(o1、DeepSeek-R1)是用 RL 把「生成长 CoT 并自我检查」训进了权重——它默认就会大段思考,还学会回溯、验算。等于把这节课的手动招式,升级成了模型的内建本能。
实操:用推理模型时,通常不必再手写「一步步想」(它自己会,硬塞反而可能干扰);用普通模型做多步任务时,手动 CoT 仍是高杠杆招。选型新维度:难推理任务可选推理模型(准但慢且贵),简单任务用普通模型(快省)——又一个「准确率 vs 成本/延迟」的取舍。
不是二选一,但边际注意力明显转向 test-time compute。2020-2023 训练时 scaling 当家;2024 前后预训练边际递减(数据快用光、成本天文、收益变薄);2024 底起前沿急转向「推理时多花算力(长推理链/搜索/自我验证)→ 更准」,这条曲线新、陡、还同样平滑可外推(o1、DeepSeek-R1)。
关键 nuance:相乘不相争。能力天花板仍来自预训练(底子弱想再久也推不对),test-time compute 把底子榨出来;当下真正烧钱出差异的是用 RL 教模型高效花 test-time compute(reasoning RL)——一种新的训练时投入、回报在推理能力上。
做产品最该抓:成本结构变了——训练是一次性(capex),test-time compute 是每查询都付(opex)。但给了新旋钮:按 query 难度动态买准确率(简单短想、难题长想)。
本质是「对自己的多次采样做集成投票」。单条 CoT 是一条随机路径,中途一错就锁死。self-consistency 用较高温度采 N 条不同链、对最终答案投票取多数。洞察:通往正确的路径殊途同归,而错误各式各样互不一致——正确答案被多路汇聚、错误四散,取众数更可能对(=重复测量消噪,前提是每条对的概率>随机且错误多样)。
代价三笔:① N 倍算力/延迟(典型 5-40 条);② 只适用有离散答案可投票的任务(开放式生成不行);③ 治不了系统性错误(一致地同样错,投票只会更确信)。收益随 N 递减,大头在前 5-10 条。
可直接抄的模板:
你是严格的评审。务必"先逐条分析、最后打分",不许先给分再补理由。
# 评分维度(每维给锚点,别用空泛的1-10)
- 准确性(0-3): 0=有事实错误; 1=多处可疑; 2=基本正确; 3=完全正确且有依据
- 完整性(0-3): 0=答非所问; 1=漏关键点; 2=覆盖主要; 3=全面无遗漏
# 待评内容
<question>…</question> <answer>…</answer>
# 输出(严格按序)
## 1. 逐条分析
- 准确性: <先主动找错/可疑,再判断>…
## 2. 主要缺陷 <列1-3个;没有写"无">
## 3. 评分(JSON,放最后) {"准确性":x,"完整性":y,"总分":t}
每个选择的理由:① 理由在分数前(否则理由是 post-hoc 圆场);② 维度拆开+0-3 锚点(压绝对分漂移);③ 先逼它找缺陷(对抗式,防谄媚刷分);④ 分数放最后、JSON 包(好解析、保证分数从分析算出);⑤ 显式"不因长短加减分"(堵长度偏好);⑥ 温度 0-0.3 求稳,要更准上 self-consistency;⑦ 别让被评答案看到 rubric。若分数仍不稳 → 从「打绝对分」升级成「两两排序哪个更好」(最稳)。
读原典:Wei et al. — Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(2022)。
延伸:Kojima et al. — Large Language Models are Zero-Shot Reasoners(「Let's think step by step」);Wang et al. — Self-Consistency。
阶段四推进:RLHF(对齐)→ CoT(推理)。下一篇 P17 DPO:不训奖励模型、不跑 RL,直接用偏好数据对齐——更对得上「打分→改 prompt」自动调优环的直觉。
参考:
Wei et al., Chain-of-Thought Prompting Elicits Reasoning in Large Language Models, 2022.