GRPO理论基础与LLM对齐
1. 引言
2024-2025年间,GRPO(Group Relative Policy Optimization)成为大语言模型(LLM)对齐领域最具影响力的强化学习算法之一1。从DeepSeekMath的初步提出到DeepSeek-R1的突破性应用,GRPO展示了无需评论员(critic)网络即可实现高效策略优化的潜力。
本文系统介绍GRPO的理论基础,包括:
- GRPO的核心算法与直觉
- GRPO与DPO的数学联系
- GRPO的优势动态分析
- GPG:广义策略梯度定理
- 在LLM对齐中的实践应用
2. GRPO核心算法
2.1 背景与动机
传统的PPO算法需要同时训练策略网络和价值网络(critic)。在LLM场景下,价值网络的高计算开销和训练不稳定性问题成为瓶颈。GRPO通过组内相对优势估计完全消除了对critic的依赖。
2.2 算法形式化
给定一个问题 和一个采样组 ,GRPO的优化目标为:
其中权重 定义为:
2.3 组内相对优势估计
GRPO的核心创新在于优势函数的定义:
其中:
- 是输出 的奖励(通常为二元可验证奖励:正确=1,错误=0)
- 是组内奖励均值
- 是组内奖励标准差
关键洞察:使用组内标准化奖励作为优势估计,不需要任何基线网络!
2.4 算法伪代码
def grpo_update(policy, prompts, G=8, epsilon=0.2):
"""
GRPO single update step
Args:
policy: current policy model
prompts: batch of prompts
G: group size (number of samples per prompt)
epsilon: clipping parameter
Returns:
policy_loss: GRPO loss value
"""
all_log_probs = []
advantages = []
for prompt in prompts:
# Sample G outputs for each prompt
outputs = [policy.sample(prompt) for _ in range(G)]
rewards = [verify(output) for output in outputs] # Binary reward
# Compute group-relative advantage
mu = mean(rewards)
sigma = std(rewards) if std(rewards) > 0 else 1.0
for i, (output, reward) in enumerate(zip(outputs, rewards)):
# Compute log probabilities
log_prob = policy.log_prob(output, prompt)
advantage = (reward - mu) / sigma
# PPO-style clipped importance sampling
old_log_prob = policy.old_log_prob(output, prompt)
ratio = torch.exp(log_prob - old_log_prob)
clipped_ratio = torch.clamp(ratio, 1 - epsilon, 1 + epsilon)
loss = -min(ratio * advantage, clipped_ratio * advantage)
all_log_probs.append(loss)
# Average over all tokens in all groups
policy_loss = torch.stack(all_log_probs).mean()
# Standard policy gradient update
policy_loss.backward()
optimizer.step()
return policy_loss3. GRPO与DPO的数学联系
3.1 DPO回顾
DPO(Direct Preference Optimization)2将RLHF的RL阶段简化为有监督学习:
3.2 GRPO→DPO的极限
Mroueh等人3在ICLR 2026的工作中证明了GRPO在特定条件下退化为DPO:
定理(GRPO-DPO渐近等价)3:
假设以下条件成立:
- 组大小
- 奖励函数可分解为 token 级别的贡献
- 使用极限情况
则GRPO的梯度方向与DPO的梯度方向相同。
3.3 有限组下的差异
在有限组 下,GRPO与DPO存在系统差异:
| 方面 | GRPO | DPO |
|---|---|---|
| 样本效率 | 更高(利用组内比较) | 较低(需要成对偏好) |
| 奖励类型 | 可验证奖励/标量奖励 | 偏好数据(成对比较) |
| 梯度方差 | 组内方差缩减 | 取决于偏好数据集 |
| 偏差 | 优势估计偏差 | 无偏(给定偏好) |
4. GRPO优势动态分析
4.1 成功放大机制
Mroueh等人的分析3揭示了GRPO的成功放大(Success Amplification)机制:
定理(成功放大)3:
设 个样本中有 个正样本(奖励=1), 个负样本(奖励=0)。在可验证奖励设置下,GRPO的梯度倾向于增加正样本的概率同时降低负样本的概率,且这种效应随着 接近 0 或 1 而增强。
具体而言,对于正样本 :
对于负样本 :
4.2 优势分布与梯度方差
引理(梯度方差分解):
GRPO的梯度方差可以分解为:
- 组间方差:由不同问题 之间的差异引起
- 组内方差:由同一问题内的采样变异性引起
通过适当的组大小选择(通常 ),组内方差可以被有效控制。
4.3 最优组大小
基于方差分析,最优组大小满足:
其中 是组内样本之间的相关性(由策略采样引入)。
5. GPG:广义策略梯度定理
5.1 从标准PG到GPG
Mao等人4提出的GPG(Generalized Policy Gradient)定理将标准策略梯度定理和GRPO统一在一个框架下:
定理(GPG)4:
设 为一个组, 为参考策略, 为组级别的评分函数,则GPG梯度为:
其中组级别优势定义为:
5.2 特殊情形
GPG框架包含了多种已有算法作为特例:
| 算法 | 评分函数 | 优势估计 |
|---|---|---|
| REINFORCE | ||
| GRPO | 组内标准化 | |
| DPO | 隐式相对优势 | |
| PPO | GAE | 优势函数估计 |
5.3 GPG与LLM推理
GPG框架为理解LLM推理提供了理论基础:
推论(推理作为策略优化):
在推理任务(如数学证明、代码生成)中,推理链可以被视为策略采样的轨迹。GRPO通过组内比较激励模型生成更多正确答案,同时保留”思考过程”的多样性。
6. 实践中的GRPO
6.1 超参数选择
| 超参数 | 推荐值 | 说明 |
|---|---|---|
| 组大小 | 8-16 | 数学任务:8;代码任务:16 |
| 截断参数 | 0.2 | 与PPO相同 |
| 学习率 | 1e-6 ~ 1e-5 | 较小,与SFT平衡 |
| KL系数 | 0 ~ 0.01 | 控制对参考模型的偏离 |
6.2 可验证奖励的设计
GRPO的有效性高度依赖于可验证奖励的质量:
def verify_math_answer(predicted: str, ground_truth: str) -> float:
"""Binary verification for math problems"""
# Normalize both answers
pred_normalized = normalize(predicted)
gt_normalized = normalize(ground_truth)
# Exact match after normalization
return 1.0 if pred_normalized == gt_normalized else 0.0
def verify_code_solution(code: str, test_cases: List[TestCase]) -> float:
"""Pass@k style verification for code"""
passed = sum(run_test(code, tc) for tc in test_cases)
return passed / len(test_cases)6.3 与SFT的平衡
实践中发现,过度的RL训练可能导致:
- 奖励黑客:模型学会”骗过”奖励函数而非真正解决问题
- 语言退化:输出变得生硬、不自然
建议的缓解策略:
- 混合训练:
- KL散度惩罚:添加 项
- 迭代式RLHF:交替进行GRPO更新和偏好收集
7. GRPO vs PPO:实践对比
| 维度 | GRPO | PPO |
|---|---|---|
| 计算开销 | 较低(无critic) | 较高(需训练critic) |
| 样本效率 | 高(组内信息利用) | 中等 |
| 稳定性 | 良好(无价值估计偏差) | 良好 |
| 适用场景 | 可验证奖励(Math/Code) | 连续奖励、复杂环境 |
| 收敛速度 | 快(无critic延迟) | 较慢 |
| 理论完备性 | 新兴(GRPO=DTO建立中) | 成熟(Fisher-Rao框架) |
8. 总结与展望
8.1 核心结论
- GRPO消除了对critic的依赖:通过组内相对优势估计,实现高效的策略优化
- GRPO与DPO存在渐近等价:在特定条件下,GRPO梯度与DPO梯度一致
- 成功放大机制:GRPO天然适合可验证奖励场景
- GPG统一框架:将策略梯度、GRPO、DPO纳入统一理论
8.2 开放问题
- 非可验证奖励场景:如何将GRPO扩展到偏好学习以外的场景?
- 自适应组大小:根据问题难度动态调整 ?
- 与Process Reward Model的结合:能否用PRM替代二元奖励?
8.3 未来方向
- GRPO的理论深化:建立更严格的有限样本界
- 混合算法设计:GRPO + PPO + DPO的组合
- 多任务GRPO:跨任务的知识迁移
参考文献
Footnotes
-
Shao, Z. et al. (2024). “DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models.” arXiv:2402.03300. ↩
-
Rafailov, R. et al. (2024). “Direct Preference Optimization: Your Language Model is Secretly a Reward Model.” NeurIPS 2024. ↩
-
Mroueh, Y. et al. (2026). “Reinforcement Learning with Verifiable Rewards: GRPO’s Loss, Dynamics, and Success Amplification.” ICLR 2026. arXiv:2503.06639. ↩ ↩2 ↩3 ↩4
-
Mao, W. et al. (2025). “GPG: Generalized Policy Gradient Theorem for Transformer-based Policies.” arXiv:2512.10365. ↩ ↩2