DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
Paper: arXiv:2501.12948 Code: deepseek-ai/DeepSeek-R1 Code reference:
main@0cf78561(2025-04-09);官方仓库仅包含 README、论文 PDF 与基准图,不含训练/推理实现源码
1. Motivation(研究动机)
这篇论文要解决的核心问题不是“如何再收集更多高质量 CoT 标注”,而是“是否可以不用人工 reasoning trace,也把大模型的推理能力通过 RL 自发激发出来”。作者认为当时主流的 reasoning 增强路径高度依赖人工示范:要么在 prompt 里喂 few-shot CoT,要么在 post-training 阶段做基于人工长推理轨迹的 SFT。这样的路径有两个明确瓶颈。第一,人工标注成本和规模瓶颈很重。复杂数学、编程、STEM 推理任务的高质量长链路示范本身就昂贵,而且越是难题,人工示范越难覆盖。第二,人工示范本质上把模型约束在“模仿人类已有思维模式”上,这会把探索空间锁死。
作者明确提出一种判断:如果推理轨迹本身不被人类模板约束,只用最终答案正确性作为反馈,模型也许能探索出不同于人类示范、但同样有效甚至更强的 reasoning pattern。论文还隐含点出一个常被忽略的问题:传统 RLHF 或 instruction tuning 更擅长把模型调成“会配合用户”,却不直接优化“为得到正确答案愿意投入多少思考 token”。如果训练目标里没有对复杂可验证任务的持续压力,模型通常会偏向短答、稳妥答或者表面流畅答,而不会主动发展出长链路搜索、分支试探与中途纠错。因此,作者把 reasoning capability 看成一种可以被专门激励出来的行为模式,而不是 base model 自然带有、只差 prompt 激活的静态属性。
这个视角很关键,因为它把 post-training 的问题从“如何把答案说得更像人”改写成“如何让策略在高难验证环境里形成更有效的求解习惯”。
因此论文的具体目标分成两层。第一层是训练一个完全不依赖预先 SFT 的 DeepSeek-R1-Zero,验证“纯 RL 是否足以催生自反思、校验、回溯、策略切换等高级推理行为”。第二层是把这种“纯 RL 生长出来的 reasoning 能力”产品化,解决 R1-Zero 可读性差、语言混杂、泛化到非推理场景能力弱的问题,最终做成可服务、可蒸馏的 DeepSeek-R1。 这个问题值得研究,因为它直接触及 reasoning model 的训练范式。如果纯 RL 就能稳定长出长 CoT 与复杂推理,那么 reasoning 不再必须建立在昂贵的人类过程监督之上;与此同时,如果这种能力还能进一步蒸馏给更小模型,就意味着“先用大模型 RL 探索 reasoning,再把能力迁移出去”会成为一条新的后训练路线。
2. Idea(核心思想)
论文最核心的 insight 是:对可验证推理任务,未必需要过程监督,只要给模型一个足够稳定的结果奖励和一个允许长时间思考的 RL 环境,模型会自发学出更长、更反思式的 reasoning 行为。换句话说,作者不是在教模型“应该怎样想”,而是在设计一个让模型自己长出“愿意多想、会回头检查、会换路尝试”的优化过程。
DeepSeek-R1 的关键创新不只是“把 GRPO 用在 reasoning”,而是把整个 post-training 拆成多阶段:先用纯 rule-based RL 得到 R1-Zero 的 reasoning 内核,再用冷启动 SFT、reasoning-oriented RL、rejection sampling + SFT、以及混合 reward 的第二轮 RL,把这种能力逐步变成可读、可对齐、可泛化的成品模型。更具体地说,这个设计把“能力发现”和“能力整理”解耦了。R1-Zero 阶段只回答一个科学问题:不给过程示范,模型会不会自己长出强推理;
后续 R1 阶段才回答工程问题:怎样把这种能力压缩成用户可接受、语言一致、并且不会明显破坏通用 assistant 行为的策略。它和传统 supervised CoT 路线的根本差异在于:传统方法通过人工轨迹告诉模型“正确思路长什么样”,而 DeepSeek-R1 通过 reward 告诉模型“什么结果值得保留”。与只做 instruction alignment 的 DeepSeek-V3 相比,R1 系列把大量 post-training 预算押在 reasoning 可验证任务上,因此在数学、代码、STEM 和长 CoT 驱动的问题上得到明显收益。
3. Method(方法)
3.1 整体框架
DeepSeek-R1 的方法由两个相互衔接的系统组成。第一个系统是 DeepSeek-R1-Zero:直接从 DeepSeek-V3-Base 出发,不做 SFT warm start,只做基于 GRPO 的纯 RL。第二个系统是正式版 DeepSeek-R1:把 R1-Zero 中长出来的 reasoning 能力通过多阶段后训练整理成更可读、更稳定、对非推理任务也更友好的模型。
Figure 1 解读:这张图给出 DeepSeek-R1 的完整多阶段 pipeline。起点是 DeepSeek-V3-Base,先通过纯 RL 得到 R1-Zero;然后收集少量冷启动长 CoT 数据做第一次 SFT 得到 R1-Dev1,再做面向 reasoning 的 RL 得到 R1-Dev2;接着对 reasoning 与非 reasoning 数据做 rejection sampling 和第二次 SFT,得到 R1-Dev3;最后再做混合 reasoning/general reward 的第二阶段 RL,得到最终 DeepSeek-R1。这张图最重要的信息不是“有很多 stage”,而是作者把“探索 reasoning 能力”和“把 reasoning 能力变成产品级行为”明确拆开了。
从方法论上看,这条 pipeline 反映了作者的判断:纯 RL 很擅长把 reasoning 能力从 base model 里“激活出来”,但不天然保证语言整洁、风格稳定、指令对齐和非推理场景表现。所以他们没有试图用一轮 RL 同时解决所有问题,而是把不同目标分给不同阶段。
如果把这条路线抽象成控制变量实验,R1-Zero 相当于尽量少加先验,只保留“可验证任务 + 可计算奖励 + 长上下文 rollout”三件事,用来回答 RL 是否足以催生 reasoning;而正式版 R1 则是在确认答案为“可以”之后,再分阶段加入可读性、语言一致性、helpfulness 与 safety 约束。这样的阶段切分让作者能够比较清楚地区分:哪些收益来自 reasoning optimization,哪些收益来自产品化对齐。
3.2 DeepSeek-R1-Zero:纯 RL 激发 reasoning
R1-Zero 的训练模板非常简单:要求模型把推理过程放进 <think>...</think>,把最终答案放进 <answer>...</answer>。作者故意只加结构约束,不加内容层面的人工风格约束,目的是尽量观察 RL 自发长出的 reasoning 形态,而不是把输出压成某种人类预设格式。
其 RL 优化器使用 GRPO。对于每个问题 ,从旧策略 采样一组输出 ,再用组内相对优势做更新: 其中优势项由组内奖励标准化得到: KL 项采用论文给出的形式: $ D_{\text{KL}}(\pi_\theta|\pi_{\text{ref}})
\frac{\pi_{\text{ref}}(o_i|q)}{\pi_\theta(o_i|q)}
-\log\frac{\pi_{\text{ref}}(o_i|q)}{\pi_\theta(o_i|q)}-1.
Reward_{\text{rule}}=Reward_{\text{acc}}+Reward_{\text{format}}.
$
accuracy reward 用于验证最终答案是否正确;对数学题可用解析/比对规则,对代码题可用编译与测试用例,对逻辑和 STEM 题可用标准答案。format reward 只检查 <think> 标签等格式是否满足要求。作者明确拒绝在 reasoning 任务中使用神经 reward model,因为他们观察到大规模 RL 下神经 RM 容易 reward hacking,而且会引入额外训练复杂度。 这部分的直觉非常重要:作者不是让 reward 告诉模型“什么是好的推理过程”,而是只告诉模型“哪种输出最后更对”。如果模型为了提高最终正确率而自动学会更多自检、回溯和重试,那这些行为就不是被硬编码出来的,而是优化自然涌现的。 这也解释了为什么论文非常强调“可验证”任务分布。只有当答案能够被规则稳定判定时,极简 reward 才足以支撑大规模 RL;如果任务本身不可验证、只能依赖偏好判断,那么 R1-Zero 这种只靠 rule reward 的训练信号就不成立,后续也必须重新引入 reward model 或人工偏好监督。
3.3 R1-Zero 的自演化现象
Figure 2 解读:这张图展示 R1-Zero 在训练中的 AIME 2024 表现变化。pass@1 从 15.6% 提升到 77.9%,而 cons@16 可到 86.7%。图想说明的不只是“分数涨了”,而是只靠最终 correctness reward,模型就能持续学会更强的推理策略,而不是停留在模板化输出上。
Figure 3 解读:这张图展示训练过程中平均响应长度持续增长,并在 8.2k step 附近出现跳变。作者把它解释为模型主动增加 thinking time 来换取更高成功率。也就是说,长 CoT 在这里不是 prompt 强塞出来的,而是策略优化的副产品:题越难,模型越倾向于多生成 token 来做验证、反思和 alternative exploration。
论文还特别强调 aha moment:中间版本开始频繁使用 “wait” 之类反思词,意味着模型不只是变长,而是在 reasoning 结构上出现了明显的自我修正模式。这是作者支持“RL 可以催生高级 reasoning behavior”的主要现象证据。
3.4 从 R1-Zero 到 DeepSeek-R1:多阶段产品化
R1-Zero 的问题是可读性差、语言混杂,而且训练几乎只围绕 reasoning 可验证任务,因此写作、开放问答、一般指令对齐都不够好。DeepSeek-R1 用四个阶段解决这些问题。
3.4.1 冷启动 SFT
作者先收集少量长 CoT 冷启动数据,把 R1-Zero 的“会想”变成“想得更像可读的对话式解释”。这些数据不是大规模人工逐题从零写出,而是先用高温度的 R1-Zero 生成多条推理轨迹,筛出答案正确且格式可读的样本,再用 DeepSeek-V3 对 reasoning 和 summary 做润色,特别解决语言混杂问题,并补出面向用户的人类可读总结。
这一阶段的目标不是提升 reasoning 上限,而是给后续 RL 一个更“产品化”的 actor 起点。论文明确说这是 product-driven 决策,因为用户更偏好第一人称、分段短、对话感强的 thinking process。
3.4.2 第一阶段 RL:reasoning-focused RL + 语言一致性奖励
在 R1-Dev1 上,作者继续做面向 reasoning 的 RL。大体参数沿用 R1-Zero,但额外加入 language consistency reward:
这个奖励衡量 CoT 中目标语言词占比,直接针对 language mixing。作者也坦承它会轻微降低性能,但能显著改善可读性,因此更符合真实产品偏好。
这里的机制很直接:R1-Zero 已经证明“纯 correctness reward 可以长出 reasoning”;第一阶段 RL 则在不毁掉 reasoning 的前提下,把“语言一致”和“可读”作为额外约束推回策略。
3.4.3 Rejection sampling + 第二次 SFT
在 R1-Dev2 之后,作者做一次更大规模的 supervised consolidation。Reasoning 侧,用第一阶段 RL checkpoint 做 rejection sampling,扩成约 600k reasoning 样本;非 reasoning 侧,复用 DeepSeek-V3 的一部分 SFT 数据,并加入写作、事实问答、自我认知、翻译,以及软件工程相关任务,组成约 200k 非 reasoning 样本,总计约 800k SFT 数据。
这一步的作用是把前一阶段 RL 学到的强推理行为固化下来,同时给模型注入大规模非推理能力,避免模型变成一个“只会在数学和代码里长思考”的专用体。
3.4.4 第二阶段 RL:混合 reasoning/general reward
最终 RL 阶段在 R1-Dev3 上进行,reward 设计为:
其中
也就是说,reasoning 数据继续用 rule-based reward,general 数据则依赖 reward model。这里正式引入两个模型化奖励:helpfulness RM 和 safety RM。 helpfulness RM 的训练数据是 66k preference pairs,通过 DeepSeek-V3 按 arena-hard 格式评判、每对回答四次打乱 A/B 顺序后求平均,且只保留分差 的样本。safety RM 用 106k safe/unsafe 标注样本做 point-wise 训练。helpfulness 只评 final summary,尽量减少对中间 reasoning 的干扰;safety 则评完整响应,包括 reasoning 和 summary。 这一阶段的核心不是再把数学或代码推得更高,而是把 reasoning 能力与 helpfulness/harmlessness、一般指令遵循能力合并进一个统一策略里。论文也指出这一阶段若过长,会出现 reward hacking,所以只在最后 400 steps 中纳入一般指令数据与 preference-based reward。
3.5 训练数据与实现细节
RL 数据共有五类:Math 26k、Code 17k 算法题 + 8k bug fixing、STEM 22k、Logic 15k、General 66k。问题语言覆盖中英双语。数学只保留可自动验证的数值/表达式/方程答案,不做 proof;代码题一部分来自竞赛,一部分来自真实 GitHub issue 的 bug fixing;STEM 主要是多项选择;Logic 里包含 code-IO 与 puzzle;General 数据服务于 helpfulness/harmlessness。
在 R1-Zero 中,训练超参为:learning rate 3e-6,KL coefficient 0.001,rollout temperature 1.0,每题采样 16 个输出;8.2k steps 前最大长度 32,768 tokens,之后升到 65,536;总训练 10,400 steps,约 1.6 epochs;每 step 32 个独立问题,因此 batch size 512;每 400 steps 替换 reference model;每次 rollout 产生 8,192 outputs,随机切成 16 个 minibatches,只训练一个 inner epoch。
DeepSeek-R1 第一阶段 RL 基本沿用这些设定,但 clip ratio ,长度固定 32,768,并加入 language consistency reward。第二阶段 RL 将温度从 1.0 降到 0.7,总共 1,700 steps,最后 400 steps 才引入一般指令数据和 preference-based reward。SFT 使用 cosine decay 学习率,从 5e-5 衰减到 5e-6,context length 32,768,batch size 128,训练 2-3 epochs。
论文未公开训练实现源码,因此下面的伪代码是基于论文流程整理的“paper-faithful abstraction”,不是从 released source 逐行还原。
def grpo_step(policy, ref_policy, questions, sample_group=16, eps=0.2, beta=0.001):
old_outputs = [policy.sample_group(q, sample_group) for q in questions]
rewards = [[rule_reward(q, out) for out in group] for q, group in zip(questions, old_outputs)]
advantages = [normalize_group(rs) for rs in rewards]
loss = 0.0
for q, group, adv_group in zip(questions, old_outputs, advantages):
for out, adv in zip(group, adv_group):
ratio = policy.logprob(q, out).exp() / policy.old_logprob(q, out).exp()
clipped = torch.clamp(ratio, 1 - eps, 1 + eps) * adv
unclipped = ratio * adv
kl = reverse_kl(policy, ref_policy, q, out)
loss = loss - torch.minimum(unclipped, clipped) + beta * kl
loss.backward()
policy.optimizer_step()
return lossdef r1_zero_rule_reward(sample, target):
reward_acc = verify_final_answer(sample.answer, target)
reward_format = has_tag(sample.text, "<think>") and has_tag(sample.text, "<answer>")
return float(reward_acc) + float(reward_format)def language_consistency_reward(cot_text, target_language_vocab):
words = tokenize(cot_text)
if not words:
return 0.0
target_count = sum(1 for w in words if w in target_language_vocab)
return target_count / len(words)def second_stage_reward(task_type, sample, metadata):
if task_type in {"math", "code", "stem", "logic"}:
reward_reasoning = r1_zero_rule_reward(sample, metadata["target"])
reward_general = 0.0
else:
reward_reasoning = 0.0
reward_general = reward_model_score(sample, metadata) + format_reward(sample)
reward_language = language_consistency_reward(sample.cot, metadata["target_vocab"])
return reward_reasoning + reward_general + reward_languageCode reference:
main@0cf78561(2025-04-09) — 官方仓库未发布训练实现,下面表格映射的是“论文概念 → 可见公开材料/纸面位置”
| Paper Concept | Public Artifact | Key Location | Notes |
|---|---|---|---|
| R1-Zero 纯 RL | 论文源码 | src/sn-article.tex, Section 2 | 含 GRPO、rule reward、训练超参 |
| DeepSeek-R1 多阶段 pipeline | 论文图 | figures/R1Pipieline_v0603.pdf | 对应冷启动 SFT、两轮 RL、一次 rejection sampling + SFT |
| Helpful/Safety reward model | 论文源码 | src/sn-article.tex, Section 3.1 | 给出数据构造与训练超参 |
| RL / SFT data recipe | 论文附录 | src/appendix.tex, Section “Data Recipe” | 给出 RL 五类数据与 800k SFT 数据 |
| 官方 GitHub 发布内容 | GitHub 仓库 | README.md, DeepSeek_R1.pdf, figures/benchmark.jpg | 无训练脚本、无模型实现、无配置文件 |
论文公式与 released code 实现差异:官方仓库没有发布训练实现,因此无法验证论文公式与实际代码是否存在偏差;本文只能忠实记录论文给出的训练目标、奖励设计与阶段划分。
4. Experimental Setup(实验设置)
4.1 数据与训练配方
训练侧最核心的数据规模来自附录中的 RL data recipe 与 800k SFT 统计。
- RL 数据:Math 26k prompts,Code 17k 算法竞赛题 + 8k bug fixing,STEM 22k,Logic 15k,General 66k。
- 800k SFT 数据:约 600k reasoning samples + 约 200k non-reasoning samples。
- 冷启动数据:论文只写“thousands of cold-start data”,没有给出精确条数。
- Helpful RM 数据:66k preference pairs。
- Safety RM 数据:106k safe/unsafe 标注样本。
其中 reasoning 任务的数据都强调“可验证”:数学只接受可比对答案,代码依赖隐藏测试用例,STEM 与逻辑多为选择或可自动判分格式。后训练 decontamination 也做得比较重:数学 SFT 与 RL prompts 只取 pre-2023 competitions,并沿用与预训练一致的 n-gram 过滤;论文声称仅数学域就清掉了约 600 万段潜在污染预训练文本。
4.2 对比基线
主文与附录中明确提到的强基线包括:
- DeepSeek-V3
- Claude-Sonnet-3.5-1022 / Claude-3.7-Sonnet(安全部分)
- GPT-4o-0513
- OpenAI-o1-mini
- OpenAI-o1-1217
- 蒸馏模型部分还比较了 QwQ-32B-Preview
阶段性分析还比较了 R1-Zero、R1-Dev1、R1-Dev2、R1-Dev3、最终 R1。
4.3 评测基准与指标
主评测覆盖通识、多跳理解、代码、数学、中文能力与偏好评估:
- General knowledge / reasoning:MMLU, MMLU-Redux, MMLU-Pro, C-Eval, CLUEWSC
- Long-context / document reasoning:DROP, FRAMES
- Instruction following / preference:IF-Eval, AlpacaEval 2.0, ArenaHard
- Science reasoning:GPQA Diamond
- Factual QA:SimpleQA, C-SimpleQA
- Code:LiveCodeBench, Codeforces, SWE-Bench Verified, Aider-Polyglot
- Math:AIME 2024, MATH-500, CNMO 2024
主要指标包括:
EM:exact match,多用于 MMLU/C-Eval/CLUEWSCPass@1:单次采样成功率,多用于 GPQA、AIME、MATH、代码任务F1:DROPLC-winrate:AlpacaEval 2.0GPT-4-1106judge score:ArenaHardPercentile/Rating:CodeforcesResolved:SWE-Bench VerifiedAcc.:Aider-Polyglot、FRAMES
评测协议上有两个细节值得记:
第一,作者不喜欢用 greedy decoding 评长输出 reasoning model,认为波动大、重复多,因此默认采用非零温度的 pass@ 风格评估,再报告 pass@1。第二,所有 benchmark 的最大输出长度统一 cap 到 32,768 tokens。LiveCodeBench 使用 2024-08 到 2025-01 的数据,SWE-Bench Verified 通过 agentless 框架评测,Aider 用 diff 格式。
4.4 训练配置
最关键的训练配置来自论文正文与附录,而不是任何默认 config:
R1-Zero:LR3e-6,KL0.001,temperature1.0,group size16,batch size512,step 数10,400,8.2k step 后最大长度从32,768升到65,536。- 第一阶段 RL(R1):LR
3e-6,KL0.001,GRPO clip ratio10,temperature1.0,每 step 32 questions,batch size512,长度32,768。 - 第二阶段 RL:大部分参数继承第一阶段,但 temperature 降到
0.7,总共1,700steps,最后400steps才引入 general instruction + preference reward。 - SFT:
2-3epochs,cosine decay,从5e-5到5e-6,context32,768,batch size128。 - Reward model:batch size
256,LR6e-6,训练 1 epoch,训练 max sequence length8192。 - 硬件 / 成本:
R1-Zero使用64*8 H800,约198小时;DeepSeek-R1使用同样的64*8 H800,约80小时;SFT 数据生成另用约5KGPU hours。总成本表给出147K H800 GPU hours,按$2/GPU hour估算约$294K。
5. Experimental Results(实验结果)
5.1 主结果
论文最重要的表是不同 development stages 的总览。最终 DeepSeek-R1 的代表性结果如下:
| Benchmark | Metric | DeepSeek-R1 |
|---|---|---|
| MMLU | EM | 90.8 |
| MMLU-Redux | EM | 92.9 |
| MMLU-Pro | EM | 84.0 |
| DROP | 3-shot F1 | 92.2 |
| IF-Eval | Prompt Strict | 83.3 |
| GPQA Diamond | Pass@1 | 71.5 |
| SimpleQA | Correct | 30.1 |
| FRAMES | Acc. | 82.5 |
| AlpacaEval 2.0 | LC-winrate | 87.6 |
| ArenaHard | GPT-4-1106 | 92.3 |
| LiveCodeBench | Pass@1-COT | 65.9 |
| Codeforces | Percentile | 96.3 |
| Codeforces | Rating | 2029 |
| SWE Verified | Resolved | 49.2 |
| Aider-Polyglot | Acc. | 53.3 |
| AIME 2024 | Pass@1 | 79.8 |
| MATH-500 | Pass@1 | 97.3 |
| CNMO 2024 | Pass@1 | 78.8 |
这些数字说明最终模型不只是数学/代码提升,instruction following 与 preference benchmark 也被明显补上了。尤其是与 R1-Zero 相比,IF-Eval 从 46.6 -> 83.3,AlpacaEval 2.0 从 24.7 -> 87.6,ArenaHard 从 53.6 -> 92.3,说明后半段 pipeline 对“产品化行为”非常关键。
5.2 R1-Zero 的证明性结果
R1-Zero 是论文论点成立的关键证据。它在不做预先 SFT 的前提下,把 AIME 2024 Pass@1 从训练初期 15.6% 拉到 77.9%,而 Cons@16 达到 86.7%。作者还报告在代码竞赛和高阶 STEM 问题上也有明显收益。这部分结果支持他们的主张:纯 RL 本身足以让 base model 长出强 reasoning。
5.3 各阶段贡献与 ablation 式解读
阶段分析本质上就是这篇论文最有价值的 ablation。
R1-Zero -> Dev1:冷启动 SFT 立刻显著改善 instruction following,但会牺牲部分纯 reasoning 表现,例如 AIME 从77.9降到59.0。Dev1 -> Dev2:reasoning-oriented RL 把数学、代码、STEM 能力再拉回去,AIME 到74.0,LiveCodeBench 到63.5,Codeforces rating 到1687。Dev2 -> Dev3:rejection sampling + reasoning/non-reasoning SFT 明显改善通用能力,特别是AlpacaEval 2.0和Aider-Polyglot。Dev3 -> R1:最终混合 RL 在代码和数学上只做边际增益,但在用户偏好与 general instruction benchmark 上继续大幅提升。
作者的隐含结论是:冷启动 SFT 和 general SFT 很难单独创造强 reasoning,它们更多负责把 reasoning 能力格式化、稳定化;真正把 reasoning 拉高的还是面向可验证任务的大规模 RL。
5.4 更多分析
Figure 4 解读:这张图按竞赛数学子领域拆分能力。DeepSeek-R1 在 number theory 与 algebra 较强,在 geometry 与 combinatorics 仍有明显短板。它说明 R1 的提升不是“所有数学子问题都同幅度增强”,而是更偏向那些能从长 CoT、自检和多步算理中持续获益的类别。
Figure 5 解读:这张图把 problem difficulty 和 thinking token 数关联起来,说明 DeepSeek-R1 会按题目难度自适应地分配 test-time compute。简单题往往小于 7k thinking tokens,最难题会超过 18k。它支撑论文关于“reasoning model 的优势不只是更大,而是能主动把额外 token 预算用在自检、回溯和 alternative exploration 上”的说法。
附录中的额外 OOD 结果也值得记:在 AIME 2025 上,R1 的 Pass@1 为 75%,接近论文所引述的 o1 80%;在 2024 竞赛数学题集合上,平均每题约用 8,793 个 thinking tokens,可达到 61.8% solve rate。与 GPT-4o-0513 相比,作者强调 reasoning model 的优势不是简单 majority voting 能补回来的。
5.5 局限性
论文自己承认了几类限制。
第一,R1-Zero 的输出可读性差且中英混杂,这也是为什么必须引入多阶段整理。第二,reward model 在第二阶段 RL 中继续放大时会出现 reward hacking,因此作者只在最后 400 steps 使用 general instruction + preference reward。第三,800k SFT 数据大多数是 single-turn interaction,这会限制多轮对话能力。第四,安全部分显示 R1 在 HarmBench 尤其是版权相关问题上仍有明显缺口,例如歌词生成场景容易被判 unsafe。第五,公开仓库没有训练源码,因此复现者难以验证基础设施、并行细节和工程实现是否与论文完全一致。
5.6 总结
这篇论文真正证明了两件事。其一,纯 RL 可以在足够大的 base model 上直接长出强 reasoning,且会伴随更长 thinking time、自反思和策略修正。其二,若想把这种能力变成可用模型,仍然需要冷启动 SFT、rejection sampling、reward model 和混合 RL 把 reasoning、可读性、helpfulness 与安全性重新平衡。DeepSeek-R1 的价值因此不只是一组 benchmark 分数,而是一条“RL 先长能力,SFT/RM 再做整理”的 reasoning post-training 配方。