跳到主要内容

一句话就多考 25 分 — 思维链提示为什么有效,什么时候反而更差

这一章讲什么: 这本书第一次真的把分数提上去,而且用的手段便宜到荒唐 —— 在题目后面加一句英文。 这一章说清这句话属于哪条路、这条路一共有几种做法、 为什么加一句话就管用、以及它什么时候会帮倒忙。账单也一起摆出来。

它在全书链条里的位置: 「阶段三」的第一站 —— 第 02 章那三条路里 不动权重的那一条。第 06 到 09 章都在这条路上走,这一章是其中最便宜的一招。

需要的基础: 第 05 章那把尺子(它怎么判分、判错在哪),以及起点 15.2% 这个数。

顶层全景:一句话,一道题,一张成绩单

这一章的主走查是书自己挑的一道题,它会一直用到第 13 章:

Half the value of $3x-9$ is $x+37$. What is the value of x? (3x−9 的一半等于 x+37,求 x。)正确答案是 83。

① 按第 05 章那套原样问它(每一步都挑分最高的词)
▼ 它答 \boxed{20} ← **错了**
② 在提示词末尾加一句:"\n\nExplain step by step."
▼ 它写出一长段分步解法,最后答 \boxed{83} ← **对了**
③ 把这个改动套到全部 500 道题上
▼ 准确率 15.2% → 40.6%
▼ 耗时 10.1 分钟 → 84.5 分钟

图说:整章只动了一处 —— 提示词末尾多了四个英文词。
模型里那 6 亿个数一个没变,尺子也没换。

1. 先认清这条路:推理时扩展,以及书为什么只挑三种做法

第 02 章说过有三条路,分界线是动不动权重。这一章开始走「不动」的那一条。

书把「花更多算力」分成了两处花法1:

花在哪动权重吗什么时候花
训练的时候模型还没交付,多训一阵、用更多数据
回答的时候不动你已经在用它了,临时多花一点

后一种就是这一章这条路,它的名字叫推理时扩展 (英文 inference-time scaling,也常写作 test-time scaling —— 同一件事的两个名字,出门都会撞见)1

注意这里的「推理时」和这本书说的「推理」不是一个意思。 它指的是你提问、模型作答的那一刻(第 03 章那个一词二义的辨析,就是为这里准备的)。 至于「算力」,书自己就地解释了:训练或者运行一个模型所需要的计算资源1

书特意提醒不要把两处花法对立起来2:真实的模型是两边都花 —— 既下重本训练,又在回答时多花算力。这一章只是把后者单独拿出来研究。

书从十几种做法里挑了三种,理由写得很实在

这段值得记,因为它说明了这本书的取材标准3:

作者说他在几千次实验里评过十几种推理时扩展的做法。 最后挑这三种,是因为三条同时成立: ① 在这个模型上确实明显涨分;② 它们代表了这条路的主要范式; ③ 简单到能从零手写出来,不必引进一大堆额外机器

三种做法覆盖了两种模式:

#做法属于哪种模式在我们哪一章
1让它把过程写出来把一次回答写长本章
2让它答好几遍再投票生成多个回答第 08 章
3让它反复改自己的答案把一次回答写长(反复来)第 09 章

书还给了一处业界背书:让模型同时答好几遍、几路一起跑(这种「几路一起跑」的做法就叫并行), 在生产系统里也广泛使用,书举的例子是 Claude 43

至于图上那两条曲线,书老实交代了来历:是照着 OpenAI 介绍它第一个推理模型的那篇文章画的2 —— 不是作者自己测出来的

2. 走查第 ①、② 步:一句话,把答 20 变成答 83

先看它按第 05 章那套原样答题的结果。

题目是:3x−9 的一半等于 x+37,求 x。它答 \boxed{20} —— 错了,正确答案是 834

改动只有一处:在提示词的末尾接上一句话5:

原来的提示词 + "\n\nExplain step by step."
↑ 就是这四个英文词(意思是「请一步步解释」)

再问一遍,它写出一长段分步解法,最后给出 \boxed{83} —— 对了6

这就是「思维链提示」。 名字里的「思维链」第 01 章第 3 节已经定义过 (答出最终答案之前先把中间步骤写出来);这一节讲的是它怎么变成一个可以直接用的手法 —— 你不需要改任何代码、不需要重训模型,只需要在提示词后面多打一句话。

这句话该怎么写,书给了出处也给了保留

最早那篇提出这个做法的论文用的是 "Let's think step by step."7作者换成了 "Explain step by step.",理由很朴素:在他这一章的实验里效果更好。

