DeepSeek-R1 技术报告:通过强化学习提升 LLMs 的推理能力
arXiv | https://arxiv.org/abs/2501.12948
GitHub | https://github.com/deepseek-ai/DeepSeek-R1
AutoDL 镜像 | https://www.bilibili.com/video/BV17GFyeCEYy/?vd_source=24d4d4da4ef3f2f6e5fac26ffedb510c
摘要:
DeepSeek-R1-Zero 是一种在大规模强化学习(RL)训练下生成的模型,未经过监督微调(SFT)作为初步步骤,展示了显著的推理能力。通过强化学习,DeepSeek-R1-Zero 表现出多种强大的和引人注目的推理行为,然而它也面临着可读性差和语言混杂等挑战。
为了解决这些问题并进一步提高推理性能,引入了 DeepSeek-R1,该模型在强化学习之前结合了多阶段训练和冷启动数据,在推理任务上的性能与 OpenAI-o1-1217 相当。为了支持研究社区,开源了 DeepSeek-R1-Zero、DeepSeek-R1 以及基于 Qwen 和 Llama 从 DeepSeek-R1 知识蒸馏出的六种稠密模型**(1.5B、7B、8B、14B、32B、70B)**。
一、引言
近年来,大型语言模型(LLMs)经历了快速迭代与进化,逐步缩小了与人工通用智能(AGI)之间的差距。
-
后训练已成为整个训练流程中一个重要的组成部分,在增强推理任务的准确性、与社会价值观相一致以及适应用户偏好方面表现出色,同时相较于预训练所需计算资源相对较少。
-
在推理能力方面,OpenAI-o1 系列模型首次通过延长思维链(CoT)推理过程引入了推理时扩展机制。这种方法在数学、编程和科学推理等多种推理任务中取得了显著的改进。
然而,有效测试时扩展的问题仍然是研究领域的一个重要问题。此前研究探索了过程奖励模型、强化学习以及蒙特卡洛树搜索和束搜索等算法,但均未能达到与 OpenAI-o1 系列模型相当的通用推理水平。本文首次尝试使用纯 RL 来提升语言模型的推理能力,目标是探索 LLM 在无监督数据的情况下发展推理能力的潜力,重点关注其通过纯RL过程的自我进化。
1.1 主要贡献
后训练:基础模型的大规模强化学习
- 直接将 RL 应用于基础模型,而不依赖于监督微调(SFT)作为前期步骤,使模型能够探索解决问题的思维链(CoT),最终开发出 DeepSeek-R1-Zero。这是首个验证可纯粹通过 RL 而无需 SFT 提升 LLM 的推理能力的开源研究。
- 提出了 DeepSeek-R1 的开发流程,包含两个 RL 阶段(用于改进推理模式和与人类偏好保持一致)和两个 SFT 阶段(作为模型推理能力和非推理能力的种子)。
知识蒸馏:小型模型同样可以强大
- 证明了大型模型的推理模式可以被蒸馏到小型模型中,其性能优于直接通过 RL 训练小型模型。
- 利用 DeepSeek-R1 生成的推理数据微调了多个在研究社区中广泛使用的稠密模型。开源了基于 Qwen2.5 和 Llama3 系列的 1.5B、7B、8B、14B、32B 和 70B 的蒸馏检查点。
1.2 评估结果总结

二、研究方法
2.1 DeepSeek-R1-Zero:基础模型的强化学习
前期相关研究表明强化学习在推理任务中展现了显著的有效性。然而,这些研究高度依赖于监督数据,而收集这些数据耗时且成本高昂。
在本节中,探讨了 LLMs 在无需任何监督数据的情况下通过纯强化学习过程实现推理能力自我进化的潜力。
2.1.1 强化学习算法
为了节省 RL 的训练成本,我们采用群组相对策略优化(GRPO),舍弃了通常与策略模型大小相同的评论家模型,而是通过群组评分估计基线。
具体而言,对于每个问题 qqq,GRPO 从旧策略 πθold\pi_{\theta_{old}}πθold 中采样一组输出{o1,o2,…,oG}\{o_1, o_2, …, o_G\}{o1,o2,…,oG},然后通过最大化以下目标来优化策略模型πθ\pi_{\theta}πθ:

