推理与测试时计算
深入阅读 · 第 11 章 Sampling——第 15 章已经带你看过 <think> 这颗药丸;这里要讲的是,为什么让模型在回答前「想得更久」这件事本身会奏效,以及它怎么用到了本章自己讲过的那些 sampling 旋钮。
一次性给出答案的模型,不管问题有多难,每个 token 花的计算量都是固定的。思维链(chain-of-thought,CoT)提示——Wei 等人,2022 年——发现了一件近乎令人尴尬地简单的事:给一个权重冻结的模型看几个把中间步骤写出来的样例,它就会开始写出自己的中间步骤,在算术、逻辑和多步应用题上表现明显更好。没有改动任何权重。一条 8 个样例的 CoT 提示,就能把一个 540B 的 PaLM 模型推上 GSM8K 数学题的新 state-of-the-art——甚至超过了外挂计算器/校验器、专门微调过的 GPT-3。
一条链不够——多条链投票
CoT 给你的是一条推理链。自洽性(self-consistency)(Wang 等人,2022 年)问了一个更尖锐的问题:为什么只信一条?在 temperature ——就是本章前面讲过的那个 sampling temperature——下独立采样 条链,让每条链各自得出自己的最终答案,再报出多数链都同意的那个答案:
这是本章自己那套机制的一次直接、具体的运用:在 (greedy)时,每一次「重新采样」都是同一条链,没什么可投的——自洽性需要temperature sampling 提供的那份随机性,才能一开始就产生真正不同的链。Wang 等人测到了实打实的收益:GSM8K 上 +17.9 个百分点,SVAMP +11.0,AQuA +12.2,StrategyQA +6.4,ARC-challenge +3.9,全部相对于 greedy 思维链而言。看它如何从一批混杂的样本里把正确答案救回来——其中还有一个样本,犯了和 greedy 解码本会犯下的一模一样的错误:
原有 5 个 + 新买 2×3 = 5 + 6 = 11。
✓ 112 罐、每罐 3 个,共 6 个。6 + 原有的 5 个 = 11。
✓ 115 + 2 = 7 组网球,7 × 3 = 21。
✕ 212×3 = 6 个新网球。加上原有的 5 个:11。
✓ 112×3 = 5(算错了)。5 + 5 = 10。
✕ 10多数票:5 条路径里有 3 条落在 11,也就是正确答案——尽管 5 个独立样本里有 2 个是错的,其中一个还和上面那条 greedy 链犯了一模一样的错。对独立样本投票,抵消了任何单一链(包括 greedy 那条)本会一条道走到黑的错误。
示意用的预先写定的例子,并非模型的实时输出。五条采样路径是在 T = 0.7、同一个提示词下各自独立抽取的——区别只在于采样器这次落在了哪里。
从一个 prompt 技巧,到一根被训练出来、可扩展的坐标轴
第 14 章的尺寸阶梯,画的是准确率相对参数量——模型越大、训练时算力越多,分数越高。2024 年 9 月,OpenAI 的 o1 在这张图上加了第二根轴:测试时计算(test-time compute)。o1 用大规模强化学习训练,让它在回答前先产出一段很长的内部思维链——按输出 token 计费,但对用户隐藏——它的准确率随着训练时更多的 RL、以及推理时更多的思考 token 都呈对数线性增长。跳跃幅度很大:在 AIME 2024 上,GPT-4o 大约 12%,而 o1 单样本 74%、64 个样本做类似自洽性的共识投票达到 83%、对 1,000 个样本重排序达到 93%——外加 Codeforces 89th 百分位,以及超过博士水平的 GPQA 科学题成绩。Snell 等人(2024 年)把「为什么这会奏效」形式化了:测试时计算是一根独立的、随 prompt 自适应的扩展轴,一种计算最优的花法,能在小模型力所能及的问题上,打平一个大 的模型,比朴素的 best-of- 采样在计算效率上高出 4 倍以上。
纯 RL 炼出的推理:DeepSeek-R1
DeepSeek-R1(2025 年 1 月)把训练那一侧又往前推了一步:DeepSeek-R1-Zero 在 DeepSeek-V3-Base 之上,靠纯强化学习——零监督热启动,只用 GRPO(Group Relative Policy Optimization)和纯规则的正确性/格式奖励,完全没有学出来的 reward model——学会了推理:长链、自我反思、检查自己的工作。在 AIME 2024 上,pass@1 从 15.6%(基础模型)经 RL 之后升到 71.0%——再配上你刚才见过的那种自洽性式的、对 64 个样本的多数投票,升到 86.7%,追平 OpenAI 的 o1-0912。正式发布的 DeepSeek-R1 在 RL 之前加了一小份冷启动监督数据集,纯粹是为了修好可读性和语言混杂问题,最终达到 79.8%,与 o1 打平。
省钱的做法:s1 与 budget forcing
不需要 R1 那种规模的 RL,也能炼出一条形状相似的曲线。s1 论文(2025 年 1 月)只在 1,000 条精心挑选的样例(s1K)上对 Qwen2.5-32B-Instruct 做微调,再加上budget forcing:提前截断模型的思考、强迫它给出答案;或者反过来——如果它想过早停下,就压住那个「思考结束」token,直接在后面接上字面的一个词「Wait」,逼它继续推理。仅这一根杠杆,就把同一个模型在 AIME24 上的准确率从 50% 拉到了 57%,最终的 s1-32B 在竞赛数学上比 o1-preview 高出多达 27 分,完全不需要 RL。注意 budget forcing 在 token 层面到底在做什么:直接编辑第 15 章给你看过的、逐 token 吐出来的那个同一个 <think>...</think> 块的长度与内容——测试时计算被落到了字面意思上:「在强制它停下之前,允许这段思考块跑多少个 token」。
你浏览器里的 Qwen 也这样做吗?
部分是——差距值得说清楚。Qwen3.5 自己的 model card 关于推理训练只公开了一句含糊的话——「Scalable RL Generalization: reinforcement learning scaled across million-agent environments with progressively complex task distributions」——没有 GRPO 这个名字,没有奖励描述,也没有 verifier 对数。相比上一代架构自己的 Qwen3-Next 博客,这是一次实打实的披露倒退——那篇博客点名了 GRPO,还给出了一个具体数字——3,995 组 query-verifier pair——用于它的 Reasoning-RL 阶段。而这份 card 明确说了的是:旗舰型号 Qwen3.5-397B-A17B 默认开启 thinking mode,但这个浏览器里跑的这个具体模型 Qwen3.5-0.8B,默认关闭 thinking mode——正好相反的默认值——厂商还专门加了一条警告:为这个最小的 checkpoint 强行打开 thinking mode,容易让它陷入无法正常终止的推理循环。所以诚实的说法是: 第 15 章那套 <think> 机制,在这份 checkpoint 里是真实存在的;思维链和自洽性是通用技巧,你可以自己对包括这个模型在内的任何模型多采样几次去用;但厂商对这个具体在这个标签页里跑的 0.8B 模型给出的建议,是让 thinking 保持关闭。