PPO for LLM
把生成视为每个 token 一步的 MDP,奖励只在序列末尾给出并加上逐 token 的 KL 惩罚。本章讲价值网络的初始化、优势估计、四个模型(策略/参考/奖励/价值)的显存压力,以及实现细节对结果的巨大影响。
token 级 MDP 的构造
Section titled “token 级 MDP 的构造”把 LLM 的生成过程映射成 RL 的标准设定(→ 马尔可夫决策过程):
- 状态:提示 + 已生成的 token 序列 ;
- 动作:下一个 token (词表大小的离散动作空间);
- 奖励:整个序列生成完后,奖励模型给一个标量 ,逐 token 的 KL 惩罚 在每个 token 上给出;
- 回合:一个回复(到 EOS 或长度上限)。
标准构造是稀疏的末端奖励 + 逐 token KL:任务奖励(RM 分数)只在末尾,KL 惩罚是唯一的过程信号。每个 token 的总奖励:
优势估计与价值网络
Section titled “优势估计与价值网络”优势估计沿用 GAE(→ Actor-Critic 与 GAE):需要价值网络 对每个 token 位置的剩余价值做估计。实践细节:
- 价值网络通常从奖励模型初始化——RM 与价值头学的是相关的量("这个前缀有多好"),从 RM 初始化比随机初始化稳定得多;
- 价值头与策略分离(独立网络),还是共享主干(加一个 value head)——两种都有;独立网络更稳但显存翻倍;
- 解释方差是价值网络质量的诊断量(→ 超参数、稳定性与调试清单)。
四个模型并存:基础设施的压力
Section titled “四个模型并存:基础设施的压力”PPO for LLM 同时需要四个模型在显存中:
| 模型 | 角色 | 需要梯度吗 |
|---|---|---|
| 策略 | 被训练的模型 | 是 |
| 参考 | KL 惩罚的锚点 | 否(冻结) |
| 奖励 | 给分数 | 否(冻结) |
| 价值 | 优势估计 | 是 |
七个数十 B 级参数的模型并存,使 RLHF 的基础设施成本远高于 SFT——SFT 只有一个带梯度的模型。缓解手段:推理与训练分离的调度(生成用推理引擎、训练用训练框架)、offload、LoRA 式的参数高效训练。这是 LLM 后训练框架(TRL、OpenRLHF、veRL)的核心工程问题(→ 库与框架对比)。
实现细节决定结果
Section titled “实现细节决定结果”与游戏 PPO 一样(→ TRPO 与 PPO),实现细节对结果的影响巨大:
- KL 系数 的调度(固定还是退火);
- 优势归一化(batch 级还是全局统计);
- 生成温度与 top-p(影响探索与数据分布);
- 批量构造(一个提示采几条回复——组内比较的雏形);
- 价值损失系数、梯度裁剪、EOS 的处理。
这些细节在不同开源实现中互不相同,结果不可比(→ 评估协议与可复现性)。
PPO 是 RLHF 的默认算法,因为它把几个工程约束处理得最好:裁剪目标对高噪声梯度稳健、on-policy 稳定性在"奖励模型会被利用"的场景里值钱(策略不漂太远)、GAE 的价值基线对 token 级信用分配够用。它的代价是四个模型的显存压力——这正是 GRPO(→ GRPO 与可验证奖励)与 DPO(→ DPO 与无奖励模型方法)的改进动机。
- 稀疏的末端奖励 + 逐 token KL 是标准构造
- 价值网络通常从奖励模型初始化
- 四模型并存使 RLHF 的基础设施成本远高于 SFT