推理模型:让模型「先想再答」
同一个模型,让它「张口就答」和「先在草稿纸上写一长串再答」,难题的正确率能差出一大截。这就是 2024 年以来最重要的一次范式转移:把算力从训练,挪到「想」的过程里。
张口就答的代价:一次前向传播,能想多深?
请一个学过第 27 课的你来出题:「农场里有鸡和兔共 35 个头、94 只脚,兔有几只?」如果只许你看完题立刻报出一个数字,不许打草稿,大概率会报错。可是给你一张草稿纸,三行就解出来了。
大模型正好被卡在「不许打草稿」的处境里。回想第 27 课:模型每生成一个 token,都要把输入完整地跑一遍网络——这一遍的计算量是固定的,不会因为题目更难就自动变多。要它「张口」就给出十步推导后的答案,等于要求它在一次前向传播里心算完所有步骤。
思维链:把草稿纸交给模型
这个想法在 2022 年被系统地验证:只要在提示里加一句「让我们一步一步想」,或者给几个带推理过程的示范,模型在数学题上的表现就明显变好。这叫思维链(Chain-of-Thought,CoT)。
还是那道鸡兔同笼,看看一条思维链长什么样:
脚的总数:4x + 2(35 − x) = 94
展开:4x + 70 − 2x = 94 → 2x = 24
解得 x = 12,验算:12×4 + 23×2 = 48 + 46 = 94 ✓
注意每一行都很「小」:模型每一步只需要做一点点推理,前面的结果已经白纸黑字写在上下文里,注意力一瞥就拿到了。难题被拆成了一串它一次前向就能搞定的小题。
早期的思维链要靠人来引导:写好示范、写好提示词。模型的「想法」是被诱导出来的,不一定想得对,也不会主动回头检查;想歪了一步,后面就一路歪下去。更根本的问题是:能不能不靠人教,让模型自己学会怎么想?
可验证奖励:不教怎么想,只看答没答对
答案要回到第 31 课的强化学习。RLHF 用的是「人类偏好训练出来的打分器」:能覆盖开放问题,但贵,而且打分器会被钻空子(奖励投机)。
可数学题、编程题不一样——它们有标准答案:答案对不对,一比就知道;代码对不对,跑一下单元测试就知道。既然可以让程序自动判分,何必再训练一个容易出错的打分器?这就是可验证奖励的强化学习(RLVR,Reinforcement Learning with Verifiable Rewards):
最神奇的地方在这里:没人告诉模型该怎么想,可当它为了「答对」反复试错,一些人类熟悉的推理习惯自己长了出来——把长题拆成小步、验算一遍、发现矛盾就回头重来,甚至在思路里写出「等等,我再检查一下」。2024 年 9 月 OpenAI 的 o1 首次把这类推理模型推向大众;2025 年 1 月 DeepSeek-R1 公开了完整的训练思路,让全世界看清了这条路怎么走。
推理模型并不是换了一种新架构——它依然是你学过的那个 Transformer(甚至常常是 MoE)。变的是训练方式:多了一段用可验证奖励做的强化学习,外加推理时允许它输出很长的思考过程。第 34 课提到的「推理蒸馏」(R1-Distill),就是把这些长思考再教给小模型。
GRPO:一组答案,互相当参照
训练里还剩一个具体问题:一次对错只给出一个 0/1,怎么判断「这条思路到底比平均水平好多少」?经典的 PPO(第 31 课)会额外训练一个「价值网络」来估计基线,又占显存又不稳。DeepSeek 提出的 GRPO(Group Relative Policy Optimization)用了一个朴素得多的办法:
对同一道题多采样几条解答,让它们互相当参照物。组内平均分就是基线,比平均好的鼓励,比平均差的抑制:
平均 mean = 3/8 = 0.375 标准差 std = √(0.375 × 0.625) ≈ 0.484
优势 A = (r − mean) / std
答对:(1 − 0.375) / 0.484 ≈ +1.29 答错:(0 − 0.375) / 0.484 ≈ −0.77
检验:3 × 1.29 + 5 × (−0.77) ≈ 0 —— 一组之内,奖励和惩罚刚好相抵
看到了吗?物以稀为贵:答对的越少,每一条答对的优势越大。而当整组全对或全错时,std = 0,所有优势归零——这一轮什么也学不到。这也是为什么 RLVR 特别看重「难度刚好」的题:太简单和太难的题,都给不出有用的信号。
算出优势之后,要做的事和第 31 课一样:优势为正的解答里的每一个 token,概率被推高;优势为负的,被压低(外加一个 KL 惩罚,防止模型偏离原来的样子太远)。这样,模型整条「思考 + 作答」的路径,就随着一次次对错被慢慢塑形。
想得越久越准?测试时计算与「思考档位」
有了会想的模型,第二个问题随之而来:想多久合适?过去提升能力主要靠训练时砸算力(更大的模型、更多的数据);现在多了另一个旋钮——推理时多花算力,让模型多想几步,这叫测试时计算(test-time compute)。
今天主流的模型都会提供可选的「思考档位」(从低到高,甚至更高的「最大」档),让你在成本、延迟、质量之间自己挑。拖一拖下面的滑块,感受这三者的拉扯:
过度思考(overthinking):问「1+1 等于几」也写几千字的推理,既贵又慢,有时想着想着还把本来对的答案想歪了。所以好的系统会按问题难度自适应地分配思考量,或让用户手动调档。
还有两个要留心的地方。其一,思维链是模型写出来的文字,未必忠实反映它内部真正的计算过程;其二,只要奖励可以被钻空子,模型就会钻——比如写代码的任务里,它可能直接改测试或针对测试用例硬编码,而不是真去修 bug。可验证奖励省去了「打分器出错」的麻烦,却没有免除「奖励设计得不够严」的风险。
总结
推理模型 = 同一个 Transformer + 可验证奖励的强化学习。它靠写出很长的思维链把难题摊到很多个 token 上,用 GRPO 这样的组内相对打分来训练;推理时花的算力越多通常越准(测试时计算),但收益递减,还要防过度思考与奖励投机。
💡 用大白话梳理:这一课的核心直觉
- 动机:每个 token 的算力固定,难题需要更多步骤——让模型多写 token,就是让它多算。
- 思维链:把难题拆成一串小步骤,中间结果写下来,注意力一瞥就能取到。
- RLVR:数学、代码有标准答案,程序自动判分;不教「怎么想」,只奖励「答对」,好的推理习惯自己涌现。
- GRPO:同一题采样一组解答,组内平均当基线,优势 = (r − mean)/std;全对或全错则没有学习信号。
- 测试时计算:推理时多想几步换来更高正确率,但边际收益递减,还有过度思考、思路不忠实、奖励投机等坑。
学习小测验
动动脑筋:核心直觉小测验(选出你的答案后点击「提交」,即可查看生动通俗的详细解析)
37 注意力瘦身术与长上下文
从 GQA、MLA 到线性注意力,理解长上下文的计算与显存账。