跳转到内容

PPO for LLM

把生成视为每个 token 一步的 MDP,奖励只在序列末尾给出并加上逐 token 的 KL 惩罚。本章讲价值网络的初始化、优势估计、四个模型(策略/参考/奖励/价值)的显存压力,以及实现细节对结果的巨大影响。

把 LLM 的生成过程映射成 RL 的标准设定(→ 马尔可夫决策过程):

  • 状态:提示 + 已生成的 token 序列 x, y<tx,\ y_{<t};
  • 动作:下一个 token yty_t(词表大小的离散动作空间);
  • 奖励:整个序列生成完后,奖励模型给一个标量 rϕ(x,y)r_\phi(x, y),逐 token 的 KL 惩罚 −β KL(πθ ∥ πref)-\beta\, \mathrm{KL}(\pi_\theta \,\|\, \pi_{\text{ref}}) 在每个 token 上给出;
  • 回合:一个回复(到 EOS 或长度上限)。

标准构造是稀疏的末端奖励 + 逐 token KL:任务奖励(RM 分数)只在末尾,KL 惩罚是唯一的过程信号。每个 token 的总奖励:

rt=−β (log⁡πθ(yt∣x,y<t)−log⁡πref(yt∣x,y<t)),rT=rT−1+rϕ(x,y).r_t = -\beta\, \big( \log \pi_\theta(y_t \mid x, y_{<t}) - \log \pi_{\text{ref}}(y_t \mid x, y_{<t}) \big), \qquad r_T = r_{T-1} + r_\phi(x, y).

优势估计沿用 GAE(→ Actor-Critic 与 GAE):需要价值网络 Vψ(x,y<t)V_\psi(x, y_{<t}) 对每个 token 位置的剩余价值做估计。实践细节:

  • 价值网络通常从奖励模型初始化——RM 与价值头学的是相关的量("这个前缀有多好"),从 RM 初始化比随机初始化稳定得多;
  • 价值头与策略分离(独立网络),还是共享主干(加一个 value head)——两种都有;独立网络更稳但显存翻倍;
  • 解释方差是价值网络质量的诊断量(→ 超参数、稳定性与调试清单)。

四个模型并存:基础设施的压力

Section titled “四个模型并存:基础设施的压力”

PPO for LLM 同时需要四个模型在显存中:

模型角色需要梯度吗
策略 πθ\pi_\theta被训练的模型是
参考 πref\pi_{\text{ref}}KL 惩罚的锚点否(冻结)
奖励 rϕr_\phi给分数否(冻结)
价值 VψV_\psi优势估计是

七个数十 B 级参数的模型并存,使 RLHF 的基础设施成本远高于 SFT——SFT 只有一个带梯度的模型。缓解手段:推理与训练分离的调度(生成用推理引擎、训练用训练框架)、offload、LoRA 式的参数高效训练。这是 LLM 后训练框架(TRL、OpenRLHF、veRL)的核心工程问题(→ 库与框架对比)。

与游戏 PPO 一样(→ TRPO 与 PPO),实现细节对结果的影响巨大:

  • KL 系数 β\beta 的调度(固定还是退火);
  • 优势归一化(batch 级还是全局统计);
  • 生成温度与 top-p(影响探索与数据分布);
  • 批量构造(一个提示采几条回复——组内比较的雏形);
  • 价值损失系数、梯度裁剪、EOS 的处理。

这些细节在不同开源实现中互不相同,结果不可比(→ 评估协议与可复现性)。

PPO 是 RLHF 的默认算法,因为它把几个工程约束处理得最好:裁剪目标对高噪声梯度稳健、on-policy 稳定性在"奖励模型会被利用"的场景里值钱(策略不漂太远)、GAE 的价值基线对 token 级信用分配够用。它的代价是四个模型的显存压力——这正是 GRPO(→ GRPO 与可验证奖励)与 DPO(→ DPO 与无奖励模型方法)的改进动机。

  • 稀疏的末端奖励 + 逐 token KL 是标准构造
  • 价值网络通常从奖励模型初始化
  • 四模型并存使 RLHF 的基础设施成本远高于 SFT