强化学习-第五篇 RLHF × PPO:大模型对齐的理论与工程闭环

大规模语言模型在预训练阶段掌握语言结构,在监督微调阶段学会模仿人类,但要真正“对齐”到用户偏好与社会规范,则需要一套具备稳定性与可控性的偏好优化机制。RLHF(Reinforcement Learning from Human Feedback)是目前行业内最成熟、最可靠的对齐技术之一,而 PPO(Proximal Policy Optimization)则是 RLHF 训练的工程核心。

尽管 RLHF 与 PPO 已广泛出现在技术报告和开源框架中,但它们的内部逻辑往往被过度简化:一些资料只给公式、不讲动机;一些工程实践只给训练脚本、不解释原因;还有不少文章混淆了奖励、价值、优势、策略更新与 KL 正则之间的关系。

在这里插入图片描述


一、RLHF 的定位:从模仿到对齐

大模型训练的典型范式由三阶段构成:预训练、监督微调(SFT)与对齐。预训练用于学习语言统计结构;SFT 拟合人工提供的高质量示范;但只有 RLHF,才让模型能够:

  • 更倾向回答“高价值、高质量、人类喜欢”的内容;
  • 提升帮助性、无害性与诚实性;
  • 在开放式任务中理解人类偏好和指令意图;
  • 在模糊语义下选择最优回答,而不是最可能的文本。

换句话说,RLHF 的目的不是提高语言模型的“预测能力”,而是调整其“价值观”。
其目标不是更高的逻辑正确性,而是更强的“行为趋向性”。

最重要的是:
RLHF 优化的对象不是一个回答,而是整个策略分布本身。

模型在训练中不是“学会如何回答一句话”,而是“移动语言生成分布,让它倾向产生偏好更高的回答”。因此 RLHF 的理论核心不是奖励函数,而是带惩罚的分布优化:

max⁡πE∗y∼π[R∗ϕ(x,y)];−;βDKL(π(⋅∣x)∣πref(⋅∣x)) \max_{\pi} \mathbb{E}*{y\sim\pi}[R*\phi(x,y)] ;-;\beta D_{KL}(\pi(\cdot|x) | \pi_{\text{ref}}(\cdot|x)) πmaxEyπ[Rϕ(x,y)];;βDKL(π(x)πref(x))

这条公式立即决定了 RLHF 的所有组成模块,本文将在后续逐一解释。


二、奖励模型(Reward Model):偏好信号从哪里来?

2.1 奖励模型的目标

RLHF 的起点是奖励模型(RM),其作用是将人类的主观偏好投射到模型可优化的空间中。由于绝对评分(如“给这段回答打 8 分”)非常不可靠,不同标注者标准不同,也不具备一致性,因此业界普遍采用 pairwise ranking

给一个 prompt,标注者判断:

  • 回答 A 是否优于回答 B?
  • 或回答 C 更差?

这样的二分类比给一个绝对分数更容易,也更一致。

RM 的训练目标自然写成:

LRM=−log⁡σ(Rϕ(x,y+)−Rϕ(x,y−)) L_{RM} = -\log \sigma(R_\phi(x,y^+) - R_\phi(x,y^-)) LRM=logσ(Rϕ(x,y+)Rϕ(x,y))

其中 σ\sigmaσ 是 logistic 函数。

2.2 奖励模型的本质含义

RM 并不是告诉我们“回答的真实好坏”,而是告诉我们在“人类偏好空间”中的排序信息。RM 学到的不是价值,而是“偏好映射”:
它是人类判断的近似器,而非真理裁判。

因此 RM 不具备长期一致性,也可能存在偏差,这正是 RLHF 中 KL 正则化存在的原因之一。


三、奖励塑形(Reward Shaping):为什么奖励只在序列末尾?

语言模型任务的奖励不同于电子游戏或机械控制任务。对于回答序列:

“第 17 个 token 的价值是否比第 16 个更大?
RM 并没有提供这种信息。”

语言的质量是整体性的,而不是 token-level 的。
因此 RLHF 中通常采用“末步稀疏奖励”:

rt=0 (t<T) r_t = 0 \ (t<T) rt=0 (t<T)
rT=Rϕ(x,y)−β∑t(log⁡πθ(at∣st)−log⁡πref(at∣st)) r_T = R_\phi(x,y) - \beta \sum_{t} ( \log \pi_\theta(a_t|s_t) - \log \pi_{\text{ref}}(a_t|s_t) ) rT=Rϕ(x,y)βt(logπθ(atst)logπref(atst))