他同时把话说在前头:换个说法效果可能不一样,取决于模型和任务7——所以别把这四个词当成咒语,它是一个要在你自己的尺子上试出来的东西。

3. 为什么加一句话就管用:书给了两条机制

这一节回答红线上的那个问题:它凭什么有效?

书给的两条机制8:

第一条:把步骤写出来,等于给了它自我纠正的机会。

回到第 03 章那个循环:它是拿自己刚写下的字当输入,再算下一块。 所以中间步骤一旦被写出来,它们就成了后续每一步的输入——

不写步骤:题面 ─────────────────────────► 直接算「答案是几」
这一步要一口气跨过所有推理

写步骤: 题面 ─► "先把两边乘以 2" ─► "3x−9 = 2x+74" ─► "x−9 = 74" ─► "x = 83"
↑ 每一步都变成了下一步的输入,
算错一小步之后,还有机会在下一步被后文纠回来

图说:这不是比喻。中间步骤真的进了输入,这就是它「有机会自我纠正」的全部含义。

第二条:分步解法本来就贴合它训练时见过的写法。

书说得很具体:大型的数学和逻辑数据集里,本来就写满了详细解法; 所以要求它写一条思维链,等于把它对齐到它已经学会的那种写法上8

——注意这两条机制都不涉及「新知识」。书自己下了这一节最要紧的一句总结9:

思维链不给模型任何新知识,它只改变模型使用已有知识的方式。

这句话请记住,它是这一整条路(不动权重)的天花板所在: 你能重新组织它已有的东西,但你变不出它没有的东西。

4. 它什么时候反而更差:书自己泼的冷水

书没有把这一招吹成万能,它当场列了两种失效场合。

第一种:简单题上可能反而更差。

书的说法是:模型可能生成错误的解释,把自己带偏 —— 这个现象就是第 02 章提过的想太多 (overthinking)10

这一条和第 3 节那条机制是同一枚硬币的两面: 中间步骤会进入后续的输入 —— 写对了能自我纠正,写错了也会把错误一路带下去。

第二种:对已经训好的推理模型,它既不需要也没收益。

书说得很干脆:那种模型本来就会在回答里写解释,所以这类提示对它不需要、也没有好处11而我们这个 base 模型不一定会写,所以这一招在它身上效果明显。

书还有一句总的保留12:

思维链不保证正确。 它照样会产出错误的推理;对非常简单的题, 它甚至会引进不必要的步骤,从而带来更多错误。 它能在很多推理任务上提高准确率,但不是普遍有益的。

5. 账单:分数涨了 25 个点,时间涨了 8 倍

走查第 ③ 步:把这个改动套到全部 500 道题上。

准确率同一批题跑完要多久
基线(第 05 章那套,贪心解码)15.2%10.1 分钟
加上「Explain step by step.」40.6%84.5 分钟

准确率涨了 25.4 个点(翻了 1.7 倍),耗时涨了 8.4 倍13

这笔账为什么会是这样,第 03 章第 6 节那个乘法已经算过了:

总花费 ≈ (每道题跑模型几次) × (每次生成多少个小块) × (每块要把整台机器跑一遍)
↑ 没变,还是 1 次 ↑ **这里涨了** —— 回答变长了

这一章只动了三个因子里的一个,时间就涨了八倍多。 记住这个比例 —— 第 08 章会动第一个因子,那一次时间涨 85 倍。

书自己给这条路下的定性:这就是推理时扩展的权衡 —— 拿更多算力换更高准确率。 而这一章是这笔交易里最划算的一次:后面每一招的性价比都不如它。 (整条路的完整账本,第 08 章第 4 节那张十二行的表。)

作者的判断与证据

说法性质
那道题从答 20 变成答 83有证据,书把两次输出都印了出来
15.2% → 40.6%,10.1 → 84.5 分钟有证据,来自书的表 4.1 前三行(在 DGX Spark 上跑的)
「评过十几种技术、几千次实验」作者的自述,没有列出实验清单 —— 这是要读者信任他的一处
挑这三种的三条理由作者的取材标准,不是学界共识
思维链有效的两条机制作者给的解释,书没有做对照实验去分离这两条
「不给新知识,只改变使用方式」作者的判断,也是这一章最值得带走的一句
简单题上会因为「想太多」变差作者提到的现象,这一章没有给出实验数据
已训好的推理模型不受益作者的说法,他提到上一章的练习里用过那个模型,但这里没有列数
图 4.2 那两条曲线不是作者测的 —— 书明说是照着 OpenAI 介绍 o1 的文章画的

