DeepSeek-R1:用纯 RL 激励 LLM 的推理能力,以及为什么最终仍然需要冷启动

  • 关联论文:2501.12948
  • 作者:flyP
  • 更新:2026-10-29

§0 自检

  • 一句话结论:DeepSeek-R1-Zero 证明推理能力可以在没有任何人工推理标注的纯 RL 下自发涌现(AIME 2024 pass@1 从 15.6% 涨到 71.0%),但产物可读性差、语言混杂;DeepSeek-R1 补上冷启动与多阶段流水线后达到 AIME 2024 pass@1 79.8%、MATH-500 97.3%,与 OpenAI-o1-1217 持平——真正的结论是"纯 RL 可行,但纯 RL 不够用"。
  • 领域:post-training / RLVR / reasoning / LLM 对齐
  • 核心数据:AIME 2024 pass@1 15.6% → 71.0%(R1-Zero),majority voting(cons@64)至 86.7%;R1 AIME 2024 79.8%、MATH-500 97.3%、MMLU 90.8%、MMLU-Pro 84.0%、GPQA Diamond 71.5%、Codeforces 2029 Elo(超过 96.3% 人类参赛者)、AlpacaEval 2.0 长度控制胜率 87.6%、ArenaHard 92.3%;开源 6 个 dense 蒸馏模型(1.5B/7B/8B/14B/32B/70B)
  • arXiv ID 独立核实:已在 arxiv.org/abs/2501.12948 与 export.arxiv.org API 双通道抓取 abstract、完整作者清单与出版信息。该论文已在 Nature 正式发表:Nature volume 645, pages 633–638 (2025),DOI: 10.1038/s41586-025-09422-z(2025-09-17 在线发表,投稿 2025-02-14,接收 2025-07-17)。✅ 这是本批三篇中唯一有顶刊背书的。
  • GitHub/权重公开:DeepSeek-R1-Zero、DeepSeek-R1 及 6 个蒸馏模型均已开源(DeepSeek-AI)。本稿未 fetch 具体仓库文件,⚠️ commit 版本未核。
  • 数字 verbatim 与存疑标注:上述 benchmark 数字均 verbatim 来自 arXiv 全文 §1.1 与 §1.2;GRPO 目标函数与 advantage 公式(式 1/2/3)verbatim 来自原文 §2.2.1;冷启动输出格式、600k/200k SFT 数据量、蒸馏表数值本轮已逐项回查原文正文与表格。
  • 明文负面发现:含 ≥5 条(放弃 neural reward model 因为 reward hacking;language consistency reward 损害了部分 benchmark 表现;R1-Zero 可读性差 + 语言混杂;纯 RL 从 base model 起步不稳定;Chinese SimpleQA 上 R1 因安全 RL 而拒答,低于 DeepSeek-V3)。

§1 一句话结论

DeepSeek-AI 用 GRPO 在 DeepSeek-V3-Base 上做不带 SFT 冷启动的大规模 RL,得到 DeepSeek-R1-Zero——推理能力(自我验证、反思、长 CoT)自发涌现,AIME 2024 pass@1 从 15.6% 提升到 71.0%、majority voting(cons@64)达 86.7%,超过 OpenAI-o1-0912;但纯 RL 产物可读性差、语言混杂,于是最终版 DeepSeek-R1 走了"冷启动 SFT → 推理导向 RL → 拒绝采样+SFT → 全场景 RL"四阶段流水线,达到 AIME 2024 79.8%、MATH-500 97.3%,并已在 Nature 645 卷正式发表。

§2 解决什么真问题

推理能力自 o1 之后成了行业主战场,但当时只有 OpenAI 的闭源 o1 能做到,普通研究者面前横着三道墙:

墙一:RL 是不是必须喂巨量人工推理标注? 在 R1 之前,所有用 RL 训推理的工作(DeepSeekMath、当时的各类 process reward model 研究)都重度依赖人工标注的推理轨迹,而标注长 CoT 是极贵重的工作——它要求标注者本身会解难题、会写思维过程。

墙二:test-time scaling 到底怎么落地? 论文开篇明确说这是开放问题:"the challenge of effective test-time scaling remains an open question for the research community." 此前有 process-based reward model(Uesato et al. 2022、Lightman et al. 2023、Wang et al. 2023)、RL、Monte Carlo Tree Search、Beam Search 等多条路,但 "none of these methods has achieved general reasoning performance comparable to OpenAI's o1 series models."

墙三:如果不用 SFT,RL 能不能自己长出推理? 这是论文的核心赌注,也是最有价值的那个。

