DeepSeek-R1 论文精读:纯强化学习如何让大模型自己学会推理

DeepSeek-R1 论文精读:纯强化学习如何让大模型自己学会推理

如果要挑一篇真正改变了大模型训练范式的论文,DeepSeek-R1 的技术报告几乎无可争议地排在第一位。它的意义不在于刷榜——虽然它的确把开源模型的推理能力顶到了和 OpenAI o1 掰手腕的位置——而在于它用一条足够简单、足够可复现的路线,证明了「推理能力可以靠强化学习自己长出来,而不是靠人工标注喂出来」。这篇文章把这份报告从头到尾拆一遍,讲清楚它到底做了什么、为什么奏效、以及哪些地方仍然存疑。

一、论文速览卡

论文标题DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
机构DeepSeek-AI
arXiv2501.12948(2025 年 1 月 22 日发布,后更新扩充训练细节)
正式发表Nature(2025),标题改为《DeepSeek-R1 incentivizes reasoning in LLMs through reinforcement learning》
基础模型DeepSeek-V3-Base
核心算法GRPO(Group Relative Policy Optimization,组内相对策略优化)
一句话结论不依赖监督微调(SFT)的纯强化学习,能让模型自发涌现反思、验证等推理行为;加上冷启动数据与多阶段训练后,推理性能对齐 OpenAI-o1-1217。
开源情况MIT License,开源 R1-Zero、R1 两个 660B 模型及 6 个蒸馏小模型

二、为什么这篇论文值得精读

在 R1 之前,提升大模型推理能力的主流路线,说白了就一个字:。要么用大量人工标注的思维链(CoT)数据做监督微调,要么训练一个过程奖励模型(PRM)给中间每一步打分。这两条路都有一个共同的软肋——它们把模型的能力上限,卡在了人类提供的示范上

R1 提出了一个反直觉的假设:也许根本不需要人类手把手教推理过程,只要给出「答案对还是错」这样一个最稀疏的奖励信号,让模型在强化学习里自由探索,推理能力就能自己涌现出来。这个假设如果成立,意味着推理能力的规模化不再受制于人工标注的瓶颈。论文用 R1-Zero 这个实验把这个假设坐实了。

更关键的是,它是完全开源的——权重、算法、训练流程、甚至失败尝试都公开了。这在一个头部实验室普遍「只发模型不发配方」的时期,等于把推理大模型的整个 recipe 摊开放在桌上。这就是为什么它能引爆一整条后续研究线:几乎所有后来的推理增强工作,要么是它的改进,要么在 benchmark 里拿它当 baseline。

还有一个容易被忽略的价值:R1 论文几乎是一份「完整的训练手记」。它不仅报告成功,还如实记录了 R1-Zero 的可读性失败、语言一致性奖励的副作用、偏好奖励只能在最后引入等大量「工程细节」。这种坦诚,在顶级实验室的论文里相当罕见,也让这篇报告成为了「怎么训练推理模型」的事实教科书。

三、背景:此前的三条路,为什么都走不通

要理解 R1 的突破,得先看清它绕开了哪些坑。论文的引言部分其实把「当时为什么推理难」交代得很清楚,一共三条路线,各有硬伤。

路线一:监督微调(SFT)。直接让模型学人类标注的高质量推理轨迹。问题在于,高质量推理轨迹的标注极其昂贵,而且人类自己的思维模式可能本身就是次优的——逼模型模仿人类,等于限制了它探索「非人类式但更好」的推理路径。

路线二:过程奖励模型(PRM)。给推理的每一步打分。这里有两个本质困难:一是「推理步骤」怎么定义本身就含糊;二是判断一个中间步骤对不对,往往得看最终结果——有些看似走错的中间步骤最终能导出正确答案,有些看似走对的却在最后翻车。PRM 要在「不知道结局」的情况下给中间步骤打分,这从根上就是拧巴的。

