PPO(近端策略优化)
OpenAI 提出的强化学习算法,通过裁剪目标函数约束策略更新幅度,避免策略崩溃;是 RLHF 第三步(PPO 优化阶段)的核心算法。
是什么
PPO 是一种策略梯度强化学习算法。其关键创新是裁剪替代目标函数(clipped surrogate objective):
其中 是新旧策略的概率比, 是优势函数, 是裁剪范围(通常 0.2)。
直觉:当 偏离 1 太远时,裁剪阻止了过大的策略更新。
为什么重要
PPO 是 RLHF 的训练引擎。在 RLHF 三步流程中:
- SFT → 教模型基础指令格式
- RM → 训练奖励模型模拟人类偏好
- PPO → 用 RM 的奖励信号优化语言模型
PPO 解决了两个核心挑战:
- 策略稳定性:裁剪机制防止单步策略更新过大导致语言能力崩溃
- KL 约束:RLHF 中额外加入 KL 散度惩罚项,防止策略偏离 SFT 基线太远
RLHF 中的 PPO 变体(InstructGPT)
InstructGPT 使用了 PPO-ptx 变体,混合两个目标:
- :标准 PPO 目标 + KL 惩罚项
- :预训练语言建模损失(混入以缓解对齐税)
- :预训练数据混合系数,InstructGPT 使用
与相邻概念的区别
| 概念 | 区别 |
|---|---|
| RLHF | PPO 是 RLHF 使用的优化算法,RLHF 是完整的训练范式 |
| DPO | DPO 绕过显式奖励模型和 PPO,直接用偏好数据训练;PPO 需要 RM 作为中间奖励函数 |
| TRPO | PPO 的前身,使用 KL 约束而非裁剪,计算更复杂 |
| REINFORCE | 最简单的策略梯度方法,没有 PPO 的裁剪稳定机制 |
常见误解
- ❌ PPO = RLHF → PPO 是通用 RL 算法,RLHF 是其在大模型对齐中的特定应用
- ❌ PPO 不需要调参 → 裁剪范围 、KL 系数 、预训练混合 都需仔细调整
相关
- RLHF(人类反馈强化学习)
- DPO(直接偏好优化)
- Policy Gradient(策略梯度) — PPO 的核心数学基础
- GRPO(组相对策略优化) — 去 Critic 的 PPO 变体
- verl — 支持 PPO 训练的开源框架
- 资料摘要:InstructGPT
- 对齐税
- Wiki 目录