跳到主要内容
Zubnet AI学习Wiki › PPO
训练

PPO

别名:Proximal Policy Optimization、近端策略优化
PPO(Proximal Policy Optimization)是一种强化学习算法,通过裁剪每次更新偏离旧策略行为的幅度,让策略以小而受控的步子前进。它由 OpenAI 于 2017 年提出,后来成为 RLHF 的默认优化器;InstructGPT、ChatGPT 等模型背后的偏好训练阶段,靠的正是它。

为什么重要

PPO 是让大型语言模型学会遵循指令、保持有用,而不只是一味预测文本的关键机制。如果你从事对齐、后训练或推理模型,就一定会碰到 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 完全跳过强化学习,用一种简单的分类式损失,直接在偏好对上拟合策略,对许多对齐任务都很好用。GRPODeepSeek 的推理模型工作而走红,它保留 RL 循环,却扔掉价值模型;对同一条提示词抽样一组回答,再以整组平均奖励估算每个回答的基线。移除 critic 会省下内存,也消灭整类调参头痛,因此用可验证奖励训练推理模型时,GRPO 已成了常见默认选择。还要记住,PPO 自己早于 LLM 时代——它原本是面向游戏智能体与模拟机器人控制的通用算法,后来才被征召进语言模型对齐

实践中的取舍

今天要不要选 PPO,是一道工程判断题。优点是,它在最大规模上久经考验,价值模型可以逐 token 分配功劳,给出细粒度学习信号;多年积累的工具与实践者经验,也让失败有迹可循。缺点则是,把四个模型放进 GPU 内存很昂贵,超参数空间又大又不宽容,而且奖励过度优化始终是背景风险:奖励模型分数可以一路上涨,人类评审却认为质量正在下降。基础设施成熟、又需要严格控制训练动态的团队,仍倾向选择 PPO,尤其是在奖励嘈杂而不是二元时。想要更简单、更便宜、更容易复现的团队,则越来越常从 GRPO 或 DPO 开始,只有撞墙后才回头拿 PPO。无论如何,理解 PPO 仍是一张入场券——几乎每一种现代后训练算法,都最好理解成对它的改造。

← 所有术语
ESC