什么是 PPO(Proximal Policy Optimization)?

更新于

PPO(Proximal Policy Optimization)是一类 On-policy 策略梯度方法,它从采样轨迹改进策略,并通过裁剪或惩罚形式的替代目标抑制过大的更新。

快速了解

规范文档官方规范

工作原理

裁剪替代目标

[PPO 原始论文](https://arxiv.org/abs/1707.06347)提出在采集交互数据后,对替代目标执行多次随机梯度更新。PPO-Clip 使用 r = pi_new(a|s) / pi_old(a|s),并取未裁剪项和裁剪后 Advantage 加权项的较小值。Advantage 正负使裁剪表现出方向性:它消除过度有利变化的激励,但不会简单丢弃区间外所有样本。Value Loss、Entropy、Advantage Estimation、Mask 与 Optimizer 都是围绕核心目标的实现选择。

语言模型训练中的 PPO

经典 RLHF 让 Prompt 产生 On-policy Response Token,由 Reward Model 或可验证环境为轨迹评分,再用 Critic 估计 Return 并计算 Advantage。[InstructGPT](https://arxiv.org/abs/2203.02155)是有影响力的实现案例,而不是通用 PPO 规范。

异步生成和训练还会带来 Rollout Policy Staleness。运行记录应固定 Actor、Rollout、Reference、Reward 与 Tokenizer 版本,只对 Assistant Action Token 计算目标,并明确 KL 是修改 Reward 还是作为独立 Loss。

诊断与发布证据

训练 Reward 上升并不足以证明模型变好,因为策略可能利用奖励漏洞。应同时监控 Clip Fraction、Policy/Value Loss、Explained Variance、Entropy、近似 Policy Shift、Reference Divergence、各奖励分量、回答长度、非法输出和 Rollout Age。候选与基线必须在相同留出 Prompt 上通过确定性检查、校准后的人工或 Judge 复核、安全切片和重复采样;当奖励增长但任务成功率、多样性、安全或分布外行为回退时,应停止或回滚。

主要特点

  • 使用近期行为策略采集的轨迹,而不是固定离线数据集
  • 在每批 Rollout 上执行多轮 Minibatch 优化
  • 通过 Advantage 和当前策略相对旧策略的概率比加权更新
  • 裁剪有利的替代目标变化,但不保证严格 Trust Region
  • 常将 Actor、Critic、Entropy 控制与独立的参考策略 KL 组合使用
  • 优化后的 Reward 可能被利用,因此仍需留出任务和安全评测

常见用途

  1. 在经典 RLHF 管线中根据学习得到的奖励模型优化 LLM
  2. 根据代码测试、数学验证器、游戏或工具环境训练策略
  3. 在奖励依赖完整轨迹时优化多步 Agent
  4. 研究带学习价值基线的在线策略优化
  5. 比较 Actor-Critic RL 与 DPO、GRPO、RLOO 等后训练方法

示例

loading...
Loading code...

常见问题

PPO 的裁剪究竟约束什么?

PPO-Clip 限制采样动作概率比移出配置区间后继续改善替代目标的收益。它不会直接约束词表中每个概率,也不保证 KL 上界或排除破坏性优化步骤。团队仍需监控策略偏移、梯度、Value 行为和留出结果。

PPO 必须使用奖励模型吗?

不必须。PPO 需要环境给出的 Reward 或 Return,而不限定为学习得到的 Reward Model。经典 RLHF 常使用奖励模型;可验证奖励训练则可以使用测试、规则或环境结果。任何奖励来源都可能不完整或被利用,所以外部评测仍不可省略。

LLM PPO 中旧策略和参考策略有什么区别?

旧策略或行为策略生成当前 Rollout Batch,并出现在 PPO Importance Ratio 中;参考策略通常是冻结的 SFT Checkpoint,用于惩罚行为漂移。两者初始可能相同,但身份和用途不同,把它们的控制混成一个未命名 KL 或 Clip 参数容易导致实现错误。

PPO、DPO 和 GRPO 有什么区别?

PPO 是从新鲜轨迹和奖励学习的在线 Actor-Critic 方法族;DPO 通常直接优化离线偏好对,不需要 Rollout 与 Critic 循环;GRPO 的典型形式按同一 Prompt 的一组输出估计相对 Advantage,而不训练 Critic。最终选择仍取决于数据、奖励和评测质量。

哪些信号说明 PPO 训练正在失败?

Reward 上升但留出任务没有改善、参考策略偏离增大、Entropy 坍缩、Clip Fraction 极端、Value Explained Variance 很差、利用长度得分、非法格式、Rollout 过期和安全回退都是风险信号。必须在相同 Prompt 上与未修改基线比较,不能把高代理奖励直接当作产品提升。

相关术语

相关文章