路线三:蒙特卡洛树搜索(MCTS)。借鉴 AlphaGo 的思路做搜索。但语言生成的动作空间巨大、价值模型又难训,MCTS 在文本上容易陷入局部最优。

R1 的答案是:这三条路都不走,直接放弃过程监督,只留一个「最终答案对不对」的规则奖励。这背后是一个相当激进的主张——过程信号可以不要,让模型自己在探索里学会怎么推理。

这个「放弃过程监督」的选择,值得再往下想一层。直觉上,人类会觉得「给过程打分」应该比「只看最终答案」更好——毕竟信息更多。但 R1 的核心洞见恰恰是:「过程奖励」在数学和逻辑这类「终点明确」的任务上,可能反而有害。因为一旦你给中间步骤打分,模型就会钻「怎么让中间步骤看起来对」的空子,而不是「怎么最终答对」。而「只看最终答案」的稀疏奖励,反而逼模型自己学会「什么中间过程能通向正确结果」——这是一种更本质的学习。

四、DeepSeek-R1-Zero:纯 RL 的惊人实验

论文的第一个、也是最震撼的贡献,是 R1-Zero。它的训练方式简单到可以用一句话说完:拿 DeepSeek-V3-Base,不做任何 SFT,直接上大规模强化学习。这是「把 SFT 从流水线里彻底删掉」的一次赌注。

4.1 GRPO:省掉 Critic 模型的强化学习

传统 RL(比如 PPO)训练大模型时,通常需要一个和策略模型同规模的 Critic(价值)模型来估计优势,这意味着显存和算力几乎翻倍。R1-Zero 用的是 GRPO,核心思想是:不用 Critic,用「同一问题的一组回答」之间的相对比较来当 baseline

具体来说,对于每个问题 q,从旧策略采样一组 G 个回答 {o₁, o₂, …, o_G},分别得到奖励 {r₁, r₂, …, r_G}。每个回答的优势函数用组内的标准化来计算:

Aᵢ = (rᵢ − mean(r₁…r_G)) / std(r₁…r_G)

也就是「这个回答比组内平均好多少,除以组内标准差」。然后优化如下目标:

J_GRPO(θ) = E[ 1/G · Σᵢ ( min(πθ/πθ_old · Aᵢ, clip(πθ/πθ_old, 1−ε, 1+ε) · Aᵢ) − β·D_KL(πθ ‖ π_ref) ) ]

这个公式和 PPO 的 clipped surrogate objective 长得一样,但有一个本质区别:优势 Aᵢ 完全来自组内相对排名,不需要单独的 Critic 网络。clip 项(阈值 ε)防止单步更新过猛,β 控制对参考策略的 KL 惩罚、防止策略跑偏。

理解 GRPO 的关键是抓住那一个「相对」:它不要求知道某个回答的绝对好坏,只要求知道「这一组里谁更好」。这恰好绕开了 PRM 的困难——你不需要给中间步骤打绝对分,只需要在终点判断对错,然后让组内相对排名自然地把「好的推理」和「差的推理」区分开。这种「组内竞争」的设计,是 R1 能大规模训练的核心工程基础。

为什么「去掉 Critic」这件事这么重要?在 PPO 里,Critic 模型要估计「状态价值」,它和策略模型一样大(660B 级别),意味着训练时要同时维护两个千亿模型,显存、算力、通信开销全部翻倍。GRPO 用一个「组内平均分」就把 Critic 替代掉了——这个 baseline 虽然糙,但不需要额外模型,而且对「终点可判定对错」的推理任务来说,组内相对比较已经足够好。省掉 Critic,是 R1 能把 RL 大规模跑起来的第一块基石。

4.2 基于规则的奖励:只要对错,不要过程分

R1-Zero 的奖励函数也极简,只含两类,全部是规则可判定的,没有用任何神经奖励模型:

  • 准确率奖励:答案是确定的题(比如数学题),要求模型把最终答案放进指定格式(例如框内),然后直接规则比对对错;
  • 格式奖励:要求模型按「先思考、后回答」的模板输出,把推理过程放进 think 标签、答案放进 answer 标签,符合格式就加分。

