582 字
2 分钟
DeepSeek R1 与 GRPO:开源推理模型的突破
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: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning - DeepSeek Team 2025
- DeepSeek-V3 Technical Report - DeepSeek Team 2024
- DeepSeek GitHub
支持与分享
如果这篇文章对你有帮助,欢迎支持作者或分享给更多人
DeepSeek R1 与 GRPO:开源推理模型的突破
https://blog.souloss.com/posts/machine-learning/llm-paper-history/deepseek-r1-and-open-source-reasoning/ 部分信息可能已经过时
相关文章 智能推荐






