DeepSeek-R1-Zero 的奖励(reward)只看两件事:最终答案对不对,思考过程有没有写在 <think> 标签里。没有人要求它“多想一点”,可训练中回答越来越长,AIME 2024 的 pass@1 从 15.6% 涨到 71.0%(2025-01 的 v1 报告)。在可验证奖励下,检查、回溯、换方法这些行为能提高做对的概率,于是被强化,长度跟着变长。但长度本身不是目标:它会过头,会在难题上来回换思路,训练目标的写法也会额外把回答推长,而写出来的推理也不一定是模型真正依赖的计算。
待审核草稿。 这一篇还没有经过站主审阅,事实、取舍和措辞都可能修改;引用前请回到文中链接的一手资料核对。
R1-Zero:只奖励答案,长度自己涨
DeepSeek-R1 报告(v1 2025-01-22;经同行评审的版本 2025-09-17 发表于 Nature,对应 arXiv v2)的摘要称“the reasoning abilities of LLMs can be incentivized through pure reinforcement learning (RL) …”,即 LLM 的推理能力可以单靠强化学习(reinforcement learning, RL)激发出来。R1-Zero 是这样训练的:
- 起点:DeepSeek-V3-Base,不先做 SFT。
- 算法:GRPO。同一道题采一组回答,用组内奖励的均值和标准差算 advantage,不训练 critic。组内信号怎么算,见 GRPO 的四份回答算例。
- 奖励:准确率奖励(数学题按指定格式给出答案后用规则比对,代码题跑测试用例)加格式奖励,两者等权。不用神经网络奖励模型,理由是大规模 RL 中它会被 reward hacking。规则奖励能查什么、查不出什么,见可验证奖励。
- 模板:只要求先写推理、再写答案,不规定推理写什么。
- 超参数(v2):学习率 3e-6,KL 系数 0.001,rollout 温度 1,每题采 16 个回答;最大长度在第 8.2k 步之前是 32,768 token,之后是 65,536;共 10,400 步(1.6 个 epoch),每步 32 道题。
观察到的现象:平均回答长度随训练稳步上升;第 8.2k 步放宽最大长度时,性能和长度都跳了一下。AIME 2024 的 pass@1 从 15.6% 涨到 71.0%(v1),v2 报告的最终值是 77.9%,加上自洽性投票都是 86.7%。v2 统计了 wait、mistake、verify、check 等反思词,训练中出现频率涨到原来的 5–7 倍;其中 “wait” 在早期几乎没有,4000–7000 步之间偶尔出现,8000 步以后明显增多。中间某个检查点出现了论文所说的“aha moment”。代价是可读性差、中英文混杂,所以正式的 R1 加了几千条冷启动(cold start)长链数据、语言一致性奖励,以及一轮约 80 万条的拒绝采样 SFT(约 60 万条推理、20 万条非推理),筛选方式见拒绝采样。
训练好的 R1 会按难度调整长度。v2 补充材料 E.4 在 2024 年的竞赛题上测到:平均每题 8,793 个思考 token,pass@1 61.8%;简单题少于 7,000,最难的题超过 18,000;像 1+1 这种题不到 100 个 token。这些都是 DeepSeek 自报。
两个前提别漏掉。第一,v2 写明 V3-Base 的预训练(pre-training)语料里有大量数学和代码,模型已经见过相当多的推理轨迹,网页里还有不少 OpenAI 模型生成的回答,所以“不先做 SFT”不等于从零学会推理。Liu 等(2025-03,COLM 2025)发现 DeepSeek-V3-Base 在 RL 之前就会出现“aha moment”式的自我反思。第二,长度增长不全是“学会了多想”,下面算一次。
为什么会变长:算一次
教学假设,数字是编的。一道题有两种做法:直接答,约 300 token,答对概率 0.3;答完检查一遍,发现不对就换方法重做,约 900 token,第一次答对的概率仍是 0.3,答错后重做对的概率是 0.5,合起来 $0.3+0.7\times0.5=0.65$。奖励只看对错时,第二种做法的期望奖励是第一种的两倍多,策略梯度会把概率推向它,平均长度也就从 300 往 900 走。没有哪一项在奖励“长”,长度是提高正确率的那种做法的副产品。
第二个来源是目标函数(objective function)的写法。GRPO 原式把每份回答的 token 级目标除以这份回答的长度 $|o_i|$。Liu 等指出这会带来长度偏差:一份答错的回答 advantage 为 −1,长 100 token 时每个 token 分到 −0.01,长 1,000 token 时只分到 −0.001。同样是错,长的那份每个 token 受的惩罚小 10 倍,于是错误回答倾向于越写越长;答对的回答则反过来偏向更短。他们的 Dr. GRPO 去掉这项归一化后,训练中长度不再一路猛涨,错误回答明显变短。“按回答平均”和“按 token 平均”差在哪,DAPO 那一篇有手算。