为什么坚持用规则奖励、不用奖励模型?因为规则奖励不可被钻空子(reward hacking),而且便宜、稳定。这也是后来很多推理工作沿用的原则——能用规则判定就用规则,别轻易上奖励模型。

这里可以再展开说说「规则奖励」和「奖励模型」的本质差别。奖励模型是「另一个神经网络」在打分,它自己可能有偏见、可能被模型学出的「讨好话术」骗过去(这就是 reward hacking)。而规则奖励是「确定性的程序」——数学题判个对错,格式查个标签,没有任何可以钻的空子。在推理这种「对错分明」的任务上,规则奖励不仅更便宜,还更可靠。R1 的一个核心方法论贡献,就是把这个朴素的道理上升成了「训练推理模型的第一原则」。

4.3 「顿悟时刻」:推理能力真的自己长出来了

论文里最出名的一段,是 R1-Zero 训练过程中的 aha moment(顿悟时刻)。在没有被教过任何「推理技巧」的情况下,模型在 RL 训练中自己学会了:在思考中途停下来,用「wait」「alternatively」这样的词重新审视自己已经写下的推理,发现不对就推倒重来。这种「自我反思、自我纠错」的行为,正是人类解决难题时的典型策略,而它居然是纯粹靠「答案对不对」这一个奖励信号逼出来的。

论文还做了量化:统计了 10 个代表性反思词汇(wait、mistake、however、but、retry、error、verify、wrong、evaluate、check)在训练过程中的出现频率,发现它们增长了约 5 到 7 倍。其中「wait」的变化最有戏剧性——训练早期几乎不出现,4000 到 7000 步之间偶发使用,8000 步之后显著跃升。这基本坐实了「反思能力是训练后期涌现出来的」这个观察。

这个 aha moment 为什么值得反复咀嚼?因为它提供的是一个「能力涌现」的教科书级案例:没有任何人告诉模型「你应该自我怀疑、应该回头检查」,模型只是被反复奖励「答对」,就在近乎无限的自由探索里,自己「发明」了反思这个策略。这暗示了一个深刻的可能:很多我们以为需要「教会」模型的高级行为,其实只要给对奖励、给足探索空间,它自己会长出来。这也正是 R1 标题里「incentivizing」(激励、诱导)这个词的精髓——不是「教」推理,而是「激励」推理自己冒头。

4.4 R1-Zero 的短板

R1-Zero 推理能力惊艳,但毛病也很明显,论文自己列得很坦率:

  • 可读性差:推理过程经常一团乱,不符合人类阅读习惯;
  • 语言混杂:一条 CoT 里中英文来回切换;
  • 能力面窄:因为只有规则奖励,只擅长有明确对错的推理任务,写作、开放问答等泛化能力不行。

这些短板,正是后面 R1 要解决的问题。这里其实藏着一个重要的方法论信息:R1-Zero 虽然「不可用」,但它的存在价值是「验证假设」——它证明了「纯 RL 能长出推理」这个最核心的主张,后面的 R1 只是在这个已验证的骨架上「补可读性、补泛化」。这种「先用极端实验验证核心假设、再工程化补齐短板」的研究节奏,是 R1 报告最值得学习的地方之一。

五、DeepSeek-R1:四阶段训练管线

R1 的本质,是在 R1-Zero 的「纯 RL」之上,用冷启动数据 + 多阶段训练把可读性和泛化能力补回来。论文后更新的版本里,明确给出了 Dev1、Dev2、Dev3 三个中间检查点,把流水线拆成了四段。

阶段 1:冷启动 SFT

收集数千条高质量的、长思维链的冷启动数据。这些数据的来源包括:用长 CoT 作为 few-shot 示例、直接提示模型生成带反思和验证步骤的详细答案、以及收集 R1-Zero 的输出并经人工标注、事后校正。用这批数据微调 V3-Base,作为 RL 的起点。