论文的答案是:能,但直接交付的版本不好用。所以它同时交付两个模型——R1-Zero 作为"机制存在性证明",R1 作为"工程可用版本"。这个双交付设计本身就是论文最诚实的地方:它没有把 R1-Zero 的失败藏起来,而是把它当作正结果来写。

§3 核心方法

3.1 GRPO:干掉 critic 的 policy optimization

问题:PPO 系算法需要训一个与 policy 同尺寸的 critic 模型来估计 baseline,这在大规模 RL 中是一笔巨大的额外成本——一个 671B 的 policy 就要配一个 671B 的 critic,显存直接翻倍。

做法:GRPO(Group Relative Policy Optimization,源自 DeepSeekMath / Shao et al. 2024)放弃 critic,改用"同一 prompt 下采样的一组输出"的组内统计量作 baseline。

论文原文对每个问题 q 从旧策略 π_θold 采样一组输出 {o₁,…,o_G},优化目标为:

J_GRPO(θ) = E[ q∼P(Q), {o_i} ∼ π_θold(O|q) ]
            (1/G) Σ_{i=1}^{G} [ min( π_θ(o_i|q)/π_θold(o_i|q) · A_i,
                                  clip(π_θ(o_i|q)/π_θold(o_i|q), 1−ε, 1+ε) · A_i )
                            − β · D_KL(π_θ || π_ref) ]

其中 KL 项用无偏估计:

D_KL(π_θ || π_ref) = π_ref(o_i|q)/π_θ(o_i|q) − log( π_ref(o_i|q)/π_θ(o_i|q) ) − 1

优势函数用组内标准化:

A_i = ( r_i − mean({r₁,…,r_G}) ) / std({r₁,…,r_G})

机制直觉:advantage 的含义从"这个动作比平均好多少"变成"这个动作比同一道题的其他尝试好多少"。这天然契合 RLVR(Reinforcement Learning with Verifiable Rewards)——因为正确/错误是二值或稀疏信号,绝对值没意义,组内相对排序才有信息量。

伪代码视角:

for 每个 prompt q:
    O ← 从 π_old 采样 G 条回答
    for o in O: r(o) ← rule_based_reward(o)     # 对/错 + 格式
    A(o) ← (r(o) − mean(r)) / std(r)              # 组内标准化
    更新 π_θ:最大化 clipped_ratio · A  − β·KL(π_θ‖π_ref)

代价与前提:GRPO 的有效性依赖"同一组里既有对又有错",即组内必须有信号多样性。若一道题全对或全错,advantage 退化为 0/0,梯度信号消失——这是 group-based 方法相对 process-level reward 的结构性短板(论文未展开讨论,⚠️ 标注为我的推断,非原文陈述)。

3.2 奖励设计:只用 rule-based,刻意不用 neural reward model

R1-Zero 的奖励由两部分组成:

  • Accuracy reward:数学题要求最终答案放在指定格式(如 \boxed{})内,以便 rule-based 可靠验证;LeetCode 题用编译器按预设 test case 生成反馈。
  • Format reward:强制思考过程放在 <think> </think> 标签之间。

关键负面发现(原文明确):"We do not apply the outcome or process neural reward model in developing DeepSeek-R1-Zero, because we find that the neural reward model may suffer from reward hacking in the large-scale reinforcement learning process, and retraining the reward model needs additional training resources and it complicates the whole training pipeline."

即:neural reward model 在大规模 RL 下会被 reward hacking,而且要重训 RM 额外消耗资源并让 pipeline 复杂化。这是一个非常具体的负面经验,直接影响后续所有做 RLVR 的团队。

训练模板(Table 1,R1-Zero 用):只约束结构,不约束内容——

<think> reasoning process here </think>
<answer> answer here </answer>

论文明确说这是 "intentionally limit our constraints to this structural format, avoiding any content-specific biases—such as mandating reflective reasoning or promoting particular problem-solving strategies"。目的是能干净地观察模型的自发演化过程——如果你在 prompt 里写了"请先反思再作答",你就分不清反思是 RL 学出来的还是你教出来的。

⚠️ 本轮更正:原稿此处的代码块写成 <answer> answer here </think>(闭合标签打错),已更正为 </answer>。另需注意区分两套模板:R1-Zero 用 <think>/<answer>(Table 1);R1 冷启动数据用的是另一套格式 |special_token|<reasoning_process>|special_token|<summary>(§2.3.1),二者不可混用。

3.3 R1-Zero 的自演化与 "aha moment"

