一句话定义:PPO(Proximal Policy Optimization,近端策略优化)是一种强化学习算法,核心规矩是——每次更新策略时只允许它改变一点点,谁想一步迈太大,就把它拦住。
要理解它,先看强化学习里最常见的做法:策略梯度(policy gradient)。你可以把它想象成教小孩打乒乓球。孩子打了一板,得分了,你就说“刚才那个动作对,下次多做”;失误了,就说“少做”。问题是,如果孩子偶然蒙对一次,你激动地说“以后每一板都这么打”,他可能把之前学的基本功全扔了,下一轮直接崩盘。策略模型也一样:奖励信号一放大,参数更新过猛,原来生成的数据分布立刻失效,后面的反馈变得没有意义,训练就崩了。
PPO 的解法是给每次改动作设一个“安全幅度”。它先比较新旧策略对同一动作的偏好程度,算出一个比例:新策略比旧策略更喜欢这个动作多少倍。如果这个比例偏离 1 太多——比如超过 1.2 或低于 0.8——PPO 就把这部分收益“裁剪”(clip)掉,不再鼓励继续往这个方向猛走。于是,哪怕某个动作奖励再高,策略也只能小步挪过去。训练过程中通常还会配一个价值网络估计“基准分”,用 GAE 之类的技术算优势值,判断某个动作到底比平均水平好多少;同时用 KL 散度监控新旧策略偏离多远,偏得太狠就踩刹车。
这里容易和几个相邻概念混淆:
| 对比项 | PPO | DPO(AI 词典:直接偏好优化">直接偏好优化) | SFT(监督微调) |
|---|---|---|---|
| 学习信号 | 奖励模型给的分数 | 人类偏好对 | 标准答案 |
| 是否需要在线采样 | 需要,边生成边学 | 通常不需要 | 不需要 |
| 训练复杂度 | 高,组件多、超参敏感 | 较低,像做分类 | 最低 |
| 典型用途 | RLHF 的偏好对齐阶段 | 替代 PPO 的轻量方案 | 让模型学会格式和知识 |
和 TRPO(信任区域策略优化)相比,PPO 也限制更新幅度,但 TRPO 用 KL 散度做硬约束、要算二阶信息,实现重;PPO 用裁剪近似这个约束,简单、好并行,所以成了 RLHF 里的默认选项。而 DPO 之所以流行,正是因为 PPO 这条链路太麻烦:要奖励模型、价值模型、在线生成,还要反复调 KL 系数、学习率、批次大小;稍有不慎,奖励分数一路涨,人看输出却越来越怪,也就是奖励作弊(reward hacking)。DPO 直接拿偏好数据当训练信号,省掉了在线采样和奖励模型,工程上友好得多。具体实现细节、超参默认值,以官方代码库和论文页面为准。
对从业者,PPO 的启示是:对齐不是“一次教会”,而是反复小步纠偏;调参时盯住 KL、裁剪比例和真实输出质量,别只看奖励曲线。对普通人,它解释了一个现象:大模型的后训练为什么又贵又慢——因为每一步都得小心翼翼,宁可慢,也不能崩。