冷启动的目的很明确:让模型从一开始就学会「人类友好的思考格式」,而不是像 R1-Zero 那样一上来就野蛮生长、语言混乱。这里的关键词是「数千条」——这个规模小得惊人。它说明了一个重要事实:「格式、可读性、语言一致性」这类问题,只需要极少量高质量示范就能对齐,根本不需要海量标注。这和 R1-Zero 的「可读性灾难」形成了一组漂亮的对照:几千条精心设计的冷启动数据,就能解决纯 RL 几万步都解决不好的「格式混乱」问题。

阶段 2:推理导向的 RL

对冷启动后的模型再做一轮 RL,算法和 R1-Zero 相同,但多了一个语言一致性奖励——计算目标语言词汇在 CoT 里的占比,鼓励模型用同一种语言思考。消融实验显示,这个奖励会带来轻微的推理性能下降(尤其在代码任务上),但换来了可读性的大幅改善,这笔交易是划算的。

这个「语言一致性奖励」的消融结果,是整个报告里最「诚实」的细节之一。它揭示了一个普遍存在的权衡:「推理质量」和「输出可读性」并不总是一致的。如果一味追求推理分数,模型可能会用「最适合思考」的语言(往往是中英混杂的捷径)来推理,牺牲可读性;加上语言一致性奖励后,推理分数略降,但输出变得人类可读。R1 的选择,是用「一点推理性能」换「大量可读性」——这背后是一个产品化的判断:一个「几乎最优但读不懂」的模型,不如一个「略次优但能读懂」的模型有价值

阶段 3:拒绝采样 + 大规模 SFT

这是整个流水线里数据量最大的一步。用上一阶段 RL 后的检查点做拒绝采样(采样多个回答、只保留正确的),生成约 60 万条推理数据;再加上约 20 万条来自 DeepSeek-V3 流水线的非推理数据(写作、事实问答、角色扮演、翻译等),凑成一个 80 万样本的 SFT 数据集。

注意一个容易被忽略的细节:这一阶段从 DeepSeek-V3-Base 重新开始训练 2 个 epoch,而不是接着上一阶段的检查点训。为什么要推倒重来?因为如果只做推理 RL,模型会在写作、开放域问答上退化;混入非推理数据重新 SFT,是为了把「会推理」和「能正常对话」两种能力重新平衡。

这个「推倒重来」的细节,是理解 R1 训练哲学的关键。它说明:推理 RL 的本质是「窄化」模型——它把模型往「推理专家」的方向猛推,代价是「通用能力」的流失。所以需要用「推理数据 + 非推理数据」的混合 SFT,把模型的「通用底座」重新找回来。这种「先专精、再回补通才」的两步走,是训练「既能推理、又能正常对话」的通用推理模型的核心手法。

阶段 4:全场景 RL

最后一轮 RL,把奖励信号混合起来:推理数据(数学、代码、逻辑)继续用基于规则的奖励,通用数据则引入偏好奖励模型来捕捉人类偏好,同时兼顾 helpfulness(有用)和 harmlessness(无害)。论文特别提醒了一句:偏好模型的奖励只在最后约 400 步才引入,过早或过久使用会导致奖励作弊(reward hacking)。

这个「最后 400 步才引入偏好奖励」的提醒,是一个极其宝贵的工程经验。它意味着:在推理 RL 里,神经奖励模型是「有毒」的——它给分越快、越久,模型越容易学会「讨好这个裁判」而不是「真正变好」。所以 R1 把它严格限定在「最后一小段、用于通用能力对齐」的场景里。这给所有做 RL 的人一个通用的警示:规则奖励可以放心用,神经奖励模型必须「限时、限量、限场景」地小心用。

走完这四段,才得到最终的 DeepSeek-R1。

六、蒸馏:把推理能力塞进小模型

论文的第二个重要贡献是蒸馏。用 DeepSeek-R1 作为教师模型,生成约 80 万训练样本,去微调几个开源小模型,产出了 6 个密集蒸馏模型:1.5B、7B、8B、14B、32B、70B,分别基于 Qwen 和 Llama。