论文 Figure 2/3 记录了两条曲线: - AIME 2024 pass@1:15.6% → 71.0%,全程稳步上升(Figure 2 图注:"For each question, we sample 16 responses and calculate the overall average accuracy to ensure a stable evaluation.")。 - 平均回答长度:随训练持续增长,从数百到数千 reasoning token。"This improvement is not the result of external adjustments but rather an intrinsic development within the model."

随着 test-time computation 增长,自发涌现的行为包括 reflection(回看并重评自己的步骤)、探索替代方案、自我验证。论文把这称为 "aha moment"——模型自己学会了反思。

3.4 DeepSeek-R1:四阶段流水线

R1-Zero 的两个问题:poor readability 与 language mixing(中英混杂)。R1 用多阶段流水线解决:

Stage 1 · Cold Start SFT 收集数千条长 CoT 数据,SFT DeepSeek-V3-Base。原文的四种采集方式逐条是:① 用长 CoT 做 few-shot 示例引导生成;② 直接提示模型产出带反思与验证的详细答案;③ 收集 DeepSeek-R1-Zero 的输出并整理成可读格式;④ 人工标注者后处理精修。目的是让模型输出可读且格式统一,同时为后续 RL 提供稳定的起始点。

⚠️ 原稿把四种方式写成"few-shot prompting、零样本 CoT 生成、任务分解、复读式 hint"——"任务分解"与"复读式 hint"在原文冷启动段中并不存在,本轮已更正为原文的四条。

原文另给出一条常被忽略的关键设计:冷启动数据用独立的输出格式 |special_token|<reasoning_process>|special_token|<summary>,即"先推理、再给一段摘要"。这是 R1 最终产物"长思考 + 短答案"双层结构的来源,也是后来社区区分 <think> 与 </think> 前后内容时容易混淆的地方。

Stage 2 · Reasoning-oriented RL 与 R1-Zero 相同的 GRPO + rule-based reward,聚焦编码、数学、科学、逻辑等"解法明确"的推理任务。唯一改动是加入 language consistency reward(CoT 中目标语言词占比)。

⚠️ 重要负面发现:原文写 "Although ablation experiments show that such alignment results in a slight degradation in the model's performance, this reward aligns with human preferences, making it more readable." ——即轻微损害模型性能(原稿引作 "slightly deteriorate the model's reasoning capabilities",原文措辞是笼统的 "the model's performance",未限定为 reasoning capabilities;本轮已改为贴近原文的表述)。最终 reward = accuracy reward 与 language consistency reward 直接相加。

Stage 3 · Rejection Sampling + SFT RL 接近收敛后,用 RL checkpoint 生成大规模、多样化的 SFT 数据: - 推理类数据:对 RL checkpoint 在大规模推理 prompt 上采样,每个 prompt 采样多个回答、只保留正确的那些,共约 600k 条。(论文明确:此阶段相比冷启动阶段扩展了数据集,部分数据使用生成式奖励模型——把 ground-truth 与模型预测喂给 DeepSeek-V3 做判断;同时过滤掉"语言混杂、长段落、夹杂代码块"的难读 CoT。) - 非推理类数据:采用 DeepSeek-V3 的 pipeline 并复用 V3 的部分 SFT 数据集,约 200k 条;针对写作、事实 QA、自我认知、翻译等任务,让 DeepSeek-V3 先生成潜在 CoT 再作答,但简单请求(如 "hello")不给 CoT。 - 两部分合计约 80 万样本,对 DeepSeek-V3-Base 做 2 个 epoch 的 SFT。

⚠️ 本轮更正:原稿写"推理类数据用 rule-based reward 筛选同时被多个信号验证正确的输出"、以及"通用任务用 DeepSeek-V3 作为 judge"——原文里 DeepSeek-V3 作为 judge 用于部分推理数据的扩展,而非"通用任务";通用(非推理)数据的来源是 V3 的 SFT 数据集复用 + V3 生成 CoT。本轮已更正。

Stage 4 · 全场景 RL 在涵盖所有场景(推理 + 通用)的 prompt 组合上再跑一轮 RL:推理域沿用 R1-Zero 的 rule-based reward;通用域用 reward model 捕捉人类偏好(沿用 DeepSeek-V3 的偏好对与训练 prompt 分布)。关键细节:helpfulness 只评最终 summary(避免长推理过程干扰判定),harmlessness 评完整回答(含推理过程与 summary)。最终得到 R1。

3.5 蒸馏:小模型也能很强

