GRPO
Group Relative Policy Optimization (GRPO) 是深度求索 (DeepSeek) 提出的一种无价值网络的强化学习算法,专为大语言模型 (LLM) 的微调设计,尤其擅长提升数学推理、代码生成等复杂任务的性能。其核心思想是通过组内相对奖励的归一化和 KL 正则化实现高效稳定的策略优化,显著降低传统 PPO 对价值网络的依赖,同时提升训练效率和模型泛化能力。以下是其关键技术细节和应用场景的全面解析:
一、算法核心原理
组内相对奖励归一化
GRPO 摒弃了 PPO 中独立训练的价值网络,转而对同一输入生成的多个候选响应进行组内归一化处理。具体步骤如下:- 多响应生成:对每个输入查询qqq,当前策略生成GGG个候选响应{ o1,o2,…,oG}\{o_1, o_2, \dots, o_G\}{o1,o2,…,oG}。
- 奖励计算:使用奖励模型或人类反馈为每个响应分配奖励RiR_iRi。
- 标准化优势:计算组内均值μ\muμ和标准差σ\sigmaσ,将奖励转化为优势值:
Ai=Ri−μσ A_i = \frac{R_i - \mu}{\sigma}Ai=σRi−μ
这种归一化消除了奖励尺度的影响,使不同问题的优势信号可直接对比。
KL 正则化目标函数
GRPO 的优化目标结合了优势最大化和策略稳定性约束:
JGRPO(θ)=Eq,{ oi}[1G∑i=1G(A~i(θ)−βDKL(πθ∣∣πref))] \mathcal{J}_{\text{GRPO}}(\theta) = \mathbb{E}_{q, \{o_i\}} \left[ \frac{1}{G} \sum_{i=1}^G \left( \tilde{A}_i(\theta) - \beta D_{\text{KL}}(\pi_\theta || \pi_{\text{ref}}) \right) \right]JGRPO(θ)=Eq,{oi}[G1i=1∑G(A~i(θ)−βDKL(πθ∣∣πref))]
其中:- A~i\tilde{A}_iA~i是经过重要性采样调整的组归一化优势。
- β\betaβ控制 KL 散度项DKLD_{\text{KL}}DKL的权重,强制新策略πθ\pi_\thetaπθ与参考策略πref\pi_{\text{ref}}πref保持相似性,避免过度偏离导致训练不稳定。
无偏策略梯度估计
传统 PPO 存在策略梯度估计偏差(因使用旧策略的重要性采样),而 GRPO 通过轨迹级重要性校正(TIC-GRPO)进一步优化:- 轨迹级概率比:将 token 级重要性采样替换为整个轨迹的概率比,消除逐 token 偏差。
- 理论收敛性:证明 GRPO 及其变体在二进制奖励场景下可收敛到优于初始策略的固定点,成功概率p∗p^*p∗严格大于初始概率prefp_{\text{ref}}pref。
二、关键技术创新
价值网络替代方案
GRPO 通过组内归一化直接估计优势,完全移除了 PPO 中的价值网络,使训练内存消耗降低 30%-50%,特别适合 10B 以上规模模型的分布式训练。例如,DeepSeek-R1 在 685B 模型上的训练效率比传统 PPO 提升 2 倍。动态计算资源管理
结合预算强制机制 (Budget Forcing),GRPO 可在推理阶段动态调整计算资源:- 早期终止:若响应 token 数超过预设上限(如 32000),强制添加终止标记。
- 推理扩展:若模型过早终止,注入 “wait” 标记鼓励进一步思考。
该机制在数学基准测试中实现了 27% 的性能提升,同时减少 15% 的无效计算。
偏好聚合的非线性变换
与 RLHF 的对数池化不同,GRPO 通过组内归一化实现非线性偏好聚合。其稳态策略满足隐式不动点方程:
(1−PG(o∣πθ,q)−Eo′[PG(o′∣πθ,q)]β)πθ(o∣q)=πref(o∣q) \left( 1 - \frac{\mathcal{P}_G(o | \pi_\theta, q) - \mathbb{E}_{o'}[\mathcal{P}_G(o' | \pi_\theta, q)]}{\beta} \right) \pi_\theta(o | q) = \pi_{\text{ref}}(o | q)(1−βPG(o∣πθ,q)−Eo′[PG(o′∣πθ,q)])πθ(o∣q)=πref(o∣q)
其中PG\mathcal{P}_GPG表示组内偏好得分,这种设计使 GRPO 能捕捉更复杂的偏好模式。
三、训练流程与优化技巧
多阶段训练策略
- 初始化:使用预训练模型作为参考策略πref\pi_{\text{ref}}πref。
- 组采样迭代:每轮训练生成G=8−16G=8-16G=8−16个响应,计算归一化优势后更新策略。
- 混合奖励信号:结合二进制奖励(如答案正确性)和连续奖励(如步骤合理性),通过加权求和优化。
稳定性增强技术
- 自适应裁剪系数:根据组内奖励方差动态调整 PPO 风格的裁剪范围,避免梯度爆炸。
- 学习率预热:初始阶段使用线性升温策略,逐步激活 KL 正则化项,防止策略震荡。
分布式训练优化
- 组内并行计算:将不同候选响应分配到多个 GPU 并行计算奖励和梯度。
- 模型并行架构:采用张量切片 (Tensor Sharding) 技术,支持千亿参数模型的高效训练。
四、性能表现与应用场景
数学推理领域突破
DeepSeek-R1 采用 GRPO 训练后,在 AIME 2024 竞赛中取得 71.0% 的 Pass@1 分数,多数投票后提升至 86.7%,超越同期开源模型 15 个百分点。其关键机制包括:- 解题路径对比:通过组内候选响应的步骤合理性对比,引导模型选择更优推理路径。
- 错误响应惩罚:对错误答案施加负优势值,抑制低质量输出。
代码生成与逻辑推理
在 Python 算法题生成任务中,GRPO 引导模型探索递归、动态规划等不同实现方式,生成代码的准确率提升 22%,平均代码长度缩短 18%。其优势在于:- 语义一致性评估:通过奖励模型检测代码逻辑漏洞,强化语义正确性。
- 风格迁移能力:支持从自然语言描述到可执行代码的端到端优化。
资源受限环境适应性
结合预算强制机制,GRPO 在数学基准测试中实现 27% 的性能提升,同时将平均 token 消耗降低 12%。例如,在医疗法律文书处理中,GRPO 模型 PatientSeek 可在 500 token 内完成判决结果预测,误差从 11.5 个月降至 2.4 个月。
五、与主流算法的对比优势
| 维度 | PPO | DPO | GRPO |
|---|---|---|---|
| 价值网络需求 | 需要独立训练价值网络 | 无需价值网络,但依赖偏好排序 | 完全移除价值网络,通过组归一化替代 |
| 训练效率 | 中等(需维护双网络) | 高(直接优化偏好) | 极高(单网络+组内并行) |
| 奖励敏感性 | 高(依赖绝对奖励尺度) | 中(基于相对排序) | 低(组内归一化消除尺度影响) |
| 内存消耗 | 高(双网络参数存储) | 中(单网络+偏好数据) | 低(单网络+动态组采样) |
| 泛化能力 | 中等(易受奖励过拟合影响) | 高(直接对齐人类偏好) | 极高(通过 KL 正则化增强鲁棒性) |
六、挑战与改进方向
长度偏差问题
原始 GRPO 在优化中可能人为增加响应长