蒸馏的效果好得有点超出预期:DeepSeek-R1-Distill-Qwen-1.5B 在数学基准上超过了 GPT-4o 和 Claude-3.5-Sonnet——一个 1.5B 的小模型,靠继承大模型的推理能力,在特定任务上打赢了百倍参数的闭源模型。

论文还做了一个非常有价值的对比实验(讨论章节):蒸馏 vs 直接在 32B 上做大规模 RL。结果是,从 R1 蒸馏出来的 Distill-Qwen-32B,在所有基准上明显优于在 Qwen-32B-Base 上做了上万步 RL 的 R1-Zero-Qwen-32B。论文由此得出一个相当清醒的结论:对小模型来说,继承强模型的推理能力(蒸馏)远比自己在小体量上硬做 RL 更经济有效;但要突破智能的上限,最终还是要靠更强的基座 + 更大规模的 RL

这个「蒸馏 vs 自研 RL」的对比,是整篇论文里最能指导实践的一组实验。它回答了一个几乎所有团队都会问的问题:「我没有千亿模型的算力,该怎么拿到推理能力?」答案是——别自己从零做 RL,去找一个强推理模型做蒸馏。一个小模型从 R1 蒸馏出来的推理能力,比自己「硬练」上万步 RL 还要强。但反过来,这个结论也划出了一条残酷的边界:蒸馏只能「分蛋糕」,不能「做大蛋糕」——要突破智能上限、探索新的推理范式,最终还得靠大基座 + 大 RL。这条边界,正是「开源蒸馏满地走、顶级推理模型屈指可数」这个现象的根本原因。

七、实验结果:关键数据一览

下面是论文 Figure 1 的核心 benchmark 对比,我把关键数字逐项列出来,方便直观对比(Pass@1 表示单次采样即答对的概率,Codeforces 用的是百分位,SWE-bench 用的是解决率):

基准DeepSeek-R1OpenAI-o1-1217DeepSeek-R1-32BOpenAI-o1-miniDeepSeek-V3
AIME 2024 (Pass@1)79.879.272.663.639.2
Codeforces (Percentile)96.396.690.693.458.7
GPQA Diamond (Pass@1)71.575.762.160.059.1
MATH-500 (Pass@1)97.396.494.390.090.2
MMLU (Pass@1)90.891.887.485.288.5
SWE-bench Verified (Resolved)49.248.936.841.642.0

几个值得注意的读数:

  • 数学(AIME、MATH-500)和软件工程(SWE-bench)上,R1 已经追平甚至小幅超过 o1-1217,这恰好是「推理」最能拉开差距的领域;
  • 通用知识(GPQA、MMLU)上,R1 略逊于 o1-1217,说明它更偏科、更「理科」;
  • 对比 DeepSeek-V3 这一行能看出RL 带来的跃升有多大:AIME 从 39.2 直接跳到 79.8,几乎翻倍。

还有一个「测试时算力」的观察很有意思:论文提到多数投票(majority voting)能进一步提升性能——AIME 上,R1-Zero 用 64 次采样投票(cons@64)后,从 71.0% 提到 86.7%,超过了 OpenAI-o1-0912。这说明推理模型的「多采样 + 投票」是一个简单但有效的后处理技巧。

把这组数字放在一起,能读出一个清晰的「能力画像」:R1 是一个「理科强、通用稍弱」的推理专才。它在数学、代码这些「有明确对错、能靠推理逼近」的任务上几乎无敌,但在「需要广博知识」的任务上略逊于闭源对手。这张画像和它的训练方式完全吻合——毕竟它整个训练流程的奖励信号,都天然偏向「有明确对错」的任务。理解这张画像,你才知道 R1 该用在哪、不该用在哪。

八、局限与不足:论文自己承认的问题