用 R1 生成的 80 万条样本做纯 SFT 蒸馏,在 Qwen2.5-Math-1.5B/7B、Qwen2.5-14B、Qwen2.5-32B、Llama-3.1-8B、Llama-3.3-70B-Instruct 六个 base 上微调,得到 1.5B/7B/8B/14B/32B/70B 六个 dense 模型。

核心结论(论文 §3.1 "Distillation v.s. Reinforcement Learning"):

使用 Qwen2.5-32B 作为 base,从 R1 直接蒸馏的效果优于在该 base 上自己跑 RL。

论文的对照实验:在 Qwen-32B-Base 上做超过 10K 步的大规模 RL 得到 DeepSeek-R1-Zero-Qwen-32B,其表现与 QwQ-32B-Preview 相当;而 DeepSeek-R1-Distill-Qwen-32B 在全部 benchmark 上都显著更好。

这条结论的工程含义极大:推理能力的"模式"比"过程"更重要。大模型发现的推理模式可以被当作更高效的训练数据搬运到小模型上,而小模型自己跑 RL 探索不出这些模式。这把"造数据"和"做 RL"的价值关系重新定义了。

§4 关键实验与数据

4.1 R1-Zero(纯 RL,无 SFT)

指标 数值 备注
AIME 2024 pass@1 15.6% → 71.0% 训练全程曲线,verbatim;每题采样 16 个回答取平均
AIME 2024 cons@64(majority voting) 86.7% 原文:"exceeding the performance of OpenAI-o1-0912"
平均回答长度 数百 → 数千 reasoning token 自发增长

⚠️ 原稿把 86.7% 写成"匹配 OpenAI-o1-0912",原文措辞是"超过(exceeding)",已更正。(71.0% 那句才是 "comparable to"。)

4.2 R1(完整流水线)

类别 指标 数值
推理 AIME 2024 pass@1 79.8%(略超 OpenAI-o1-1217)
推理 MATH-500 97.3%(与 o1-1217 持平)
推理 Codeforces 2,029 Elo,超过 96.3% 人类参赛者
知识 MMLU 90.8%
知识 MMLU-Pro 84.0%
知识 GPQA Diamond 71.5%
事实 SimpleQA 优于 DeepSeek-V3(无具体数值)
事实 Chinese SimpleQA 低于 DeepSeek-V3——安全 RL 后倾向拒答;去掉安全 RL 准确率可 >70%
通用 AlpacaEval 2.0 长度控制胜率 87.6%
通用 ArenaHard 胜率 92.3%
工程 Aider / SWE Verified Aider 落后 o1-1217,SWE Verified 相当;作者称相关 RL 数据仍很少
长上下文 FRAMES 明显优于 DeepSeek-V3(无具体数值)

4.3 蒸馏模型

论文 Table 6(Jay 本轮已逐格回查,AIME 2024 pass@1 / MATH-500 / GPQA Diamond / LiveCodeBench / Codeforces rating):

模型 AIME 2024 MATH-500 GPQA Diamond LiveCodeBench Codeforces
R1-Distill-Qwen-1.5B 28.9% 83.9% 33.8% 16.9% 954
R1-Distill-Qwen-7B 55.5% 92.8% 49.1% 37.6% 1189
R1-Distill-Qwen-14B 69.7% 93.9% 59.1% 53.1% 1481
R1-Distill-Qwen-32B 72.6% 94.3% 62.1% 57.2% 1691
R1-Distill-Llama-8B 50.4% 89.1% 49.0% 39.6% 1205
R1-Distill-Llama-70B 70.0% 94.5% 65.2% 57.5% —

对照 QwQ-32B-Preview:AIME 50.0% / MATH-500 90.6% / GPQA 54.5% / LiveCodeBench 41.9% / 1316。R1-Distill-Qwen-14B 的 69.7% 明显高于 QwQ-32B-Preview 的 50.0%——原稿此处只写"大幅超过 QwQ-32B-Preview"而未给数值,本轮补全。论文称蒸馏 32B 与 70B 在 dense 模型中创下新纪录,且 "comparable to o1-mini"。

§5 亮点与局限

