mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
582 字
2 分钟
DeepSeek R1 与 GRPO:开源推理模型的突破
2025-02-22

2025 年 1 月,DeepSeek 发布了 R1 模型。

这不仅是又一个强大的推理模型,更重要的是:它完全开源

参数、权重、训练细节全部公开。还有 R1-Zero——一个完全通过强化学习训练、没有任何监督微调的模型,推理能力自发涌现。

DeepSeek R1 打破了推理模型的封闭格局。

本文要点#

  • DeepSeek R1 概览
  • GRPO 算法详解
  • R1-Zero 纯 RL 突破
  • 671B MoE 架构
  • 蒸馏模型生态
  • 开源影响与意义

一、DeepSeek R1 概览#

1.1 核心数据#

flowchart TB subgraph DeepSeek R1规格 A[模型架构] A --> A1[MoE(稀疏专家混合)] B[参数量] B --> B1[总参数:671B] B --> B2[激活参数:37B] C[MoE 配置] C --> C1[专家数量:256 个] C --> C2[每层激活:8 个专家] D[训练方法] D --> D1[预训练:14.8T tokens] D --> D2[RL 训练:GRPO] E[许可证] E --> E1[MIT License(完全开源)] end

1.2 性能对比#

xychart-beta title "AIME 数学竞赛准确率" x-axis ["GPT-4o", "Claude 3.5", "o1-preview", "DeepSeek R1", "o1"] y-axis "准确率 %" 0 --> 100 bar [13, 20, 56, 79, 83]
| 基准测试 | o1-preview | DeepSeek R1 | 差距 |
|---------------|-------------|-------------|------------------|
| AIME 2024 | 56% | 79% | +23% |
| MATH-500 | 78% | 97% | +19% |
| Codeforces | 1807 | 1800 | -7 |
| GPQA Diamond | 73% | 72% | -1% |
| MMLU | 90% | 91% | +1% |

二、GRPO 算法详解#

2.1 什么是 GRPO?#

flowchart TB subgraph GRPO核心思想 A["GRPO = Group Relative Policy Optimization"] B[核心创新] B --> B1[不需要价值网络(Critic)] B --> B2[通过组内对比计算优势] B --> B3[更高效的样本利用] C[与 PPO 的区别] C --> C1[PPO:需要训练价值网络估计状态价值] C --> C2[GRPO:通过组内对比直接计算相对优势] D[优势] D --> D1[更简单的训练流程] D --> D2[更低的计算成本] D --> D3[更稳定的训练过程] end

2.2 GRPO 训练流程#

flowchart TB A[问题] --> B[采样多条推理链] B --> C["推理链 1"] B --> D["推理链 2"] B --> E["..."] B --> F["推理链 k"] C --> G[执行验证] D --> G E --> G F --> G G --> H[计算奖励] H --> I[组内归一化] I --> J[计算相对优势] J --> K[更新策略]

2.3 GRPO 算法实现#

class GRPOTrainer:
"""GRPO 训练器"""
def __init__(self, model, verifier, group_size=4):
self.model = model
self.verifier = verifier
self.group_size = group_size
def train_step(self, problem):
"""GRPO 单步训练"""
# 1. 采样多条推理链
reasoning_chains = []
for _ in range(self.group_size):
chain = self.model.generate_reasoning(problem)
reasoning_chains.append(chain)
# 2. 执行并验证
rewards = []
for chain in reasoning_chains:
result = self.execute(chain)
is_correct = self.verifier.verify(problem, result)
rewards.append(1.0 if is_correct else 0.0)
# 3. 计算相对优势(组内对比)
mean_reward = sum(rewards) / len(rewards)
std_reward = (sum((r - mean_reward)**2 for r in rewards) / len(rewards)) ** 0.5 + 1e-8
advantages = []
for reward in rewards:
# 相对优势 = (奖励 - 组均值) / 组标准差
advantage = (reward - mean_reward) / std_reward
advantages.append(advantage)
# 4. 更新策略
for chain, advantage in zip(reasoning_chains, advantages):
self.model.update_policy(chain, advantage)
return {
"mean_reward": mean_reward,
"best_chain": reasoning_chains[max(range(len(rewards)),
key=lambda i: rewards[i])]
}