判断(我们的,不是书里的): 这一章的性价比是全书之最, 而它之所以有效,恰恰是因为这本书用的是一个没调教过的 base 模型。 第 02 章第 4 节说过,用 base 模型是为了归因干净;这里能看到它的另一面代价: 同一招放在一个已经调教好的模型上,收益会小得多甚至为负(书自己也这么说)。 所以「加一句话涨 25 个点」这个数不能直接搬到你手上的模型。 如果错,会错在: 书没有在同一台机器上把「官方推理版 + 思维链提示」这一行跑出来, 所以「收益小得多甚至为负」这半句我们只有作者的说法,没有他的数。

边界与局限

  1. 这一章只测了一个模型、一个题库、一种措辞。 换任何一样,25 个点这个数都可能不成立。
  2. 「想太多」这个失效模式没有数据。 书提了两次,但在这一章一次都没量。
  3. 那两条机制没有被分离验证。 究竟是「自我纠正」起的作用多,还是「贴合训练写法」起的作用多,书没答。
  4. 提示词的措辞极其敏感,而这一章没有再展开。 第 05 章第 8 节量过:换一个词能动 20 个点。这一章那句「Explain step by step.」 同样是试出来的,不是推出来的。
  5. 加长回答的代价只报了时间,没报别的。 更长的回答还意味着更容易撞上长度上限、 更容易在中途跑偏 —— 这些书在这一章没有量。

可带走的

  1. 不动权重也能大幅提分,这条路叫推理时扩展(也叫 test-time scaling)—— 它花的是回答那一刻的算力,模型里的数一个不改。
  2. 这条路上最便宜的一招:在提示词末尾加一句「请一步步解释」。 一道题从答 20 变成答 83,全 500 道题从 15.2% 涨到 40.6%。
  3. 这句话的措辞是试出来的,不是推出来的。 最早的论文用「Let's think step by step.」, 这本书用「Explain step by step.」—— 换个模型、换个任务,该重新试。
  4. 它为什么有效,记两条:中间步骤会进入后续的输入(所以有机会自我纠正), 而分步解法本来就贴合它训练时见过的写法。
  5. 一句话记住这条路的天花板:它不给模型新知识,只改变模型使用已有知识的方式。
  6. 同一条机制会反噬:步骤写错了,错误也会一路被带下去 —— 这就是「想太多」。 简单题上尤其要当心。
  7. 对已经训好的推理模型,这一招不需要也没收益 —— 它本来就在写解释。
  8. 提分的代价是时间。 这一次是 8.4 倍,而且只动了「回答变多长」这一个因子。
  9. 报效果一定要连着报账单。 这本书每一招都是「准确率 + 耗时」成对给的 —— 这是它比多数材料可信的地方,也是你自己做实验时该抄的习惯。

原文地图