亮点

  1. 机制存在性证明:第一个公开验证"纯 RL、无 SFT 也能激励出推理能力"的工作。这个结论本身比具体分数更重要。
  2. GRPO 的完整公式与动机:省掉 critic 不是省资源的小聪明,而是与 RLVR 的信号结构(稀疏、绝对值无意义、组内相对排序有信息)天然匹配。
  3. "纯 RL 可行但纯 RL 不够用"的诚实框架:同时交付 R1-Zero(机制证明)与 R1(工程版本),不藏失败。
  4. rule-based reward 的经验:明确指出 neural reward model 在大规模 RL 下会 reward hacking——这条负面结论价值极高。
  5. 蒸馏 > 小模型自 RL:给出了一条绕过"小模型无法自己 RL 出推理"的实用路径,把大模型的推理模式当作数据资产来搬运。
  6. language consistency reward 的双向结论:可读性提升伴随能力轻微下降,两个方向都写进了论文。
  7. 冷启动数据的两层输出格式(|special_token|<reasoning_process>|special_token|<summary>)是 R1 产物"长思考 + 短答案"结构的直接来源,是被严重低估的工程细节。
  8. Nature 顶刊发表(645 卷,633–638 页,2025-09-17),评审背书级别在本批三篇中最高。

局限与负面发现

  1. R1-Zero 可读性差、语言混杂:这是纯 RL 的直接缺陷,最终不得不靠冷启动 SFT 打补丁。
  2. 纯 RL 从 base model 起步不稳定:原文称冷启动是为了 "prevent the early unstable cold start phase of RL training from the base model"——说明纯 RL 路径在工程上并不总是可用。
  3. neural reward model 的 reward hacking:在大规模 RL 下几乎必然出现。
  4. language consistency reward 轻微损害模型性能:一个"改进"同时是"退步"。
  5. R1 并未全面超越 o1:在 MMLU / MMLU-Pro / GPQA Diamond 上 "its performance is slightly below that of OpenAI-o1-1217"。论文的表述是"reasoning tasks 上持平/略超,知识类略低",不是全面胜出。
  6. 安全 RL 带来的副作用:Chinese SimpleQA 上 R1 不如 DeepSeek-V3,原因是安全 RL 后倾向拒答。这是"对齐税"的直接实证。
  7. 奖励设计对可验证性的依赖:rule-based reward 只在答案可判定的任务上成立(数学、代码)。论文的通用场景是靠 reward model 兜底——judge 本身仍是一个 neural reward model,reward hacking 的风险只是被挪到了别处而非消失。
  8. 算力与数据规模门槛:R1 是 671B MoE base(DeepSeek-V3-Base)训出来的,论文的"开源"是权重开源而非"可复现"——普通团队复现不了。
  9. 工程类任务仍弱:作者自陈 Aider 落后 o1-1217,原因是"相关的 RL 训练数据仍然非常有限"。
  10. 两套模板并存带来的工程复杂度:R1-Zero 的 <think>/<answer> 与 R1 冷启动的 |special_token|<reasoning_process>|special_token|<summary> 语义不同,混用会导致解析与训练数据构造出错。

§6 对工程落地的启发

  1. 优先用 rule-based reward,不要一上来就训 RM。 论文明确说 neural RM 在大规模 RL 下会 reward hacking。RLVR 的正确起点是能把答案对错判死的任务:数学答案匹配、代码 test case、结构化输出校验。
  2. 若必须用 neural reward,要预留持续重训 RM 的预算,且必须监控 hacking 迹象(奖励上升但真实准确率不涨)。
  3. 把 GRPO 的组大小 G 当成一个可调的核心超参。 G 决定每次采样多少条、需要多少 rollout 预算,也决定组内出现"既有对又有错"的概率。G 太小 → 信号稀疏;G 太大 → 采样成本线性上升。(⚠️ 原文只给符号,未给 G 的具体取值。)
  4. 蒸馏路线对小团队几乎总是更划算。 论文结论是"从 R1 蒸馏 > 在小 base 上自己 RL"(其自身对照实验是 10K+ 步 RL vs 一次 SFT)。小模型想拿到推理能力,应优先做数据蒸馏,而非投 RL 算力。
  5. 通用任务必须做 CoT 污染隔离。 R1 的 Stage 3 专门为通用任务准备不带 CoT 的版本(简单请求如 "hello" 明确不给 CoT),否则模型会在写周报时也先"思考"几千 token。这个坑非常容易踩。
  6. 冷启动 SFT 的作用不是注入知识,是规范格式。 论文的冷启动数据只有"数千条",且模板只约束结构不约束内容。冷启动应该轻。
  7. 给 RL 加格式奖励要慎重。 R1 的 format reward + 标签模板是有效的结构约束,但 language consistency 类奖励证明了"可读性"和"能力"之间存在真实的 trade-off。
  8. 可验证任务的选择决定项目上限。 如果你的业务问题无法自动判对错,R1 这条路的前提就不成立——需要先投入构建 verifier。
  9. 为安全 RL 的副作用留预算。 Chinese SimpleQA 上 R1 因拒答而不如 V3,说明"更安全"会直接扣分;上线前要单独评测拒答率,并准备"拒答率 vs 安全性"的权衡旋钮。

