PPO(近端策略优化)

OpenAI 提出的强化学习算法,通过裁剪目标函数约束策略更新幅度,避免策略崩溃;是 RLHF 第三步(PPO 优化阶段)的核心算法。

是什么

PPO 是一种策略梯度强化学习算法。其关键创新是裁剪替代目标函数(clipped surrogate objective):

其中 是新旧策略的概率比, 是优势函数, 是裁剪范围(通常 0.2)。

直觉:当 偏离 1 太远时,裁剪阻止了过大的策略更新。

为什么重要

PPO 是 RLHF 的训练引擎。在 RLHF 三步流程中:

  1. SFT → 教模型基础指令格式
  2. RM → 训练奖励模型模拟人类偏好
  3. PPO → 用 RM 的奖励信号优化语言模型

PPO 解决了两个核心挑战:

  • 策略稳定性:裁剪机制防止单步策略更新过大导致语言能力崩溃
  • KL 约束:RLHF 中额外加入 KL 散度惩罚项,防止策略偏离 SFT 基线太远

RLHF 中的 PPO 变体(InstructGPT)

InstructGPT 使用了 PPO-ptx 变体,混合两个目标:

  • :标准 PPO 目标 + KL 惩罚项
  • :预训练语言建模损失(混入以缓解对齐税)
  • :预训练数据混合系数,InstructGPT 使用

与相邻概念的区别

概念区别
RLHFPPO 是 RLHF 使用的优化算法,RLHF 是完整的训练范式
DPODPO 绕过显式奖励模型和 PPO,直接用偏好数据训练;PPO 需要 RM 作为中间奖励函数
TRPOPPO 的前身,使用 KL 约束而非裁剪,计算更复杂
REINFORCE最简单的策略梯度方法,没有 PPO 的裁剪稳定机制

常见误解

  • ❌ PPO = RLHF → PPO 是通用 RL 算法,RLHF 是其在大模型对齐中的特定应用
  • ❌ PPO 不需要调参 → 裁剪范围 、KL 系数 、预训练混合 都需仔细调整

相关