GRPO(Group Relative Policy Optimization)是 DeepSeek 团队提出的一种在线强化学习方法。DeepSeek-R1 的推理能力就是用 GRPO 训练出来的——这让 GRPO 成了 2025 年最受关注的后训练方法之一。
离线 vs 在线
DPO 是离线的——偏好数据在训练开始前就准备好了。模型在整个训练过程中反复学习同一批固定的偏好对。
GRPO 是在线的——训练过程中,模型边生成边学习。每一步训练都用当前版本的模型生成新的回答,实时评分,实时调整。模型在不断与自己的最新版本对弈。
GRPO 的具体做法
对每个训练问题:
1. 用当前模型生成一组回答(比如 8 个)
2. 用奖励函数给每个回答打分
3. 计算组内每个回答的相对优势:
优势 = 该回答的分 − 组内平均分
4. 分数高于平均的回答 → 增大生成概率
分数低于平均的回答 → 减小生成概率
用一个具体的例子:
问题:北京是哪个国家的首都?
回答 1:中华人民共和国。(得分 0.9)
回答 2:北京是中国的首都,位于华北平原。(得分 0.8)
回答 3:中国的首都是北京啊!这是常识呢!(得分 0.4)
回答 4:我不太确定,可能是中国?(得分 0.2)
组内平均分 = 0.575
回答 1:优势 = +0.325 → 增大概率
回答 2:优势 = +0.225 → 增大概率
回答 3:优势 = −0.175 → 减小概率
回答 4:优势 = −0.375 → 减小概率
「组内相对」是 GRPO 的关键设计——它不需要一个绝对的好坏标准(什么分数算「好」?0.7?0.8?),只需要在一组回答中区分相对的好和坏。这降低了对奖励函数精确度的要求。
与 DPO 的核心区别
| DPO | GRPO | |
|---|---|---|
| 数据 | 训练前准备好的偏好对 | 训练中实时生成 |
| 比较 | 两两比较(好 vs 坏) | 组内相对排名 |
| 迭代 | 固定数据,一次训练 | 持续生成新数据 |
| 需要 | 偏好数据 | 奖励函数 |
GRPO 的优势在于:模型看到的始终是自己当前版本生成的数据,不会出现训练数据和模型能力脱节的问题。它的劣势在于:需要一个可靠的奖励函数——对于有明确对错的任务(数学、代码)容易设计,对于开放式对话很难。
在 Sophia 上的效果
Sophia 的技术报告记载了 GRPO 实验的结果:对评测分数没有显著影响。
原因与 RFT 类似——十亿参数模型的生成能力有限,一组回答之间的质量差异不够大。GRPO 依赖从组内差异中提取训练信号,当差异不显著时,训练信号就很弱。
DeepSeek-R1 有 6710 亿参数——是 Sophia 的 670 倍。在那个规模上,模型生成的回答之间有丰富的质量差异,GRPO 可以从中提取强烈的训练信号。在十亿参数的规模上,同样的方法提取不到足够的信号。
负面结果的价值
RFT 和 GRPO 在 Sophia 上都没有成功。但这些负面结果同样有价值——它们告诉后来者:在十亿参数规模上,简单的 DPO 可能比更复杂的方法更有效。 不是所有的训练技术都需要用上——最重要的是找到适合当前规模和场景的方法。
下一章节来看后训练的整体局限。