跳到主要内容

PPO 算法在 LLM 中的应用

要解决的问题

RM 给出标量奖励后,需在 离散 token 空间 上更新策略 πθ\pi_\theta,且序列很长、方差大。策略梯度方法不稳定;近端策略优化(PPO) 通过 clipped surrogate 限制单步更新幅度,成为 RLHF 阶段的事实标准(与 InstructGPT 同期普及)。

核心概念

AtA_t 为 advantage(可用 GAE 估计),rt(θ)=πθ(atst)πold(atst)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\text{old}}(a_t|s_t)} 为重要性采样比。PPO clipped 目标:

LCLIP(θ)=Et[min(rt(θ)At,  clip(rt(θ),1ϵ,1+ϵ)At)]\mathcal{L}^{\text{CLIP}}(\theta) = \mathbb{E}_t\Big[\min\big(r_t(\theta) A_t,\; \mathrm{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\, A_t\big)\Big]

LLM 场景下常见设定:

组件说明
状态 sts_t已生成 token 前缀
动作 ata_t下一 token
奖励常在 序列末rϕ(x,y)r_\phi(x,y);中间 token AtA_t 由 GAE 回传
参考策略πref\pi_{\text{ref}} 多为 SFT;KL 惩罚并入 reward 或 loss
Critic值函数 Vψ(st)V_\psi(s_t),常与 policy 共享骨干

总目标常写为:

L=LCLIPc1LVF+c2H[πθ]\mathcal{L} = \mathcal{L}^{\text{CLIP}} - c_1 \mathcal{L}^{\text{VF}} + c_2 \mathcal{H}[\pi_\theta]

其中 LVF\mathcal{L}^{\text{VF}} 为 value loss,H\mathcal{H} 为熵 bonus(鼓励探索,系数常很小)。

方法 / RLHF 中的 PPO 循环

  1. 从 prompt 集采样 xx
  2. πθ\pi_\theta rollout 生成 yy(可 temperature 采样)。
  3. 计算 r=rϕ(x,y)βlogπθ(yx)πref(yx)r = r_\phi(x,y) - \beta \log\frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}(KL 惩罚形式之一,见 4.3.4)。
  4. 用 GAE 得 AtA_t,多 epoch mini-batch 更新 θ,ψ\theta,\psi
  5. 周期性同步 πoldπθ\pi_{\text{old}} \leftarrow \pi_\theta

工程实践

挑战缓解
四模型显存ZeRO、CPU offload、colocate 推理
长序列限制 max response len;reward 仅末 token
训练崩溃降 LR、减 ϵ\epsilon、增 β\beta、早停 KL 飙升
实现trl.PPOTrainer、OpenRLHF、NeMo-Aligner

可观测:KL 散度、平均 reward、clip fraction、entropy、response 长度。

代表工作

  • Schulman et al., 2017 — Proximal Policy Optimization Algorithms(原论文)。
  • Ouyang et al., 2022 — LLM RLHF 中的 PPO 配方。
  • Zheng et al., 2023 — RLHF 实践 类博客与 rlhf 开源实现对比(arXiv: "Secrets of RLHF" 等)。

局限与注意点

  • PPO 超参敏感;复现困难 是社区共识。
  • 仅末 token reward 使 信用分配 粗糙,长 CoT 场景更明显。
  • 许多团队改用 DPO / GRPO 等绕过 PPO+critic(4.46.3 GRPO)。

相关章节