主题原书章原文位置
本章两招都让准确率翻倍以上4 Improving reasoning with inference-time scalingtext/27-ch04-4-improving-reasoning-with-inference-time-scalin.txt:29(搜「more than double the accuracy」)
两处花算力的地方与名字4.1 Introduction to inference-time scalingtext/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:16(搜「inference-time scaling or test-time scaling」) · :21(搜「computational resources required to train or run a model」)
曲线照着 OpenAI 的文章画 · 两边都要花同上text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:28(搜「inspired by OpenAI's article」) · :34(搜「combining heavy training-time compute」)
三种做法同上text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:52(搜「Extending the chain-of-thought response」) · :58(搜「Iterative self-refinement」)
挑这三种的三条理由 · Claude 4 那处背书同上text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:88(搜「more than ten different inference-time scaling techniques」) · :94(搜「parallel sampling」)
走查那道题的题面4.2 Loading a pre-trained modeltext/29-ch04-02-4-2-loading-a-pre-trained-model.txt:86(搜「Half the value of」)
贪心解码答 20(错)同上text/29-ch04-02-4-2-loading-a-pre-trained-model.txt:185(搜「\boxed{20}」) · :191(搜「the correct solution is 83」)
那句话怎么加、出处与保留4.3 Generating better responses with chain-of-thought promptingtext/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:26(搜「Let's think step by step」) · :33(搜「Explain step by step」)
加了之后答 83(对)同上text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:75(搜「\boxed{83}」) · :88(搜「lengthy step-by-step explanation」)
想太多同上text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:100(搜「overthinking」)
推理模型不需要也不受益同上text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:106(搜「don't need or benefit from this type」)
两条机制同上text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:125(搜「more opportunities to correct itself」) · :131(搜「matches how many training examples are written」)
不保证正确 · 不给新知识同上text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:137(搜「not universally beneficial」) · :143(搜「changes how the model uses its existing knowledge」)
表 4.1 第 1、3 行4.6 Improving response accuracy with self-consistencytext/33-ch04-06-4-6-improving-response-accuracy-with-self-consis.txt:387(搜「15.2%」) · :389(搜「10.1 min」) · :413(搜「40.6%」) · :415(搜「84.5 min」)

Footnotes

  1. 出处:「4.1 Introduction to inference-time scaling」第 16 段(text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:16,搜「inference-time scaling or test-time scaling」)与第 21 段(text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:21,搜「computational resources required to train or run a model」)。「算力」那句定义是书自己就地给的。 2 3

  2. 出处:「4.1 Introduction to inference-time scaling」第 34 段(text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:34,搜「combining heavy training-time compute」);图 4.2 曲线的来历在第 28 段(text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:28,搜「inspired by OpenAI's article」),原文给的地址是 OpenAI 介绍其第一个推理模型的那篇文章。 2

  3. 出处:「4.1 Introduction to inference-time scaling」第 88 段(text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:88,搜「more than ten different inference-time scaling techniques」)是三条理由与「两种模式」的说明;第 94 段(text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:94,搜「parallel sampling」)是那处业界背书,书引的地址是 Anthropic 关于 Claude 4 的公告。三种做法的清单见第 52 段(text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:52,搜「Extending the chain-of-thought response」)与第 58 段(text/28-ch04-01-4-1-introduction-to-inference-time-scaling.txt:58,搜「Iterative self-refinement」)。 2

  4. 出处:「4.2 Loading a pre-trained model」第 86 段(text/29-ch04-02-4-2-loading-a-pre-trained-model.txt:86,搜「Half the value of」)是题面;第 185 段(text/29-ch04-02-4-2-loading-a-pre-trained-model.txt:185,搜「\boxed{20}」)是它答的 20;第 191 段(text/29-ch04-02-4-2-loading-a-pre-trained-model.txt:191,搜「the correct solution is 83」)是书的判词。

  5. 出处:「4.3 Generating better responses with chain-of-thought prompting」第 33 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:33,搜「Explain step by step」)。原文那一行就是把这句话接在原提示词后面。

  6. 出处:「4.3 Generating better responses with chain-of-thought prompting」第 75 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:75,搜「\boxed{83}」)与第 88 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:88,搜「lengthy step-by-step explanation」)。

  7. 出处:「4.3 Generating better responses with chain-of-thought prompting」第 26 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:26,搜「Let's think step by step」)。书给的那篇论文题目是《Large Language Models are Zero-Shot Reasoners》,地址写在附录里(见「Appendix A. References and further reading」第 327 段,text/79-apx-a-appendix-a-references-and-further-reading.txt:327,搜「Zero-Shot Reasoners」)——那个地址我们没有另行打开核对,这里只转述书的引用;同一段说明了换成「Explain step by step.」的理由,以及「不同措辞在不同模型和任务上效果可能不同」的保留。 2

  8. 出处:「4.3 Generating better responses with chain-of-thought prompting」第 125 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:125,搜「more opportunities to correct itself」)与第 131 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:131,搜「matches how many training examples are written」)。 2

  9. 出处:「4.3 Generating better responses with chain-of-thought prompting」第 143 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:143,搜「changes how the model uses its existing knowledge」)。原文还说这种转变尤其对数学、代码、逻辑这类多步问题有效。

  10. 出处:「4.3 Generating better responses with chain-of-thought prompting」第 100 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:100,搜「overthinking」)。

  11. 出处:「4.3 Generating better responses with chain-of-thought prompting」第 106 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:106,搜「don't need or benefit from this type」)。

  12. 出处:「4.3 Generating better responses with chain-of-thought prompting」第 137 段(text/30-ch04-03-4-3-generating-better-responses-with-chain-of-th.txt:137,搜「not universally beneficial」)。

  13. 出处:表 4.1 第 1 行与第 3 行,「4.6 Improving response accuracy with self-consistency」第 387 段(text/33-ch04-06-4-6-improving-response-accuracy-with-self-consis.txt:387,搜「15.2%」)、第 389 段(text/33-ch04-06-4-6-improving-response-accuracy-with-self-consis.txt:389,搜「10.1 min」)、第 413 段(text/33-ch04-06-4-6-improving-response-accuracy-with-self-consis.txt:413,搜「40.6%」)与第 415 段(text/33-ch04-06-4-6-improving-response-accuracy-with-self-consis.txt:415,搜「84.5 min」)。注意口径:这四个数出自第 4 章的表 4.1(在 DGX Spark 上跑的),不是第 05 章第 8 节那张表 3.1(在 H100 上跑的)。全书统一用前者,理由见第 05 章第 8 节。