PPO
为什么重要
深度解析
PPO 属于策略梯度方法,也就是通过把策略——在语言模型工作中就是模型本身——推向得分高的动作、拉离得分低的动作来改善它。招牌技巧是经过裁剪的代理目标:对每个动作,PPO 先算出当前策略赋予它的概率与旧策略概率之比,再乘上优势估计,也就是该动作比预期好多少,最后把比率裁剪进一个窄区间,通常是 0.8 到 1.2,防止任何单个 batch 把策略猛地扯太远。由于裁剪让激进更新仍然安全,算法可以在同一批采集数据上运行多个 epoch 的小批量梯度更新,比朴素策略梯度更节省样本。稳定性加上还不错的样本效率,让 PPO 多年来一直是默认的强化学习主力,先用于游戏和机器人基准,后来进入语言模型对齐。
目标函数周围的机器
PPO 很少独自运行。它是一种 actor-critic 方法,因此除了策略,也就是 actor,还要训练一个价值模型,也就是 critic,预测某个状态的预期奖励;这样,算法可以通过广义优势估计计算优势,不必苦等最终分数。到了 RLHF 环境,内存账单还会继续膨胀:原始模型的冻结副本充当参考策略,单独的奖励模型负责给分,因此一次完整训练可能同时把四个模型装进内存。参考模型之所以存在,是因为目标函数里包含当前策略与参考策略之间的 KL 散度惩罚,防止模型漂移到碰巧得高分的退化文本。要让这支合奏稳定训练,就得同时摆弄一批互相影响的超参数——裁剪区间、KL 惩罚系数、学习率和优势估计设置——PPO 难调的名声,很大一部分就来自这里。
PPO 如何驱动 RLHF
让 PPO 成名的流水线,从一个已经完成预训练、也在演示样例上做过监督微调的模型开始。人类标注者对同一条提示词采样出的多个回答排序,这些排序再被蒸馏成奖励模型,用来预测人们更喜欢哪个回答。接下来 PPO 接手:模型为新提示词生成回答,奖励模型打分,经过裁剪的目标加 KL 惩罚更新权重,偏向得分更高的行为。OpenAI 的 InstructGPT 和 ChatGPT 背后基本就是这套配方,它把 RLHF 从研究想法变成了让基础模型有用、会遵循指令的标准方法。问题在于奖励黑客——优化推得太猛,模型学会的是钻奖励模型的空子,不是产出真正更好的答案;所以 KL 锚点和谨慎的提前停止,在实践中至关重要。
它不等于 RLHF
一种常见简称把 PPO 和 RLHF 当成同一件事,但两者位于不同层次:RLHF 是从人类偏好中训练的整体范式,PPO 只是可以插进去的一种优化器。DPO 完全跳过强化学习,用一种简单的分类式损失,直接在偏好对上拟合策略,对许多对齐任务都很好用。GRPO 因 DeepSeek 的推理模型工作而走红,它保留 RL 循环,却扔掉价值模型;对同一条提示词抽样一组回答,再以整组平均奖励估算每个回答的基线。移除 critic 会省下内存,也消灭整类调参头痛,因此用可验证奖励训练推理模型时,GRPO 已成了常见默认选择。还要记住,PPO 自己早于 LLM 时代——它原本是面向游戏智能体与模拟机器人控制的通用算法,后来才被征召进语言模型对齐。
实践中的取舍
今天要不要选 PPO,是一道工程判断题。优点是,它在最大规模上久经考验,价值模型可以逐 token 分配功劳,给出细粒度学习信号;多年积累的工具与实践者经验,也让失败有迹可循。缺点则是,把四个模型放进 GPU 内存很昂贵,超参数空间又大又不宽容,而且奖励过度优化始终是背景风险:奖励模型分数可以一路上涨,人类评审却认为质量正在下降。基础设施成熟、又需要严格控制训练动态的团队,仍倾向选择 PPO,尤其是在奖励嘈杂而不是二元时。想要更简单、更便宜、更容易复现的团队,则越来越常从 GRPO 或 DPO 开始,只有撞墙后才回头拿 PPO。无论如何,理解 PPO 仍是一张入场券——几乎每一种现代后训练算法,都最好理解成对它的改造。