2.4 GRPO 的优势#

| 维度 | PPO | GRPO |
|---------------|------------------|---------------------------|
| 价值网络 | 需要 | 不需要 |
| 参数量 | +额外参数 | 原模型参数 |
| 训练复杂度 | 高 | 较低 |
| 样本效率 | 一般 | 更高 |
| 方差控制 | 需要 GAE | 组内对比自然降低 |
| 奖励类型 | 绝对奖励 | 相对奖励 |
| 适用场景 | 通用 RL | 推理任务 |

三、R1-Zero 纯 RL 突破#

3.1 什么是 R1-Zero?#

flowchart LR subgraph 传统训练 A1[预训练] --> B1[SFT] B1 --> C1[RL] end subgraph R1-Zero A2[预训练] --> B2[纯 RL] end style B2 fill:#f44336,color:#fff
flowchart TB subgraph R1-Zero实验设计 A[大胆假设] A --> A1[不需要任何监督微调(SFT)] A --> A2[直接从预训练模型开始 RL 训练] A --> A3[推理能力能否自发涌现?] B[实验结果] B --> B1[ AIME:约 70% 准确率] B --> B2[接近经过 SFT 的模型] B --> B3[推理行为自发涌现] C[涌现的推理行为] C --> C1["反思:「让我验证一下...」"] C --> C2["回溯:「等等,这里可能有问题」"] C --> C3["规划:「分步解决...」"] C --> C4[验证:自我检查中间结果] D[意义] D --> D1[证明 SFT 不是必需的] D --> D2[展示纯 RL 的潜力] D --> D3[降低推理模型训练门槛] end

3.2 涌现行为示例#

flowchart TB subgraph R1-Zero涌现行为 A["问题:计算 (127 + 85) × 23 - 456"] B[R1-Zero 推理链] B --> B1["「首先计算括号内:127 + 85 = 212"] B --> B2["等等,让我验证:120 + 80 = 200,7 + 5 = 12,200 + 12 = 212"] B --> B3["正确。"] B --> B4["然后计算 212 × 23..."] B --> B5["200 × 23 = 4600"] B --> B6["12 × 23 = 276"] B --> B7["4600 + 276 = 4876"] B --> B8["最后 4876 - 456 = 4420"] B --> B9["让我再检查一遍..."] B --> B10["212 × 23 = 4876 "] B --> B11["4876 - 456 = 4420 "] B --> B12["答案是 4420。」"] C[注意] C --> C1[这些行为没有被训练过,而是自然涌现] end

3.3 R1-Zero vs R1#

| 维度 | R1-Zero | R1 |
|---------------|------------------|--------------------------|
| SFT 阶段 | 无 | 有 |
| 训练复杂度 | 更简单 | 更复杂 |
| AIME 分数 | ~70% | ~79% |
| 可读性 | 较差 | 较好 |
| 研究价值 | 极高 | 实用价值高 |
| 涌现行为 | 明显 | 同样存在 |
结论:SFT 仍是提升性能和可读性的有效手段,但不是必需

四、671B MoE 架构#

4.1 架构设计#

flowchart TB A[输入 Token] --> B[路由器] B --> C{选择专家} C --> D[Expert 1] C --> E[Expert 2] C --> F["..."] C --> G[Expert 8] D --> H[加权求和] E --> H F --> H G --> H H --> I[输出]
flowchart TB subgraph DeepSeek R1 MoE架构 A[总参数] A --> A1[671B] B[激活参数] B --> B1[37B(每 token)] B --> B2[激活率:约 5.5%] C[专家配置] C --> C1[总专家数:256] C --> C2[每层激活:8 个] C --> C3[共享专家:部分专家被所有 token 共享] D[效率优势] D --> D1[推理成本接近 37B 稠密模型] D --> D2[但拥有 671B 的模型容量] D --> D3[性价比极高] E[创新设计] E --> E1[共享专家:捕获通用知识] E --> E2[路由专家:处理特定领域] E --> E3[负载均衡:动态调整专家使用] end

4.2 与稠密模型的对比#

