GRPO理论基础与LLM对齐

1. 引言

2024-2025年间,GRPO(Group Relative Policy Optimization)成为大语言模型(LLM)对齐领域最具影响力的强化学习算法之一1。从DeepSeekMath的初步提出到DeepSeek-R1的突破性应用,GRPO展示了无需评论员(critic)网络即可实现高效策略优化的潜力。

本文系统介绍GRPO的理论基础,包括:

  1. GRPO的核心算法与直觉
  2. GRPO与DPO的数学联系
  3. GRPO的优势动态分析
  4. GPG:广义策略梯度定理
  5. 在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_loss

3. 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

假设以下条件成立:

  1. 组大小
  2. 奖励函数可分解为 token 级别的贡献
  3. 使用极限情况

则GRPO的梯度方向与DPO的梯度方向相同。

3.3 有限组下的差异

在有限组 下,GRPO与DPO存在系统差异:

方面GRPODPO
样本效率更高(利用组内比较)较低(需要成对偏好)
奖励类型可验证奖励/标量奖励偏好数据(成对比较)
梯度方差组内方差缩减取决于偏好数据集
偏差优势估计偏差无偏(给定偏好)

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隐式相对优势
PPOGAE优势函数估计

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训练可能导致:

  • 奖励黑客:模型学会”骗过”奖励函数而非真正解决问题
  • 语言退化:输出变得生硬、不自然

建议的缓解策略:

  1. 混合训练
  2. KL散度惩罚:添加
  3. 迭代式RLHF:交替进行GRPO更新和偏好收集

7. GRPO vs PPO:实践对比

维度GRPOPPO
计算开销较低(无critic)较高(需训练critic)
样本效率高(组内信息利用)中等
稳定性良好(无价值估计偏差)良好
适用场景可验证奖励(Math/Code)连续奖励、复杂环境
收敛速度快(无critic延迟)较慢
理论完备性新兴(GRPO=DTO建立中)成熟(Fisher-Rao框架)

8. 总结与展望

8.1 核心结论

  1. GRPO消除了对critic的依赖:通过组内相对优势估计,实现高效的策略优化
  2. GRPO与DPO存在渐近等价:在特定条件下,GRPO梯度与DPO梯度一致
  3. 成功放大机制:GRPO天然适合可验证奖励场景
  4. GPG统一框架:将策略梯度、GRPO、DPO纳入统一理论

8.2 开放问题

  1. 非可验证奖励场景:如何将GRPO扩展到偏好学习以外的场景?
  2. 自适应组大小:根据问题难度动态调整
  3. 与Process Reward Model的结合:能否用PRM替代二元奖励?

8.3 未来方向

  1. GRPO的理论深化:建立更严格的有限样本界
  2. 混合算法设计:GRPO + PPO + DPO的组合
  3. 多任务GRPO:跨任务的知识迁移

参考文献

Footnotes

  1. Shao, Z. et al. (2024). “DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models.” arXiv:2402.03300.

  2. Rafailov, R. et al. (2024). “Direct Preference Optimization: Your Language Model is Secretly a Reward Model.” NeurIPS 2024.

  3. 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

  4. Mao, W. et al. (2025). “GPG: Generalized Policy Gradient Theorem for Transformer-based Policies.” arXiv:2512.10365. 2