其中 ϵ\epsilonϵ 和 β\betaβ 是超参数;AiA_iAi 是优势函数,使用组内每个输出对应的奖励组 {r1,r2,…,rG}\{r_1, r_2, …, r_G\}{r1,r2,…,rG} 计算得到:

2.1.2 奖励建模
为了训练 DeepSeek-R1-Zero,采用了一种基于规则的奖励系统,该系统主要由两种类型的奖励构成:
- 准确度奖励:评估响应是否正确。在数学问题等具有确定结果的情况下,模型需要以指定格式(如在方框内)提供最终答案以实现可靠的基础规则验证;对于 LeetCode 问题,使用编译器根据预设测试用例生成反馈。
- **格式奖励:**要求模型将其思维过程置于 <think><\text{think}><think> 和 <think><\text{think}><think> 标签之间。
研究没有应用结果或过程神经奖励模型,因为在大规模强化学习过程中神经奖励模型可能会遭受奖励作弊的问题,重新训练奖励模型需要额外的训练资源,并会复杂化整个训练流程。
2.1.3 训练模板
为了训练 DeepSeek-R1-Zero,设计了一个简洁的模板以引导基础模型遵循我们的指定指令。

模板要求 DeepSeek-R1-Zero 首先生成一个推理过程,然后给出最终答案。 有意将约束限制在这一结构化格式内,避免任何内容偏见(强制进行反思性推理或推广特定的问题解决策略)以确保在强化学习过程中可以准确观察模型的自然演变过程。
2.1.4 性能分析
DeepSeek-R1-Zero 在 RL 训练过程中 AIME 2024 基准测试的性能演化轨迹:

DeepSeek-R1-Zero 与 OpenAI-o1-0912 在多种推理基准测试中的对比分析:

DeepSeek-R1-Zero 能够在无需任何监督微调数据的情况下获得稳健的推理能力,突显了该模型仅通过 RL 就能够有效地学习和泛化的能力。
此外,应用**多数投票(majority voting)**后性能可以进一步提升。例如,在 AIME 基准上应用多数投票后,DeepSeek-R1-Zero 的性能从 71.0% 提高到 86.7%,从而超过了 OpenAI-o1-0912 的性能,表明其具有强大的基础能力和在其推理任务中的发展潜力。
2.1.5 自我进化过程
DeepSeek-R1-Zero 的自我进化过程展示了如何通过 RL 使模型自主提高其推理能力。通过直接从基础模型实施 RL 训练,可以在无监督微调影响下监控模型的进步。

DeepSeek-R1-Zero 在整个训练过程中表现出推理时间的持续优化,且是模型内部的一种自然发展而并非源于外部调整。通过利用扩展的测试时间计算,自然地获得了解决复杂推理任务的能力。这种计算规模从生成数百到数千个推理 token 不等,使模型能够更深入地探索和优化其思维过程。
自我进化最显著的特点之一是在测试时间计算增加时,出现了一些复杂的行为。例如,模型会自发地进行反思(重新审视和评估其之前的步骤)以及探索解决问题的替代方法。这些行为并非事先编程,而是模型与强化学习环境交互的结果。
2.1.6 关键突破与缺陷
在对 DeepSeek-R1-Zero 进行训练的过程中在中期版本观察到一个关键突破:

在此阶段,DeepSeek-R1-Zero 学会重新评估其初始方法并延长思考时间来解决一个问题。这一行为不仅是模型不断增强推理能力的证明,也是强化学习能够带来意想不到和复杂结果的一个生动示例。
验证了RL的核心优势:不需要明确地教会模型如何解决问题,只需提供正确的激励,模型就能够自主发展出高级的问题解决策略。
但 DeepSeek-R1-Zero 在可读性和语言混杂方面存在挑战。
2.2 DeepSeek-R1:冷启动强化学习
基于 DeepSeek-R1-Zero 的结果提出了两个问题:
- 通过引入少量高质量数据作为冷启动,能否进一步提高推理性能或加速收敛?
- 我们如何训练一个用户友好的模型,不仅能生成清晰连贯的思维链,还能展示强大的泛化能力?
在本节中,设计了一个训练 DeepSeek-R1 的四阶段开发流程。
2.2.1 冷启动 —— 第一阶段 SFT
为了防止基于基础模型的 RL 训练早期出现不稳定冷启动阶段,DeepSeek-R1 使用一小部分长 CoT 数据作为初始 RL 行动进行微调。探索了收集数据的多种方法:
- 基于长 CoT 示例的 few-shot 提示
- 直接提示模型生成带有反思和验证的详细答案
- 收集 DeepSeek-R1-Zero 的输出并以可读格式呈现
- 人工注释后的处理优化结果
冷启动数据的优势包括:
- 可读性:克服了 DeepSeek-R1-Zero 可读性差的缺陷(回复可能包含多种语言、缺乏使用 markdown 格式突出显示答案)。创建冷启动数据时设计了一种可读性强的模式,在每个回复的结尾包含一个总结并过滤掉不适宜阅读的回复。输出格式为 ∣special_token∣<reasoning_process>∣special_token∣<summary>|\text{special}\_\text{token}|<\text{reasoning}\_\text{process}>|\text{special}\_\text{token}|<\text{summary}>∣special_token∣<reasoning_process>∣special_token∣<summary>,其中 <reasoning_process><\text{reasoning}\_\text{process}><reasoning_process> 是查询的 CoT,<summary><\text{summary}><summary>用于总结推理结果。
- 潜力:通过基于人类先验知识的冷启动数据模式获得了更好的性能,验证了迭代训练是推理模型更好的训练方式。
2.2.2 推理强化学习 —— 第一阶段 RL
在对 DeepSeek-V3-Base 使用冷启动数据进行微调后,应用了与 DeepSeek-R1-Zero 中相同的大规模强化学习训练过程,重点在于增强模型的推理能力,特别是在编码、数学、科学和逻辑推理等涉及明确定义的问题和清晰的解决方案的推理密集型任务中。
在训练过程中,我们观察到 CoT 往往表现出语言混杂的现象,尤其是在涉及多种语言的 RL 提示时更为明显。为了缓解语言混合的问题,我们在强化学习训练中引入了语言一致性奖励(CoT 中目标语言词汇的比例),将推理任务的准确性和语言一致性奖励相加形成最终奖励。尽管消融实验表明其会导致模型性能略有下降,但与人类偏好更加一致,使其更具可读性。
2.2.3 拒绝采样与监督微调 —— 第二阶段 SFT
推理强化学习收敛后,利用检查点生成并收集 SFT 数据,以供后续轮次使用。不同于侧重于推理的初始冷启动数据,这一阶段的数据包含了其他领域的信息,旨在增强模型在写作、角色扮演和其他通用任务方面的能力。
推理数据:
- 筛选出推理提示并对检查点进行拒绝采样来生成推理轨迹。
- 除了基于规则的奖励外,引入通过将真实值和模型预测输入 DeepSeek-V3 进行判断的生成奖励模型。
- 过滤掉了包含混合语言、长段落和代码块的推理过程。
- 对于每个提示,我们采样多个响应并仅保留正确的响应。
→ 60 万与推理相关的训练样本
非推理数据:
- 对于写作、事实问答、自我认知、翻译等,采用 DeepSeek-V3 开发流程,并重用 DeepSeek-V3 的部分 SFT 数据集。
- 对于其他复杂非推理任务,通过提示调用 DeepSeek-V3 生成潜在 CoT,然后再回答问题。
- 对于简单查询(例如“你好”)直接相应。
→ 20 万与推理无关的训练样本
使用上述约 80 万样本的精简数据集对 DeepSeek-V3-Base 进行两轮微调。
2.2.4 全场景强化学习 —— 第二阶段 RL
为了进一步使模型与人类偏好保持一致,实施第二阶段 RL 训练,旨在提高模型的实用性、安全性和推理能力。具体而言,我们采用多元奖励信号和多样化提示分布来训练模型。
-
**推理数据:**遵循 DeepSeek-R1-Zero 的方法,利用基于规则的奖励系统来引导数学、编程和逻辑推理领域的学习过程。
-
**通用数据:**依赖奖励模型来捕捉复杂和微妙场景中的人类偏好。
-
**实用性:**专注于最终摘要,确保评估强调响应对用户的实用性和相关性,同时尽量减少对底层推理过程的干扰。
-
**安全性:**评估模型的整个响应,包括推理过程和摘要,以识别并减轻生成过程中可能出现的风险、偏见或有害内容。
2.3 知识蒸馏:增强小型模型的推理能力
为了更高效地使小型模型具备类似于 DeepSeek-R1 的推理能力,使用上文 DeepSeek-R1 精选的 80 万个样本对开源模型 Qwen 和 Llama 进行了微调。
基础模型:
-
Qwen2.5-Math-1.5B、Qwen2.5-Math-7B、Qwen2.5-14B、Qwen2.5-32B
-
Llama-3.1-8B、Llama-3.3-70B-Instruct
对于蒸馏模型,我们仅应用 SFT 而不包括 RL 阶段,尽管将 RL 阶段纳入其中可以显著提升模型性能。
三、实验
评估基准:
- 知识理解:MMLU、MMLU-Redux、MMLU-Pro
- 跨语言评估:C-Eval、CMMLU
- 格式理解:IFEval
- 长文本处理:FRAMES
- 专业知识:GPQA Diamond
- 事实问答:SimpleQA、C-SimpleQA
- 编程能力:SWE-Bench Verified、Aider、LiveCodeBench、Codeforces
- 数学能力:CNMO 2024、AIME 2024
- LLM 作为评估器:遵循 AlpacaEval 2.0 和 Arena-Hard 的原始配置,使用 GPT-4-Turbo-1106 作为评估器进行成对比较,仅输入最终摘要以避免长度偏差。
评估 Prompt:
- 采用 simple evals prompt 评估 MMLU、DROP、GPQA Diamond、SimpleQA;
- 采用 Zero-Eval prompt 直接对 MMLU-Redux 实现零样本评估;将 MMLU-Pro、C-Eval、CLUE-WSC 的原始少样本提示改造为零样本形式以适应零样本设置。
- 其他数据集遵循其原始评估协议,使用创作者提供的默认提示。
- HumanEval-Mul 覆盖 8 种主流编程语言(Python、Java、C++、C#、JavaScript、TypeScript、PHP、Bash),LiveCodeBench 采用CoT 格式,Codeforces 基于 10 场 Div.2 竞赛题目与专家测试用例,SWE-Bench 通过无代理框架验证,AIDER 使用 “diff” 格式进行测量。
基线模型:
- DeepSeek-V3
- Claude-Sonnet-3.5-1022
- GPT-4o-0513
- OpenAI-o1-mini
- OpenAI-o1-1217
- QwQ-32B-Preview(蒸馏模型)
评估设置:
- 最大生成长度设置为 32,768 个 token。
- 采用 temperature=0.6 和 top-p=0.95 为每个问题生成 k 个响应(4-64,取决于测试集大小),pass@1=1k∑i=1kpi\text{pass}@1=\frac{1}{k}\sum_{i=1}^k p_ipass@1=k1∑i=1kpi,pip_ipi 表示第 i 个响应的准确性。
- 对于 AIME 2024,还报告了使用 64 个样本的共识(多数投票)结果 $ \text{cons}@64$。
3.1 DeepSeek-R1 评估结果

3.2 蒸馏模型评估结果

四、讨论
4.1 知识蒸馏 vs 强化学习
通过蒸馏 DeepSeek-R1,小型模型可以取得令人印象深刻的结果。然而,仍然存在一个问题:模型是否能够通过大规模 RL 训练而无需进行蒸馏实现相当的性能?
对 Qwen-32B-Base 上进行了大规模的强化学习训练,使用了数学、代码和 STEM 数据训练超过 10000 步得到 DeepSeek-R1-Zero-Qwen-32B,达到了与 QwQ-32B-Preview 相当的性能。然而 DeepSeek-R1-Distill-Qwen-32B 在所有基准测试中的表现都显著优于 DeepSeek-R1-Zero-Qwen-32B。

因此,可以得出两个结论:
-
**首先,**将更强大的模型蒸馏到较小的模型能够取得优异的效果,而小型模型依赖于本文中提及的大规模强化学习则需要巨大的计算资源,并且可能无法达到精简的效果。
-
**其次,**尽管蒸馏策略既经济又有效,但突破智能的边界可能仍然需要更强大的基础模型和更大规模的强化学习。
4.2 未成功的尝试
过程奖励模型(PRM)
PRM 是一种可以引导模型采取更好的方法来解决推理任务的合理手段。然而在实践中,PRM 存在三个主要限制:
- **首先,**一般推理中明确定义细粒度步骤具有挑战性。
- **其次,**确定当前中间步骤是否正确是一项艰巨的任务。使用模型进行自动注释可能无法获得满意的结果,而人工注释则不利于扩展。
- **第三,**一旦引入基于模型的 PRM,必然会引发奖励欺骗,重新训练奖励模型需要额外的训练资源,并且会复杂化整个训练流程。
总之,虽然 PRM 展示了重新排名模型生成的前 N 个响应或辅助引导搜索的能力,但其优势在大规模强化学习过程中由于额外的计算开销而受限。
蒙特卡洛树搜索(MCTS)
受 AlphaGo 和 AlphaZero 的启发,我们探索了使用蒙特卡洛树搜索(MCTS)来增强测试时计算的可扩展性。该方法涉及将答案分解为较小的部分,以使模型能够系统地探索解决方案空间。
为此,提示模型生成多个对应搜索所需的特定推理步骤的标签。在训练过程中,首先利用收集到的提示,通过由预训练的价值模型引导的 MCTS 来找到答案。随后,我们使用生成的问题-答案对来训练行为模型和价值模型,并迭代地优化这一过程。
然而,当扩大训练规模时,这种方法会遇到几个挑战。
- 首先,与搜索空间相对清晰的国际象棋不同,token 生成提供了指数级更大的搜索空间。为应对这一问题,我们为每个节点设定了最大扩展限制,但这种方法可能导致模型陷入局部最优。
- 其次,价值模型直接影响生成的质量,因为它指导了搜索过程中的每一步。 精细训练价值模型本身是困难的,这使得模型难以通过迭代逐步提升性能。尽管 AlphaGo 的成功核心在于通过训练价值模型逐步提升其性能,但在我们当前的设置中,由于 token 生成的复杂性,这一原则难以复制。
综上所述,尽管MCTS在配以预训练价值模型的情况下可以提高推理性能,但通过自我搜索逐步提升模型性能仍然是一个重大挑战。
4.3 未来工作
- **通用能力:**目前 DeepSeek-R1 在函数调用、多轮对话、复杂角色扮演和 JSON 输出等任务上的能力尚不及 DeepSeek-V3。未来,我们计划探索长 CoT 如何能够增强这些领域的任务性能。
- **多语言混合:**DeepSeek-R1 目前针对中文和英文进行了优化,在处理其他语言的查询时出现语言混合问题。例如,即使查询语言不是英文或中文,DeepSeek-R1 可能在推理和回应中使用英文。我们计划在未来更新中解决这一局限。
- **提示工程:**在评估 DeepSeek-R1 时,我们发现它对提示非常敏感。少样本提示会持续降低其性能。因此,我们建议用户在零样本设置下直接描述问题并指定输出格式以获得最佳结果。
- **软件工程任务:**由于评估时间较长影响了 RL 过程的效率,大规模的 RL 在软件工程任务中并未得到广泛的应用。因此,DeepSeek-R1 在软件工程基准测试中并未表现出对 DeepSeek-V3 的巨大改进。未来版本将通过在软件工程数据上实现拒绝采样或在 RL 过程中引入异步评估来提高效率。
k-R1 可能在推理和回应中使用英文。我们计划在未来更新中解决这一局限。 - **提示工程:**在评估 DeepSeek-R1 时,我们发现它对提示非常敏感。少样本提示会持续降低其性能。因此,我们建议用户在零样本设置下直接描述问题并指定输出格式以获得最佳结果。
- **软件工程任务:**由于评估时间较长影响了 RL 过程的效率,大规模的 RL 在软件工程任务中并未得到广泛的应用。因此,DeepSeek-R1 在软件工程基准测试中并未表现出对 DeepSeek-V3 的巨大改进。未来版本将通过在软件工程数据上实现拒绝采样或在 RL 过程中引入异步评估来提高效率。
更多推荐
所有评论(0)