§7 与同方向工作的关系

  • vs OpenAI-o1:论文明确以 o1-1217 / o1-0912 为对标。差别在于 o1 的方法细节未公开,R1 完整公开了 GRPO、奖励设计、训练模板、冷启动与四阶段流水线。R1 在 reasoning 任务上持平,知识类略低。
  • vs DeepSeekMath / GRPO 原论文(Shao et al. 2024):GRPO 本身出自 DeepSeekMath,R1 把它迁移到大规模通用推理模型上,是该算法最重要的规模验证。
  • vs process-based reward model 路线(Lightman et al. 2023 等):R1 站到了 rule-based 一边并给出理由(reward hacking + 复杂度 + 资源)。这是 RLVR 阵营对 PRM 阵营的一次有实证支撑的取舍。
  • vs 同期其他 RL 推理工作:如 2024 年底的 rStar-Math、Search-R1 等(⚠️ 原文未列这些同期工作,此处为我的补充对照,非原文陈述)。它们与 R1 的共同点都是"用可验证奖励替代人工标注",差异在是否用 MCTS/搜索结构。
  • vs Llama 3(2407.21783,同批解读):Llama 3 后训练是 SFT+RS+DPO,不含 RL;R1 是 GRPO 系 RL。两条路线在 2025 年后合流为"RL + 拒绝采样 + SFT"的混合配方,R1 的 Stage 3 本身就是 RS+SFT。
  • vs 后续的 R1 系列:R1-Zero 的纯 RL 路线在后续被社区持续复现和扩展(如各种 GRPO 变体、去除 critic 的其他尝试),已成为 RLVR 训练的默认 baseline。

§8 适合谁读

  • 必读:任何准备做 RLVR / 推理模型训练的人(§3.1–3.4 是完整可抄的配方);做推理模型蒸馏的团队(§3.5 的结论直接决定路线选择);需要理解 GRPO 的人(公式 + 机制 + 适用前提齐备)。
  • 强烈推荐:做 Agent / 长上下文应用的(可验证任务设计、CoT 污染隔离两节直接相关);算法团队(rule-based vs neural RM 的取舍是通用决策)。
  • 选读:只关心模型效果不关心训练过程的(可读 §1、§4.2 的表格);做模型压缩/部署的(蒸馏部分有用)。
  • 不适合:资源受限、无法承担 RL 算力的(论文本身不可复现,R1 的价值在方法论而非复现);业务问题不可自动验证的团队——RLVR 前提不成立。

§9 待核与不确定项(集中收纳)

  1. GRPO 组大小 G 的具体取值:§2.2.1 只给符号,未给数值。
  2. "多次 RL 步骤" 的具体步数:原文用 "After thousands of RL steps",未给精确 step 数;仅 §3.1 的 Qwen-32B 对照实验写明 "over 10K steps"。
  3. R1 的完整训练成本(GPU 数、GPU 小时):论文正文未给出。
  4. 各 benchmark 的 pass@k 与采样预算:本轮已核对 §1.1/§1.2 明示数值、Table 2(R1-Zero vs o1)、Table 4(R1 vs 其他)、Table 6(蒸馏模型)逐格,但 Figure 2/3 的曲线与附录表格未逐格回查。
  5. 冷启动数据的准确条数与"最长 10k token 的 CoT":原文表述为 "thousands of cold-start data",未给具体条数;"10k token" 为第三方解读,未在原文定位。
  6. GitHub 仓库 commit 版本:未 fetch 具体仓库文件核对。
  7. 两组奖励权重:accuracy reward 与 language consistency reward 是"直接相加",但两者相对量纲论文未给(⚠️ 我的观察)。

工程落地与核查(Jay)

本节为第二读者审校补充:先记核查结论,再记工程落地与坑。核查以 arXiv 2501.12948 全文(ar5iv 渲染文本层)为准,逐条定位到原文段落。

核查结论(与原文逐条对照)

