🧠 GRPO详解:DeepSeek的独门训练秘籍
世界上有一种训练方法叫GRPO,它不需要老师打分,只需要一群同学互相比拼就能变强。2024年底,DeepSeek用它把一个67B的小模型练成了数学推理怪兽——成本只有OpenAI o1的十分之一。
📖 什么是GRPO?
GRPO(Group Relative Policy Optimization,组相对策略优化)是DeepSeek在2024年12月提出的强化学习训练方法,是DeepSeek R1背后的核心技术。
简单说,它让AI模型通过"同题多答"来学习——对同一个问题生成多个答案,然后在小组内比较谁答得好,用相对排名来做奖励,不需要一个额外的"裁判模型"。
🎬 一句话理解
想象一个数学班考试:老师出了一道题,全班同学都做了一遍。老师不批卷子,只是把所有答案按对错排个序,告诉你"你排第3名"。你就知道了自己大概什么水平,下次往更好的方向努力。
这就是GRPO——不需要标准答案的参考,只需要小组内的相对排名。
🔧 GRPO的工作原理
Step 1:同题多答(Group Sampling)
对同一个提示词,模型生成G个不同的回答。
提示词:"解方程 3x + 7 = 22" 回答1: "x = 5" ✅ 正确 回答2: "x = 4" ❌ 错误 回答3: "3x = 15, x = 5" ✅ 正确 回答4: "我算不出来..." ❌ 放弃
Step 2:组内评分(Group Scoring)
用一个奖励函数(比如数学题的对错判断、代码的可执行性)给每个回答打分,然后在组内做归一化:
# GRPO的奖励归一化公式 reward_i = (score_i - mean(scores)) / std(scores)
Step 3:策略优化(Policy Optimization)
用KL散度约束的策略梯度来更新模型参数,让模型更倾向于生成高分组内的回答模式:
# 简化的GRPO目标函数 loss = -E[ min( r(θ) * A, clip(r(θ), 1-ε, 1+ε) * A ) ] # r(θ) = 新策略/旧策略的概率比 # A = 组内归一化的优势值 # ε = 裁剪参数(通常0.2)
⚖️ GRPO vs PPO vs RLHF
| 维度 | RLHF | PPO | GRPO |
|---|---|---|---|
| 奖励来源 | 人工标注 | 奖励模型 | 任务本身(规则/代码执行) |
| 是否需要裁判模型 | 需要(人类裁判) | 需要(奖励模型) | 不需要! |
| Value网络 | 不涉及 | 需要(4个网络) | 不需要! |
| 训练复杂度 | 极高(人力成本) | 高(4个网络要调) | 低(2个网络) |
| 代表模型 | InstructGPT | GPT-4 RL阶段 | DeepSeek R1 |
| 核心创新 | 人类偏好对齐 | 稳定的策略优化 | 组内相对奖励 |
🤔 为什么GRPO能火?
1. 砍掉了"裁判"这个成本大头
PPO训练需要先训练一个Reward Model(奖励模型),这玩意儿本身就要大量人工标注数据。GRPO直接跳过了这步——数学题对不对、代码能不能跑,这些用规则就能判断。
2. 砍掉了Value Network
PPO要同时训练4个网络(Actor、Critic、Reference、Reward),调参像在同时弹四架钢琴。GRPO只有2个(Actor、Reference),省一半显存、省一半调参痛苦。
3. 组内归一化天然稳定
传统方法奖励波动大("答对了+1,答错了-100"),GRPO在组内做z-score归一化,奖励信号天然平稳,训练不容易崩。
DeepSeek R1的启示:一个67B的模型用GRPO训练,数学推理能力超过了GPT-4o和Claude 3.5 Sonnet。训练成本据说只有OpenAI o1的1/10。这说明——方法选对了,小模型也能弯道超车。
🛠️ GRPO的局限性
- 只适合有明确判断标准的任务:数学、代码、逻辑推理等。对于"写得好不好看"这种主观任务,GRPO就没辙了——你总不能说"这篇作文排第3名"。
- 组大小G的选择很敏感:G太小,排名不够准确;G太大,推理成本高。DeepSeek论文中推荐G=64。
- 冷启动问题:一开始模型如果太弱,所有回答都差不多烂,归一化之后信号几乎为零。
- 泛化性待验证:目前GRPO主要在数学和代码领域验证了效果,通用对话能力的提升尚不明确。
🔗 GRPO与OpenClaw实战
虽然GRPO是模型训练层面的技术,但作为OpenClaw用户,你可以:
用OpenClaw构建GRPO训练Pipeline
// OpenClaw定时任务 - 自动化GRPO训练数据收集
// 每天自动采集推理题、生成多样回答、评估质量
// Step 1: 使用web_search采集数学/编程题
const questions = await web_search({
query: "competitive programming problems 2026"
});
// Step 2: 使用sessions_spawn生成多个Agent回答
for (let i = 0; i < 64; i++) {
sessions_spawn({
task: `Solve this problem: ${question}\nShow your step-by-step reasoning.`,
runtime: "subagent"
});
}
// Step 3: 收集结果并评估
// 可以用另一个Agent来评判答案质量
用OpenClaw自动化模型评估
# 利用OpenClaw的cron功能,定时检查模型表现
# 创建每日评估报告
openclaw cron add \
--name "daily-model-eval" \
--schedule "0 6 * * *" \
--message "评估当前Agent的推理能力:
1. 从glossary中选择5个术语
2. 用通俗方式解释每个术语
3. 自我评分(1-10分)
4. 生成改进建议
保存到 /var/www/miaoquai/reports/eval-YYYY-MM-DD.html"
📊 GRPO相关的技术生态
- DeepSeek R1 - GRPO的首个成功应用,67B模型数学推理SOTA
- DeepSeek R1-Zero - 纯GRPO训练,没有任何SFT数据,展示了"天然涌现推理能力"
- Open-R1 - 开源复现DeepSeek R1的项目
- TRL (Transformer Reinforcement Learning) - Hugging Face的RL训练库,已支持GRPO
🔮 GRPO的未来
GRPO的"去裁判化"思路正在影响整个RL for LLM领域:
- 领域扩展:从数学/代码扩展到医学、法律等有明确标准的领域
- 混合训练:GRPO + RLHF = 用GRPO做硬指标,RLHF做人偏好
- 多Agent辩论式训练:让多个Agent互相纠错,本质上是GRPO的动态版本
- 更高效的采样:用Speculative Decoding加速GRPO的采样阶段