一份技术报告值不值得读,往往看它敢不敢写局限。R1 论文在这点上做得不错,明确列了几条:

  • 通用能力不如 V3:在功能调用(function calling)、多轮对话、复杂角色扮演等任务上,R1 反而不如 DeepSeek-V3,因为推理 RL 的奖励信号天然偏向「有明确对错」的任务;
  • 语言混合未根治:处理非中英文查询时,仍可能出现推理和回答的语言混乱;
  • 对提示敏感:few-shot 提示反而会降低性能,这一点和普通模型的习惯相反;
  • 软件工程任务改进有限:SWE-bench 虽然追平 o1,但相对 V3 提升不算大,工程能力仍是短板。

这些局限,其实给后来的研究划出了清晰的改进方向——也是为什么 R1 之后,推理增强方向会有那么多后续工作。特别值得玩味的是「few-shot 提示反而降性能」这一条:它说明 R1 已经「内化」了推理能力,不需要外部示范,甚至外部的 few-shot 示例会「干扰」它自身的推理节奏。这个现象,与 CoT 时代「必须给示例才推理」形成了鲜明对照——它标志着一个范式转换:推理从「提示时诱导」变成了「训练时内化」

九、横向对比:R1 处在推理路线的哪个位置

把 R1 放到整个推理大模型的时间线里看,它的位置会更清楚。

在 R1 之前,OpenAI o1 是「推理时缩放」(inference-time scaling)路线的代表:靠延长思维链、在推理阶段投入更多算力来换精度,但训练细节完全不公开。R1 做的事,某种意义上是在开源侧复现并公开了「RL 激发推理」这条路线,而且用 GRPO 给出了一个比 PPO 更省算力的实现。

R1 之后,推理增强研究明显分成了几个分支:有继续打磨 RL 算法的(GRPO 的各种变体、DAPO、以及去掉 critic 的进一步简化);有往「过程监督」回摆的(比如把过程奖励做得更细的 PRL 等工作);有做「交错推理」的(让模型边想边答、降低 TTFT);还有把它和蒸馏、多智能体结合起来的。但几乎所有这些工作的坐标系,都以 R1 为原点。

如果要给 R1 一个定位,我认为最准确的是:它不是推理大模型的终点,而是「可复现的 RL 推理」这条路的起点。它证明了路走得通,并且把地图公开了。

再补一个视角:R1 与 o1 的关系,不是「谁抄谁」,而是「闭源验证了方向、开源公开了配方」。o1 最早证明了「推理时缩放 + RL」这条路线能到顶级水平,但它是闭源的,外界只能猜测;R1 的开源,把这套东西从「黑箱」变成了「白盒」,让整个社区第一次能「照着做」。这种「闭源定方向、开源定配方」的接力,是这一轮推理大模型浪潮最独特的地方,而 R1 就是那个「公开配方」的关键节点。

十、总结:这篇论文留给我们三个启示

读完 R1,我提炼出三个对实践最有价值的判断:

第一,稀疏奖励 + 组内相对比较,比精心设计的过程监督更「抗造」。GRPO 的价值不只是省了 Critic,更是它证明了「只要终点能判对错,中间过程可以完全交给模型自己探索」。这对工程落地是个好消息——你不需要昂贵的逐步标注,就能训练出会推理的模型。

第二,冷启动数据的量不需要大,但质量要「人类友好」。R1 用数千条冷启动数据,就解决了 R1-Zero 的可读性灾难。这说明「格式、可读性」这类问题,少量高质量示范就能对齐,犯不着海量标注。

第三,蒸馏是性价比最高的推理能力转移方式。如果你的目标是「让小模型具备推理能力」,优先考虑从强模型蒸馏,而不是自己从头 RL——论文的实验数据非常明确地指向这个结论。

如果说 R1 论文本身解决了一个技术问题,那它更大的价值是解决了一个认知问题:让整个行业第一次清楚地看到,推理能力可以不用「教」、而是靠「奖励」长出来。这一点,比任何单项 benchmark 数字都重要。

参考来源

主要菜单