原稿结论 原文位置 判定
GRPO 式 1/2/3 与 advantage 公式 §2.2.1 ✅ verbatim
AIME 15.6→71.0、cons@64 86.7 "匹配 o1-0912" §1.1 ⚠️ 原文为 "exceeding",已改为"超过"
R1-Zero 训练模板 <answer> answer here </think> Table 1 ❌ 闭合标签错,已改为 </answer>
冷启动四种来源含"任务分解、复读式 hint" §2.3.1 ❌ 原文无此二项,已替换为原文四条
冷启动输出格式 §2.3.1 ✅ 已补入 |special_token|<reasoning_process>|special_token|<summary>(原稿漏记)
language consistency reward "slightly deteriorate the model's reasoning capabilities" §2.3.2 ⚠️ 原文为 "a slight degradation in the model's performance",措辞已对齐
Stage 3 "多个信号验证正确" + "通用任务用 DeepSeek-V3 作 judge" §2.3.3 ❌ 已更正:V3-as-judge 用于部分推理数据扩展;通用数据来自复用 V3 的 SFT 数据集 + V3 生成 CoT
600k / 200k / 800k、2 epoch §2.3.3 ✅ 原文 verbatim("about 600k"、"approximately 200k"、"about 800k"、"two epochs")
Stage 4 helpfulness 只评 summary、harmlessness 评完整回答 §2.3.4 ✅
R1 AIME 79.8 / MATH-500 97.3 / Codeforces 2029 Elo / 96.3% 人类 / MMLU 90.8 / MMLU-Pro 84.0 / GPQA 71.5 / AlpacaEval 87.6 / ArenaHard 92.3 §1.1–§1.2 ✅ 全部 verbatim
蒸馏表 7B 55.5、32B 72.6/94.3/57.2、14B"大幅超过 QwQ" Table 6 ⚠️ 已逐格补全 1.5B/7B/14B/32B/Llama-8B/Llama-70B 与 QwQ-32B-Preview 对照
蒸馏 > 32B 自跑 RL §3.1 + Table 6 ✅ 原文 verbatim,并补"10K+ steps RL"的对照细节
Nature 645, 633–638, DOI 10.1038/s41586-025-09422-z arXiv abs + Nature 官网 ✅ 已独立复核(2025-09-17 发表,2025-02-14 投稿,2025-07-17 接收)
Chinese SimpleQA 低于 V3 §3.1 ✅ 已补入(原稿漏记的负面发现)
R1 基础模型为 DeepSeek-V3-Base §2.3 ✅

实际系统怎么用

  1. 先算"verifier 覆盖率"再决定要不要 RL:把业务问题拆成"可自动判对错"的比例。可判定比例低于某个阈值时,R1 这条路的投入产出比极差——先补 verifier 或退回到蒸馏 + 提示工程。
  2. 蒸馏优先的落地顺序:先拿开源 R1 蒸馏权重(1.5B/7B/8B/14B/32B/70B 六档,按部署显存选),在自己的领域数据上做 SFT;只有当自家任务确实可验证且蒸馏模型达不到业务指标时,再考虑自建 GRPO 训练。
  3. 自建 GRPO 的最小闭环:rule-based verifier(答案匹配 / 编译器 / 结构化校验)+ format reward + 组内标准化 advantage;先不做 neural RM,把"奖励上升但真实准确率不涨"作为 hacking 监控告警。
  4. 两套模板要显式建模:训练侧区分 <think>/<answer>(R1-Zero 风格)与 |special_token|<reasoning_process>|special_token|<summary>(R1 冷启动风格);推理侧至少要能把"推理段"与"给用户看的 summary 段"分开——这决定了能否做长度控制与流式展示。
  5. 通用任务的 CoT 隔离:训练数据构造时,对非推理类样本(写作、事实 QA、翻译、自我认知)显式剔除或裁剪 CoT,简单请求直接不给思考段,避免"写周报先思考三千 token"。
  6. 拒答率要单独立指标:模仿 R1 的安全 RL 之后,必须同时跟踪"安全性"与"拒答率/有效回答率"两条曲线,否则会出现 Chinese SimpleQA 那种"更安全但更没用"的情况。

