1. 引言:SFT 的天花板与 RL 的新大陆
在 DeepSeek-R1 出现之前,开源大模型主要依赖大量的**监督微调(SFT)**来提升性能。然而,SFT 存在一个本质局限:数据瓶颈。如果人类不仅给不出“完美答案”,甚至连“解题过程”都无法从头到尾写得毫无破绽,模型该如何进步?
OpenAI 的 o1 系列给出了答案:推理时计算(Test-time Compute)。而 DeepSeek-R1 则通过开源的方式,向我们展示了如何通过大规模强化学习(RL),让模型在没有大量人工标注数据的情况下,涌现出强大的**思维链(CoT)**能力。
本文将拆解 DeepSeek-R1 的核心技术栈,带你看懂这场“后训练(Post-Training)”阶段的革命。
2. 探索原点:DeepSeek-R1-Zero 的纯粹与狂野
DeepSeek 团队首先尝试了一个极端的实验:完全不使用 SFT 数据,仅靠强化学习训练基础模型(Base Model)。这就是DeepSeek-R1-Zero。
2.1 训练设置
基座模型:DeepSeek-V3-Base。
算法:GRPO(Group Relative Policy Optimization,详见后文)。
奖励机制(Reward):只有简单的规则奖励。
准确性奖励:答案对不对?(用于数学、代码等有确定答案的任务)。
格式奖励:是否按要求使用了
<think>和<answer>标签?
2.2 顿悟时刻(Aha Moment)
在训练过程中,R1-Zero 展现出了令人惊讶的自进化能力。
自我验证:模型开始在
<think>标签内主动验算。长思维链:为了获得奖励,模型自动延长了思考过程,甚至出现了“反思”行为(Look-ahead & Backtracking)。
2.3 缺陷
虽然推理能力起飞,但 Zero 版本存在明显的“偏科”:
语言混乱(中英夹杂)。
输出格式难看,可读性极差。
自我重复严重。
这证明了:纯 RL 可以激发智力,但无法保证对齐(Alignment)和用户体验。
3. DeepSeek-R1:四阶段流水线打造“完全体”
为了解决 Zero 的问题并进一步提升性能,DeepSeek 设计了精密的四阶段训练管线(Pipeline)。这是理解 R1 的核心。
阶段一:冷启动(Cold Start)
目的:防止模型一开始在 RL 阶段瞎猜,导致收敛慢或不稳定。
做法:使用少量(约数千条)高质量的 CoT 数据进行 SFT。
关键点:这些数据包含了为了让模型易读而专门设计的长思维链格式(
| special_token | <thought process> | ...)。结果:让模型先学会“怎么像个人一样有条理地思考”。
阶段二:推理导向的强化学习(Reasoning RL)
目的:在冷启动的基础上,进一步提升推理能力。
做法:应用 GRPO 算法,主要针对数学、代码、逻辑推理等任务。
特点:此时的奖励模型主要关注准确率,强制模型进行深度思考。
阶段三:拒绝采样与 SFT(Rejection Sampling SFT)
目的:将推理能力泛化,并修复“语言混乱”的问题。
做法:
利用上一阶段的模型生成大量数据。
拒绝采样:只保留那些答案正确且推理过程通顺的样本(约 60 万条)。
加入通用能力数据(写作、角色扮演等,约 20 万条)。
对模型进行第二轮 SFT。
意义:这是 R1 相比 R1-Zero 综合能力大幅提升的关键。它把“思考能力”内化为了模型的直觉,同时补齐了通用能力的短板。
阶段四:全场景强化学习(Diverse RL)
目的:最后的对齐,兼顾有用性(Helpfulness)和安全性(Harmlessness)。
做法:除了准确性奖励,加入了人类偏好奖励(Reward Model),确保模型不仅算得对,而且说话好听、不干坏事。
4. 核心算法揭秘:GRPO (Group Relative Policy Optimization)
这是 DeepSeek 本次最大的技术贡献之一。传统的 RLHF 通常使用 PPO(Proximal Policy Optimization),但 PPO 极其昂贵。
4.1 PPO 的痛点
PPO 需要维护一个Critic 模型(价值网络),它通常和 Policy 模型(生成网络)一样大。
这意味着显存占用翻倍,训练速度减半。对于 671B 参数的 DeepSeek-V3 来说,这几乎是不可接受的成本。
4.2 GRPO 的创新
GRPO抛弃了 Critic 模型。
原理:对于同一个问题 $q$,让模型采样生成一组输出 ${o_1, o_2, ..., o_G}$(Group)。
基线(Baseline)计算:直接利用这组输出的平均奖励作为基线。
优势函数:$A_i = \frac{r_i - \text{mean}(r)}{\text{std}(r)}$
通俗理解:不需要一个老师(Critic)告诉你这道题得几分,而是让你做 10 次,只要这次做得比平均水平好,就给予正向更新;比平均水平差,就给予负向更新。
代码级伪代码理解:
python
# GRPO 简易逻辑 def grpo_loss(batch_prompts): # 1. 对每个 prompt 生成 G 个回复 outputs = model.generate(batch_prompts, num_return_sequences=G) # 2. 计算每个回复的奖励 (Reward) rewards = reward_function(outputs) # 3. 计算组内优势 (Advantage) # 不依赖 Critic 模型,直接用组内均值做 Baseline mean_reward = rewards.mean(dim=1, keepdim=True) std_reward = rewards.std(dim=1, keepdim=True) advantages = (rewards - mean_reward) / (std_reward + epsilon) # 4. 计算策略梯度损失 (Policy Gradient Loss) # ... (包含 KL 散度约束等) return loss5. 蒸馏(Distillation):让小模型也能“大力出奇迹”
DeepSeek 并没有止步于 671B 的大模型。他们证明了:强大的推理能力可以从大模型“蒸馏”给小模型。
方法:直接使用 DeepSeek-R1 生成的 80 万条高质量样本,对 Qwen-32B、Llama-3-8B 等开源小模型进行 SFT。
结果:
DeepSeek-R1-Distill-Qwen-32B在多个基准测试上超越了 OpenAI o1-mini。
这打破了“只有大模型才有强推理能力”的迷信,证明了高质量的 CoT 数据是提升小模型智商的捷径。
6. 总结与展望
DeepSeek-R1 的发布不仅仅是一个新模型的诞生,它向业界传递了几个关键信号:
RL 有效性:强化学习在大模型后训练阶段(Post-Training)不仅能做对齐,更能大幅提升推理(Reasoning)能力。
GRPO 的价值:去 Critic 架构将大幅降低 RLHF 的训练成本,让更多实验室玩得起 RL。
小模型的春天:通过大模型蒸馏,端侧设备(Edge Devices)运行高智商模型成为可能。
对于开发者而言:这是一个研究 Prompt Engineering(如何诱导思考)和 SFT 数据构建(如何清洗 CoT 数据)的绝佳样本。
参考资料:
DeepSeek-R1 Technical Report
HuggingFace Paper Page