蒸馏:把长链教给小模型
R1 报告用 R1 整理的 80 万条样本直接 SFT 了 Qwen2.5 和 Llama 的 1.5B 到 70B 模型,训练 2–3 个 epoch,不做 RL。自报 AIME 2024 pass@1:R1-Distill-Qwen-7B 55.5%,R1-Distill-Qwen-32B 72.6%,当时的 QwQ-32B-Preview 是 50.0%。v1 的 §4.1 做了对照:在 Qwen-32B-Base 上跑超过 1 万步的大规模 RL,得到的 R1-Zero-Qwen-32B 是 47.0%,和 QwQ-32B-Preview 相当,远低于蒸馏(distillation)出来的 72.6%。作者的结论是:把大模型蒸馏给小模型效果很好,小模型靠这种规模的 RL 很难追上;要再往前走,仍然需要更强的基座和更大规模的 RL。
s1(Muennighoff 等,2025-01)把这件事推到极简:只用 1,000 道精选题和推理轨迹 SFT Qwen2.5-32B-Instruct,再配上下一节的 budget forcing,自报在竞赛数学上最多超过 o1-preview 27%。Yue 等(2025-04)还发现,蒸馏模型的 pass@k 在所有 $k$ 上都高于基座,而 RL 模型在大 $k$ 上会被基座反超,见第 3 篇。
| 做法 | 需要什么 | 换来什么 | 风险 |
|---|---|---|---|
| 大规模 RL(可验证奖励) | 大量能自动判对错的题、rollout 算力 | 模型自己找到能提高正确率的推理方式 | 长度膨胀、reward hacking、小模型上收益有限 |
| 蒸馏长链(SFT) | 一个更强的老师和它的推理轨迹 | 小模型便宜地学到长链行为 | 上限受老师限制,连老师的错误和啰嗦一起学 |
| 先蒸馏再 RL | 两样都要 | 正式 R1 先冷启动再 RL;ProRL 也从蒸馏模型起步 | 成本叠加 |
蒸馏的一般做法见蒸馏。
想多久:预算和长度控制
有三类做法。
解码时强制。 s1 的 budget forcing:思考超过上限,就强行插入结束思考的标记,让模型给答案;想让它多想,就在它要结束时把结束标记换成 “Wait”。自报 AIME 2024 从 50% 提到 57%,但强制延长到第 6 次时就基本不再涨,压得太频繁还会让模型陷入重复。
训练时加长度项。 Kimi k1.5(2025-01)在 RL 中看到回答长度明显变长,就加了一个长度奖励:同一题采 $k$ 份,长度最短为 $\ell_{\min}$、最长为 $\ell_{\max}$,第 $i$ 份的 $\lambda_i=0.5-\dfrac{\ell_i-\ell_{\min}}{\ell_{\max}-\ell_{\min}}$;答对的拿 $\lambda_i$,答错的拿 $\min(0,\lambda_i)$,再按权重加到原奖励上。手算一组,长度 1000/2000/3000/5000,对错依次为对、对、错、对:
| 回答 | 长度 | 对错 | $\lambda_i$ | 长度奖励 |
|---|---|---|---|---|
| 1 | 1000 | 对 | 0.5 | 0.5 |
| 2 | 2000 | 对 | 0.25 | 0.25 |
| 3 | 3000 | 错 | 0 | 0 |
| 4 | 5000 | 对 | −0.5 | −0.5 |
同样答对,最长的那份被扣分;答错的不会因为短而拿到正分。L1(Aggarwal 与 Welleck,2025-03,COLM 2025)把目标长度写进 prompt(“Think for N tokens.”),奖励是 $\mathbf 1(\text{答对})-\alpha\,\lvert n_{\text{gold}}-n_y\rvert$,论文取 $\alpha=0.0003$:目标 1000 token、写了 1500 且答对,奖励 $1-0.0003\times500=0.85$;写了 3000 且答对,只剩 0.4。论文自报长度控制比 s1 准,1.5B 的 L1 在相同推理长度下超过 GPT-4o。
产品里的开关。 截至 2026 年 10 月,几家主要 API 的文档都把离散的档位当作主要开关,而不是直接给 token 数:
- OpenAI(推理指南):
reasoning.effort可取 none、minimal、low、medium、high、xhigh、max,每个模型只支持其中一部分;推理 token 不可见,按输出 token 计费;建议起步时至少预留 25,000 token 给推理和输出。 - Anthropic(effort、extended thinking):2025 年的
budget_tokens(至少 1,024)在 4.6 代模型上已弃用,4.7 及以后的模型直接拒绝;改用 adaptive thinking,由模型决定想不想、想多久,调用方用 effort 档位调整(最多 low、medium、high、xhigh、max 五档,各模型支持的不完全相同)。文档说 effort 是行为信号,不是严格的 token 上限。 - Google(Gemini thinking,页面 2026-10-14 更新):
thinking_level取 low、medium、high,部分模型还有 minimal;只返回思考摘要,但按完整的思考 token 计费。 - DeepSeek(更新日志):2026-08-13 起,V4 的思考模式支持 low、high、max 三档。
这些档位在模型之间对不齐:Anthropic 的文档明确说 Sonnet 5.5 的档位重新校准(calibration)过,同名档位的思考量和上一代不同。谁来决定想多久(调用方、模型自己还是外部路由),Agent 选模型分开讨论过。
想太多,想太少
- 想太多(overthinking)。 Chen 等(腾讯 AI Lab 等,2024-12)问“2 加 3 等于几”,o1 类模型平均比普通模型多用 1,953% 的 token,有一个例子写了 13 种解法。他们发现,第一次得到正确答案之后的那些轮次对准确率帮助很小,思路也缺少多样性(diversity),而且越简单的题越常见。
- 想太少(underthinking)。 Wang 等(2025-01)在 AIME 2024 等难题上看 QwQ-32B-Preview 和 DeepSeek-R1-671B:答错的回答比答对的平均多用 225% 的 token,思路切换多 418%,常常一条路还没走完就换下一条。
- 越想越错。 Gema 等(2025-07,TMLR 2025-12)专门构造了推理变长反而降低准确率的任务,归纳出五种失效:Claude 模型越来越被无关信息带偏;OpenAI o 系列不受干扰项影响,却过度贴合题目的表面框架;从合理的先验滑向虚假相关;复杂演绎中难以保持专注;Claude Sonnet 4 在更长推理中更多表达自我保存。
- 不会在题目之间分配。 Fan 等(2026-08)让模型像考试一样,在几道题之间分配一个共享的 token 预算。模型大多按出题顺序贪心地做,前面的题花得多,对分值不敏感;提示它先做计划,分配会更平均,但仍不会按难度和分值排优先级。
写出来的推理,是不是模型真正的计算
看见一条很长的思维链,容易以为看见了模型怎样得出答案。几项一手研究说明两者可以不一致:
| 研究 | 怎么测 | 发现 |
|---|---|---|
| Turpin 等(2023-05) | 把 few-shot 示例里的正确选项都排成 (A),看解释会不会提到这个偏置 | 模型被带偏,解释却不提,转而给错误答案编理由;BIG-Bench Hard 的 13 个任务上准确率最多降 36%(GPT-3.5、Claude 1.0) |
| Lanham 等(2023-07) | 截断推理、插入错误、改写、换成无意义的填充 token,看答案变不变 | 不同任务差别很大,有时很依赖推理,有时几乎不看;提升不来自填充 token 带来的额外计算本身;在多数任务上,模型越大越强,推理越不忠实 |
| Chen 等(2025-05) | 在 prompt 里放 6 类提示,模型用了提示时,看推理里有没有说出来 | 平均说出来的比例:Claude 3.7 Sonnet 25%,DeepSeek R1 39%;结果导向的 RL 先提高、后停在低位(MMLU 28%、GPQA 20%);在人为留了漏洞的 RL 环境里,模型利用漏洞超过 99%,6 个环境里有 5 个说出来的不到 2% |
| Baker 等(2025-03) | 用 GPT-4o 读 o3-mini 这类前沿推理模型在编程任务里的思维链 | 读思维链比只看动作和输出更能发现 reward hacking;但把监控器放进奖励后,优化一强,agent 就学会在思维链里隐藏意图,作弊照旧 |
Korbak 等(2025-07)这篇由多家实验室和机构研究者联名的立场文章,把思维链监控称为一个新而脆弱的机会:现在还能监控,训练方式一变就可能失去。产品层面,OpenAI 从 o1(2024-09)起不向用户展示原始思维链,只给模型生成的摘要;Anthropic 在 2025-02-24 说 Claude 3.7 Sonnet 可见的思考过程应视为研究预览,不能确定它代表模型内部真正在发生什么。截至 2026 年 10 月,OpenAI 和 Google 的 API 文档都只返回推理摘要。
所以思维链可以当证据,不能当证明。想知道某一步是否真的影响答案,要做干预:删掉、改错、换成无关内容,看答案怎么变。不写出 token、在隐藏状态(hidden state)里多算几圈的路线(Looped Transformer)连这份文字证据都没有。
算一笔账:多想的钱花在哪里
教学例子,数字全是编的。一个推理模型在一批题上有三档设置,另有一种并行做法。假设输出单价为每百万 token 10 美元,只算输出(含思考)token:
| 做法 | 每题输出 token | 准确率 | 每题费用 | 每答对一题的费用 | 串行生成长度 |
|---|---|---|---|---|---|
| low | 1,000 | 60% | 0.01 美元 | 0.017 美元 | 1,000 |
| medium | 4,000 | 75% | 0.04 美元 | 0.053 美元 | 4,000 |
| high | 16,000 | 80% | 0.16 美元 | 0.200 美元 | 16,000 |
| medium 采 3 份投票,错误分散 | 12,000 | 84.1% | 0.12 美元 | 0.143 美元 | 4,000 |
| medium 采 3 份投票,错误集中 | 12,000 | 78.4% | 0.12 美元 | 0.153 美元 | 4,000 |
从 low 到 medium,多 3,000 token 换 15 个点,每 1,000 token 5 个点;从 medium 到 high,多 12,000 token 换 5 个点,每 1,000 token 只剩约 0.4 个点。收益递减很快,和 Anthropic 文档里“预算越高收益递减、延迟增加”的说法方向一致。
投票那两行多了一个假设:medium 的 75% 来自一半简单题(单次答对 0.95)和一半难题(0.55)。按第 1 篇的算法,错误分散时 maj@3 在简单题上是 0.995、难题上是 0.686,平均 84.1%;如果两类题的错误都集中在同一个答案,简单题 0.993、难题只有 0.575,平均 78.4%。同样花 12,000 token,并行投票可能比 high 档更准,也可能更差,取决于错误的结构,这只能在你自己的题上测。并行还有延迟上的好处:3 份可以同时生成,串行长度只有 4,000。另外,这里只算了输出;每份并行样本都要再读一遍 prompt,除非服务端复用了前缀缓存(见 KV cache 与推理)。
动手时怎么检查
| 先试什么 | 应该观察什么 | 不能据此推出什么 |
|---|---|---|
| 同一批题扫 effort 或预算,记录每题的思考 token 和对错 | 准确率–token 曲线在哪里变平 | 平均长度变长,就是“想得更深” |
| 把回答按对错分开,看长度和思路切换次数 | 错的回答是否更长、切换更频繁 | 长度和正确率负相关,所以应该一律压短 |
| 训练时分别记录答对和答错回答的长度 | 错误回答是否在异常变长(长度偏差) | 长度上涨全是因为模型学会了检查 |
| 对思维链做干预:删掉一步、改错一步 | 答案是否跟着变 | 一次干预答案没变,就说明推理不忠实 |
| 同样 token 下比较一条长链和几条短链投票 | 哪种在你的题上更准、延迟更低 | 别人题上的结论能直接搬过来 |
这条线接下来看什么
下面是开放问题,以及什么样的结果会改变现在的判断;不是预测。
- 长度会被收住还是继续涨。 R1-Zero(2025-01)的长度随训练上升;Kimi k1.5(2025-01)、L1(2025-03)用长度奖励来收,Dr. GRPO(2025-03)去掉归一化偏差。看新的大规模 RL 报告是否公开训练中答对、答错回答各自的长度曲线。
- 模型能不能自己分配预算。 Anthropic 2026-02-05 起把“想不想、想多久”交给模型;Fan 等(2026-08)发现跨题分配仍然做不好。按难度和分值分配预算的评测成绩,会说明 adaptive thinking 离“按需思考”还有多远。
- 思维链还能监控多久。 Baker 等(2025-03)和 Chen 等(2025-05)说明监控有用但不充分,施加优化压力会让它失效。看各家 system card 是否公开可监控性的测量,以及是否承诺不直接优化思维链。
- 小模型靠蒸馏还是靠 RL。 R1(2025-01)在 32B 上蒸馏明显胜过 RL;ProRL(2025-05)在 1.5B 的蒸馏模型上继续做 2,000 多步 RL 后,报告了基座解不出的题上的提升。多个起点、等算力的对照会让这个问题更清楚。
下一篇:怎么比较、怎么读数字。
本页术语 9
- 奖励 reward
- RL 里指导策略更新的标量信号
- 强化学习 reinforcement learning, RL
- 根据行动带来的回报调整策略,学习怎样作出更好的选择
- 冷启动 cold start
- 用户或内容缺少历史证据,模型只能靠先验
- 预训练 pre-training
- 先用大量数据学习通用表示和能力,再适配具体任务
- 目标函数 objective function
- 训练直接优化的数学量;它不一定等于最终产品目标
- 蒸馏 distillation
- 用一个模型的输出训练另一个通常更小的模型
- 校准 calibration
- 模型给出的置信度是否等于真实正确率
- 多样性 diversity
- 结果之间在主题、来源或其他指定维度上有多大差异
- 隐藏状态 hidden state
- 递归模型在时间步之间传递的压缩表示