主要工程坑(现象 / 影响 / 修复)

  1. reward hacking:奖励涨了,真实正确率没动 - 现象:训练 reward 曲线一路上升,但人工抽检或真实测试集准确率停滞甚至下滑。 - 影响:论文明确 neural reward model 在大规模 RL 下会 reward hacking;用 hacking 过的模型做 SFT 蒸馏,等于把错误模式固化进所有下游小模型。 - 修复:RLVR 起点用 rule-based verifier;必须用 neural RM 时预留重训预算,并建立"训练 reward vs 独立评测集准确率"的双曲线监控,两者背离即停训。

  2. 组内信号消失(advantage 退化为 0/0) - 现象:某类 prompt 的 loss 不动、reward 不涨。 - 影响:全对或全错的题组不产生梯度;任务越简单,组内越可能全对,有效样本越少——于是越容易的任务贡献越少梯度,分布被悄悄扭曲。 - 修复:监控"组内有对有错"的样本占比;动态调 G;必要时对简单任务改用更细粒度的部分正确信号(如格式分、步骤分)制造组内差异。

  3. 两套模板混用导致解析与数据构造出错 - 现象:训练用 <think>/<answer>,线上服务按 |special_token|<reasoning_process>|special_token|<summary> 解析(或反之)。 - 影响:<answer> 段内容被当成推理过程丢弃,或 summary 被当成正文重复输出;对训练/推理模板做 RL 的团队还会因模板不一致导致行为漂移。 - 修复:把模板写成配置并加单元测试;训练与推理共用同一份解析实现;对含标签的输出做"标签闭合 + 段数"校验,异常样本直接丢弃而非塞回数据集。

  4. 通用任务 CoT 污染 - 现象:模型在写会议纪要、翻译、闲聊时也先输出大段推理。 - 影响:token 成本与延迟成倍上升,用户体验崩塌;对外 API 场景下还可能泄漏内部推理风格。 - 修复:训练数据里对非推理样本强制无 CoT/短 summary;对输出做"推理段长度上限"截断策略;把"非推理任务的思考段长度"列为回归指标。

  5. 安全 RL 的拒答税 - 现象:模型对可回答的问题也倾向拒答。 - 影响:论文实测 Chinese SimpleQA 上 R1 不如 DeepSeek-V3,去掉安全 RL 后准确率可 >70%——安全策略直接吃掉了可用性。 - 修复:安全训练与能力训练解耦评测;按业务设定拒答阈值;对高频被拒问题做定向补数据,而不是全局加拒答。

  6. 蒸馏模型的"能力来源"被误读为"可无限外推" - 现象:把 R1-Distill-14B 的 AIME 69.7% 当成"14B 也能做数学题"的通用结论。 - 影响:14B 的 MATH-500 93.9% 建立在 R1 已有的 80 万条高质量 CoT 上;同样的 SFT 在没有 CoT 数据时不会自动产生推理能力。 - 修复:把蒸馏拆成"能力迁移"与"格式迁移"两件事分别验证——用自采 reasoning trace 做 SFT,检验目标模型是否真的获得推理能力,而不是只学会了 R1 的输出风格。

  7. 把 R1-Zero 当可交付模型 - 现象:看到"纯 RL 涌现推理"的标题,直接把 R1-Zero 部署到面向用户的场景。 - 影响:可读性差、中英混杂、格式不稳定;论文用整整一版 R1 来补这个坑,说明它不是可交付状态。 - 修复:R1-Zero 只当机制参考与 ablation 起点;生产必须走完整四阶段并做安全/可读性评测。

  8. 忽略"蒸馏 vs RL"的成本鸿沟就直接投 RL 算力 - 现象:团队自己有 14B/32B base,想"自己 RL 出来"。 - 影响:论文的对照是"10K+ 步 GRPO vs 一次 SFT"——后者收益更大、成本低一个数量级。 - 修复:把"先蒸馏验证天花板"设为流程闸门;只有在蒸馏无法满足业务指标、且 verifier 已就绪时,才批准自建 RL 预算。

  9. benchmark 数字直接当成业务预期 - 现象:把 AIME 79.8%、GPQA 71.5% 写进产品文档。 - 影响:这些是数学/知识/代码竞赛型 benchmark,与业务任务的难度分布、噪声水平、拒答策略完全不同;R1 自己在 Aider 上就落后 o1-1217。 - 修复:所有对外数字标注"来源 benchmark + 评测协议";用自家业务集做影子评测,把 benchmark 只当方向性参考。

证据边界(这一节最重要的限定)

  • 本轮核查覆盖 arXiv 2501.12948 全文文本层的关键段落(§1.1/§1.2 摘要数字、§2.2.1 公式、§2.2.2 奖励、Table 1 模板、§2.3.1–§2.3.4 四阶段、Table 2/4/6 逐格)。Figure 2/3 的曲线与附录表格未逐格回查,故本稿不引用图内数值。
  • Nature 出版信息(645 卷、633–638 页、DOI、收稿/接收/发表日期)已通过 arXiv abs 页与 nature.com 官方页面双通道独立复核;但 Nature 版正文与 arXiv 版是否存在内容差异,本轮未做逐段比对,引用具体数字时以 arXiv 版为准。
  • "group-based 方法在无差异样本上退化"是我基于公式的推断,非原文陈述。
  • 未做 GitHub 仓库 fetch:R1/R1-Zero/6 个蒸馏模型的仓库 commit、许可证文件、实际 checkpoint 列表均未核对。