URL
TL;DR
- 本文提出了三个模型和其对应的训练方法,目的是提高大模型的
CoT
推理能力,三个模型分别是:DeepSeek-R1-Zero
:由DeepSeek V3 base
直接通过RL
训练得到DeepSeek-R1
:由DeepSeek V3 base
在合成的高质量CoT
数据集上SFT + RL
训练得到,效果优于DeepSeek-R1-Zero
Distill model
:用相同的合成高质量CoT
数据训练的开源模型(参数量小且非MoE
)
- 其中训练方法是本文讲述的重点,
DeepSeek R1
中的R
表示Reasoning
(推导)
Algorithm
总体流程
Benchmark
DeepSeek-R1-Zero
DeepSeek-R1-Zero
是用DeepSeek v3 base (pre-train)
直接通过RL
训练得到的,不经过SFT
- 用了以下的
Template
让模型生成CoT
推理结果:
- 奖励建模分成两个部分:
Accuracy rewards
: 用于评估模型生成的CoT
推理结果的准确性Format rewards
: 用于评估模型生成的CoT
推理结果的格式是否符合上述prompt
要求的CoT
的格式
- 且
RL
过程不使用NN reward model
,而是使用了Rule base reward
RL
过程中使用了GRPO
算法DeepSeek-R1-Zero
仅仅用上述简单的CoT
性能提升流程,即可大幅提高benchmark
上的指标(相比于DeepSeek v3
),但仍然存在一些问题,例如可读性差和语言混合
DeepSeek-R1
DeepSeek-R1
用了更复杂的数据处理流程和训练流程,主要分成四个阶段(流程图上的四个stage
):- 冷启动:用数千个来自于
DeepSeek-R1-Zero
输出且经过人工处理的CoT
数据,对DeepSeek V3 base
进行SFT
- 面向推导的强化学习:用编码、数学、科学和逻辑推理等推理密集型任务数据,对冷启动微调后的模型进行
RL
训练,同时引入了语言一致性和可读性的奖励 - 拒绝采样和监督微调:用上一个
stage
得到的模型生成更广泛领域的推导CoT
数据600K
条,用DeepSeek V3
模型推理部分非推导数据(例如:写作、翻译等)得到潜在的思维链数据200K
条,用这800K
条数据对DeepSeek V3 base
进行SFT
- 所有场景的强化学习:用了和
DeepSeek V3
中使用的RL
相同的pipeline
,数据和DeepSeek-R1-Zero
中的RL
数据相同,对上一个stage
得到的模型进行RL
训练
- 冷启动:用数千个来自于
- 综上所述,
DeepSeek-R1
最重要的是800K
包含CoT
的SFT
数据
Distill model
- 由于
DeepSeek R1
使用了DeepSeek V3
相同的模型结构,因此包含671B
参数,每个token
激活34B
参数,因此这个模型非常大,不适合部署 - 为了解决这个问题,本文提出了
Distill model
,用开源的较小参数量的稠密模型(非MoE
模型)在800K
包含CoT
的SFT
数据 进行SFT
微调 - 主要蒸馏了
Qwen
和llama
模型,且完全不做RL
,即可大幅提高原模型在Benchmark
上的指标
Thoughts
- 需要重点关注本论文提到的
CoT
数据合成方式,这是DeepSeek R1
的核心 - 能从本文中可以看出 数据重要性远大于模型 和
Post-train
只包含一次SFT
和 一次RL
,比如论文中stage 1
模型会大胆抛弃DeepSeek R1 Zero
模型,而是退回到了DeepSeek V3 base
模型,只用了Zero
生成数据;stage 3
模型会大胆抛弃之前stage
的模型,而是退回到了DeepSeek V3 base
模型,只用了stage 2
模型生成数据 - 合成数据是最重要的,合成高质量的数据是
DeepSeek R1
的核心