此处 KL 惩罚项的作用将在后文展开。

该设计的原因包括:

  1. RM 只对序列有意义,对 token 无意义。
  2. 中间 reward 可能破坏语言一致性结构。
  3. 稀疏奖励让 PPO 的更新信号更加稳定。

因此 RLHF 训练过程必须使用这种序列级奖励结构,即把 RM 输出的标量奖励放在 EOS 对应的时刻。


四、 KL 正则化:语言模型训练的基石

语言模型的策略分布极其复杂。一个微小的 logits 调整,可能造成生成分布的巨大偏移。因此 RLHF 中引入 KL 惩罚:

KL penalty=β∑t=1T(log⁡πθ(at∣st)−log⁡πref(at∣st)) \text{KL penalty} = \beta \sum_{t=1}^T ( \log \pi_\theta(a_t|s_t) - \log \pi_{\text{ref}}(a_t|s_t) ) KL penalty=βt=1T(logπθ(atst)logπref(atst))

为什么 KL 如此重要?原因有三点:

  1. 保持语言能力稳定:过度优化 RM 会导致模型语言能力下降(hallucination、模式塌缩)。
  2. 防止奖励模型被投机利用:模型可能故意输出 RM 偏好的形式化内容,而不是有意义的回答(reward hacking)。
  3. 控制分布迁移速度:大模型对梯度敏感,无法像小型 RL 控制任务那样快速更新。

从优化角度看,RLHF 的目标是:

在 KL 约束下最大化奖励。
KL 控制策略的步幅,RM 决定策略的方向。

因此 KL 正则化不是锦上添花,而是 RLHF 是否稳定的核心因素。


五、价值函数与优势函数:为什么 RLHF 需要 Critic?

PPO 属于 Actor-Critic 方法,因此策略模型必须配备一个 Critic,即价值函数 Vψ(s)V_\psi(s)Vψ(s)

Critic 的意义在两个层面上:

5.1 从方差角度:减少策略梯度的噪声

如果直接使用 REINFORCE:

∇θlog⁡πθ(at∣st)⋅R \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot R θlogπθ(atst)R

该估计方差巨大(尤其是稀疏奖励),模型无法收敛。

Critic 提供 baseline,形成 TD 残差:

δt=rt+γV(st+1)−V(st) \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) δt=rt+γV(st+1)V(st)

5.2 从时间依赖角度:GAE 提供平滑信号

优势函数使用 GAE(Generalized Advantage Estimation):

At=∑l=0T−t(γλ)lδt+l A_t = \sum_{l=0}^{T-t} (\gamma\lambda)^l \delta_{t+l} At=l=0Tt(γλ)lδt+l

意义包括:

  • 保留序列结构
  • 减少高方差
  • 使优势信号集中在有效 token
  • 与语言模型的自回归结构自然耦合

优势函数是 RLHF 信号的核心。
没有它,训练会极度不稳定。


六、 PPO:分布控制的关键机制

PPO 的贡献不是强化学习性能,而是保证每次策略更新不会“过度偏移”。

其策略目标是:

Lπ=−E[min⁡(rtAt, clip(rt,1−ϵ,1+ϵ)At)] L_{\pi} = -\mathbb{E}\left[ \min(r_tA_t,\ \text{clip}(r_t,1-\epsilon,1+\epsilon)A_t) \right] Lπ=E[min(rtAt, clip(rt,1ϵ,1+ϵ)At)]

其中:

