[2025.11.10] GRPO学习

17 阅读1分钟

GRPO

PPO

在强化学习中,直接优化策略会导致训练不稳定,参数过大更新导致模型崩溃。PPO通过限制策略更新幅度,让每一步训练都不会太偏离当前策略。

LCLIP(θ)=Et[min(rt(θ)A[t],clip(rt(θ),1ε,1+ε)At)]L^{CLIP}(\theta) = \mathbb{E}_{t}[min(r_{t}(\theta)A_[t],clip(r_{t}(\theta),1-\varepsilon,1+\varepsilon)A_{t})]
  • rt(θ)=πθ(atst)πθold(atst)r_{t}(\theta) = \frac{\pi_{\theta}(a_{t}|s_{t})}{\pi_{\theta_{old}}(a_{t}|s_{t})}:新旧策略概率比,表示策略变化的程度。
  • AtA_{t}:优势函数,衡量动作偏离平均回报的程度
  • clipclip函数:限制更新幅度,防止策略突变

算法目标

强化学习算法的核心目标是优化策略πθ\pi_{\theta},最大化奖励积累RR。 策略梯度算法直接优化策略,有时参数更新过大会导致模型不稳定。为了解决该问题,PPO引入clipclip限制更新幅度,保证策略的稳定性。

通过梯度上升更新πθ\pi_{\theta}

PPO的目标是找到一个折中:在保持改进的同时防止策略变化过大导致不稳定。

值函数优化

PPO不仅优化策略,还同时更新优化值函数V(st)V(s_{t}),通过最小化均方误差来更新:

LVF(θ)=E[(V(st;θ)Rt)2]L^{VF}(\theta) = \mathbb{E}[(V(s_{t};\theta)-R_{t})^{2}]
  • V(st;θ)V(s_{t};\theta):当前状态的值函数预测。
  • Rt=k=0nγkrt+kR_{t} = \sum^{n}_{k=0}\gamma^{k}r_{t+k}:累计回报。

作用是使得Critic更准确地估计状态值。

策略熵正则化

熵正则化项可以鼓励策略的探索。

LENT(θ)=Et[H(πθ(st))]L^{ENT}(\theta) = \mathbb{E}t[H(\pi_{\theta}(s_{t}))]
  • H(πθ(st))H(\pi_{\theta}(s_{t})):策略熵,表示策略分布的不确定性。
  • 增加熵可以防止策略过早收敛到局部最优。

总损失函数

PPO集合策略损失、值函数损失和熵正则化项,组成总损失函数

L(θ)=Et[LCLIP(θ)c1LVF(θ)+c2LENT(θ)]L(\theta) = \mathbb{E}_t[L^{CLIP}(\theta) - c_1L^{VF}(\theta) + c_2L^{ENT}(\theta)]

算法流程

1.采样 -> 2.计算优势函数 -> 3.计算概率比率rt(θ)r_{t}(\theta) -> 4.策略更新 -> 5.值函数更新 -> 6.重复上述步骤

  1. 使用当前策略πθ\pi_{\theta}与环境交互,收集状态sts_{t}、动作ata_{t}、奖励rtr_{t}
  2. 评估某个动作ata_{t}在状态sts_{t}下相对于平均表现的优劣(优势函数AtA_{t}),利用AtA_{t}引导策略改进。
  3. 比较新策略和旧策略对动作ata_{t}的选择概率。
  4. clipclip剪辑范围为1ε1-\varepsilon1+ε1+\varepsilon,如果更新超过该范围会被惩罚。保证更新幅度适中,既不能太保守,又不能太激进。
  5. LENT(θ)=Et[H(πθ(st))]L^{ENT}(\theta) = \mathbb{E}t[H(\pi_{\theta}(s_{t}))]
  6. 通过多轮迭代使策略逐步优化,直到收敛。

改进动机

数学推理任务特点

  1. 多步依赖性:最终答案正确性依赖中间步骤。
  2. 部分正确性:存在部分正确但是整体错误的解。
  3. 稀疏奖励:仅最后答案有明确奖励信号。

PPO的不足

  • 单样本优势估计,方差大。
  • 绝对奖励无法区分组内样本的相对质量。

改进

分组

对同一prompt生成KK个响应组成一个组:

G={(y1,r1),(y2,r2),...,(yK,rK)}G = \{(y_1,r_1),(y_2,r_2),...,(y_{K},r_{K})\}

其中y为响应,r为奖励。

相对优势

组内标准化优势函数

A~i=riμGσG\tilde{A}_{i} = \frac{r_{i}-\mu_{G}}{\sigma_{G}}

相对排名优势

Airank=rank(ri)(K+1)/2K/2A^{rank}_{i} = \frac{rank(r_{i})-(K+1)/2}{K/2}

混合优势函数

AiGRPO=λA~i+(1λ)AirankA^{GRPO}_{i} = \lambda\tilde{A}_{i} + (1-\lambda)A^{rank}_{i}

λ=0.7\lambda = 0.7时效果最佳

目标函数设计

LGRPO(θ)=EG[1Ki=1Kmin(ri(θ)AiGRPO,clip(ri(θ),1ε,1+ε)AiGRPO)]L^{GRPO}(\theta) = \mathbb{E}_{G}[\frac{1}{K}\sum^{K}_{i=1}min(r_{i}(\theta)A_{i}^{GRPO},clip(r_{i}(\theta),1-\varepsilon,1+\varepsilon)A^{GRPO}_{i})]

通过相对优势降低方差,结合数组差异和排名信息,组均值作为天然基线无需额外网络。