| 模型 | 总参数 | 激活参数 | 推理相对成本 |
|---------------|-------------|-------------|------------------|
| LLaMA 70B | 70B | 70B | 2x |
| DeepSeek R1 | 671B | 37B | 1x(基准) |
| o1 (估计) | ~1T? | ? | 高 |
DeepSeek R1 的效率:
• 671B 容量,但只激活 37B
• 推理成本接近 37B 稠密模型
• 性能接近 o1 水平

五、蒸馏模型生态#

5.1 蒸馏模型规格#

| 模型 | 参数量 | AIME | 本地部署 |
|----------------------|-------------|-------------|-------------|
| R1-Distill-Qwen-1.5B | 1.5B | 28% | 单卡消费级 |
| R1-Distill-Qwen-7B | 7B | 56% | 单卡 |
| R1-Distill-Qwen-14B | 14B | 66% | 单卡 |
| R1-Distill-Qwen-32B | 32B | 72% | 2卡 |
| R1-Distill-Llama-70B | 70B | 78% | 4卡 |

5.2 蒸馏的价值#

flowchart TB subgraph 蒸馏模型价值 A[降低部署成本] A --> A1[7B 模型单张消费级 GPU 可运行] A --> A2[企业可以本地部署] A --> A3[保护数据隐私] B[继承推理能力] B --> B1[从大模型继承推理能力] B --> B2[小模型也有不错的表现] B --> B3[性价比极高] C[生态繁荣] C --> C1[各种规模的模型选择] C --> C2[适应不同硬件条件] C --> C3[加速应用落地] end

六、开源影响与意义#

6.1 打破垄断#

flowchart TB subgraph DeepSeek R1开源意义 A[对研究者] A --> A1[可以研究完整的推理模型架构] A --> A2[可以分析训练方法] A --> A3[可以复现和改进] B[对开发者] B --> B1[可以本地部署推理模型] B --> B2[可以进行定制化微调] B --> B3[无 API 成本限制] C[对企业] C --> C1[降低 AI 应用门槛] C --> C2[保护数据隐私] C --> C3[减少对闭源 API 依赖] D[对行业] D --> D1[打破推理模型垄断] D --> D2[推动 AI 民主化] D --> D3[促进公平竞争] end

6.2 推动生态发展#

flowchart TB A[DeepSeek R1 开源] --> B[本地部署方案涌现] A --> C[微调工具成熟] A --> D[行业应用落地] A --> E[学术研究加速] B --> F[中小企业受益] C --> G[定制化能力提升] D --> H[AI 应用普及] E --> I[技术进步加速]

常见问题 FAQ#

Q1:DeepSeek R1 和 o1 哪个更好?

A:各有优势。o1 在某些基准上略高,但 R1 完全开源,可本地部署、可微调,性价比更高。

Q2:R1-Zero 意味着 SFT 没用了吗?

A:不是。R1-Zero 证明了纯 RL 的可行性,但 SFT 仍是提升性能和可读性的有效手段。R1(经过 SFT)性能更好。

Q3:普通显卡能运行 DeepSeek R1 吗?

A:完整 671B 模型需要多卡集群。但蒸馏模型(7B/32B)可以在消费级显卡上运行。

Q4:GRPO 可以用于其他任务吗?

A:理论上可以,但 GRPO 特别适合有明确验证标准的任务(数学、代码等)。对于主观任务,RLHF 可能更合适。

Q5:DeepSeek R1 如何获取?

A:从 Hugging Face 或 DeepSeek 官网下载,完全免费,MIT 协议。


小结#

DeepSeek R1 证明了开源推理模型的可行性。

核心贡献:

flowchart TB subgraph DeepSeek R1核心总结 A[GRPO 算法] --> A1[无需价值网络的高效 RL] B[R1-Zero] --> B1[证明 SFT 非必需,推理能力可涌现] C[MoE 架构] --> C1[671B 容量,37B 激活,高效率] D[蒸馏生态] --> D1[1.5B-70B,降低部署门槛] E[开源贡献] --> E1[打破推理模型垄断,推动 AI 民主化] end

开源让 AI 更加平等。


参考资料#

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

DeepSeek R1 与 GRPO:开源推理模型的突破
https://blog.souloss.com/posts/machine-learning/llm-paper-history/deepseek-r1-and-open-source-reasoning/
作者
Souloss
发布于
2025-02-22
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时