rt=πθ(at∣st)πθold(at∣st) r_t = \frac{\pi_{\theta}(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} rt=πθold(atst)πθ(atst)

clip 的目的:

  1. 避免策略因为优势过大而更新过猛
  2. 保证 KL 稳定在安全范围
  3. 提供可靠的、低方差的更新方向

没有 PPO 的 clip,模型会迅速漂移到 RM 偏好的局部最优区域而崩溃。


七、RLHF 的训练闭环:从信号源到梯度更新的系统描述

  • 整个 RLHF 流程从一批 prompt 开始。策略模型在无梯度模式下对这些 prompt 进行回答生成,同时记录每个 token 的
    log 概率、价值预测与 mask。参考模型为同样的 token 序列提供 log 概率基准,用于后续 KL 惩罚的计算。

  • 随后,奖励模型对整个回答序列生成一个标量奖励,这个奖励与 KL
    惩罚组合形成最终的有效奖励,并只作用于序列末端。此时奖励信号将与价值函数共同产生 TD 残差,继而通过 GAE 构成优势估计,成为 PPO
    更新的核心信号。

  • 进入 PPO 更新阶段时,模型会重新前向计算当前策略的 log 概率,并与 rollout 时存储的旧 log 概率构成比率。clip
    操作确保策略更新幅度不会过大,价值函数通过 MSE 损失提供稳定的基线估计,熵项维持生成的多样性。

  • 每一次更新之后,需要根据 KL 的实际偏移情况,动态调整 KL 的权重 β,确保模型既不会因 KL 过小而崩坏,也不会因 β
    过大而无法学习到偏好。这种自适应控制构成 RLHF 的稳定性基础。

  • 这个闭环持续循环,直到策略分布稳定地迁移到更符合人类偏好的区域,同时不破坏基础语言能力。


八、工程实现:关键步骤与注意事项

工程可落地性决定了 RLHF 系统是否真正可用。本节以工程师最关心的角度阐述实现要点。

8.1 Rollout 的严谨性

采样必须采用 evaluation 模式,保证 logits 与 dropout 行为一致。温度、top-p 等参数要固定,否则 rollout 分布不稳定。必须保存“旧策略 logprob”,切勿在 PPO 更新中重算,以避免策略估计偏差。

8.2 奖励构造的正确性

奖励模型必须只作用在序列级上,而 KL 惩罚需要按 token 分布累计。两者合成最终奖励,并仅在序列末端产生有效 signal。任何对中间 token 的奖励注入都会扰乱语言模型的结构化生成。

8.3 优势估计的数值稳定性

价值函数必须在 rollout 时即同步前向计算,以保持一致性。GAE 的 λ 一般取 0.95,使优势同时具备平滑性与适度的时间依赖。优势在使用前需进行标准化,以保证其分布具有良好的数值性质。

8.4 PPO 更新的细节要求

策略更新阶段必须重新前向计算 logits,并严格以 rollout 数据为基准。clip 的 ε 一般取 0.1,过小导致训练停滞,过大则引发训练振荡。价值函数的回归损失不可过大,以避免 Critic 主导梯度方向。

8.5 KL 自适应控制

实际训练中,KL 偏移是最灵敏的稳定性指标。若 KL 偏高,应立即提升 β;若偏低,则适当降低 β 以允许策略更加积极地追随偏好信号。β 的调整应采用平滑策略(如乘性因子),避免训练不稳定。

8.6 训练监控

平均 KL、序列长度分布、value loss、entropy、clip fraction、平均 reward 都需要实时监控。特别是 KL 与 entropy,是模型是否发生模式塌缩或 reward hacking 的关键信号。


九、常见失败模式与诊断原则

RLHF 的失败大多来自不稳定性,症状与根因大致可以整理如下:

  • KL 持续上升:策略偏移过大,需要调整 β 或降低 lr。
  • 模型输出模式极度单一:熵过低,需增加熵正则或 KL target。
  • 奖励爆炸增长但质量下降:典型 reward hacking。
  • value loss 振荡:价值函数学习率过大或缺乏 value clipping。
  • 训练完全不动:β 过高导致策略无法改善。

掌握这些现象与背后的机制,有助于对 RLHF 训练进行实时修正。


十、总结:基于 RLHF × PPO 的大模型对齐是一套“分布运动控制系统”

RLHF 不仅仅是“用奖励优化语言模型”。
它是一套完整的、闭环的“分布对齐系统”,由多个模块共同保障训练的可靠性与安全性。

  • 奖励模型提供人类偏好方向;
  • KL 正则约束语言分布的偏移;
  • 价值函数提供稳定的 baseline;
  • 优势估计构建平滑的梯度信号;
  • PPO 控制策略更新的幅度;
  • β 自适应控制保证系统稳态;
  • 整套闭环机制确保模型逐步迁移到更符合人类价值的区域。

它的本质不是“强化学习”,而是:

让模型以可控的速度向“更被人类偏好”方向进行分布迁移。

这一视角能统一解释 RLHF 的所有设计,也能够帮助工程师理解奖励、优势、策略更新、KL 正则之间的深层关系。


Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