03 RLHF 核心数学推导

Lingfeng2026-04-03

03 RLHF 核心数学推导

RLHF(Reinforcement Learning from Human Feedback)是让大语言模型对齐人类偏好的核心技术。本文从 Bradley-Terry 模型讲起,推导奖励模型训练和 PPO-RLHF 的完整数学流程。

1. RLHF 整体框架

RLHF 分为三个阶段:

阶段目标方法
Stage 1: SFT监督微调最大似然训练
Stage 2: RM训练奖励模型Bradley-Terry + 对比学习
Stage 3: PPO强化学习优化PPO + KL 惩罚

本文聚焦 Stage 2 和 Stage 3 的数学推导。

2. Stage 2: 奖励模型训练

2.1 人类偏好数据

收集人类对模型输出的偏好比较:

给定提示 ,模型生成两个回复 (chosen/winner)和 (rejected/loser),人类标注哪个更好。

训练数据格式

2.2 Bradley-Terry 模型

问题:如何从比较数据中学习一个标量奖励函数?

Bradley-Terry 模型假设:两个选项被偏好的概率可以表示为它们"潜在得分"的函数。

是奖励函数,表示对 的"得分",则人类偏好 优于 的概率为:

2.3 推导 Bradley-Terry 概率公式

Step 1:假设潜在得分服从 Gumbel 分布

Gumbel 分布是一种极值分布,具有一个关键性质:

如果 独立,则:

Step 2:链接到奖励模型

假设每个回复 有一个"真实奖励" ,人类判断时观察到的奖励带有噪声:

则人类选择 的概率为 的概率:

Step 3:应用 Gumbel 分布性质

根据 Gumbel 分布性质:

其中 是 sigmoid 函数。

这就是 Bradley-Terry 模型的核心公式!

2.4 一致性检验:Sigmoid 形式

注意到:

核心结论:偏好概率只依赖于奖励差值

2.5 奖励模型训练目标

最大似然估计

给定数据集 ,奖励模型的训练目标是最大化观测到的偏好概率:

展开:

2.6 梯度推导

对参数 求梯度:

Step 1:损失函数

Step 2:利用对数 sigmoid 导数

Step 3:链式法则

直觉理解

  • 是模型"错误预测 更好"的概率(接近 0 表示预测正确)
  • 当模型预测正确时,梯度接近 0,更新幅度小
  • 当模型预测错误时,梯度较大,会显著调整

3. Stage 3: PPO-RLHF

3.1 目标设定

给定训练好的奖励模型 ,我们希望优化语言模型 使得期望奖励最大化。

问题:直接最大化奖励会导致:

  1. 奖励黑客(Reward Hacking):模型学会欺骗奖励模型,而不是真正对齐人类偏好
  2. 灾难性遗忘:模型忘记预训练知识,输出不连贯的内容

解决方案:添加 KL 散度约束,限制模型不要偏离参考模型太远。

3.2 KL 惩罚的推导

目标函数

其中:

  • 是参考模型(通常是 SFT 模型)
  • 控制 KL 惩罚强度

3.3 KL 散度的展开

为什么用正向 KL 而不是逆向 KL?

  • 正向 KL: —— mode-covering,鼓励 覆盖 的所有模式
  • 逆向 KL: —— mode-seeking,鼓励 只覆盖一个模式

在 RLHF 中,我们希望 不要偏离 太远,正向 KL 更合适。

3.4 PPO-RLHF 目标函数

结合 PPO 的 Clip 目标和 KL 惩罚:

其中:

  • 是 token 级重要性权重
  • 是优势估计( 是学到的价值函数)

3.5 完整 PPO-RLHF 目标

实践中,完整目标函数包含:

公式作用
PPO-Clip 目标稳定策略优化
价值函数学习
熵奖励,鼓励探索
KL 惩罚防止偏离参考模型

3.6 为什么用 KL 惩罚而不是 Clip?

你可能问:PPO 已经有 Clip 防止策略变化太大,为什么还要 KL 惩罚?

关键区别

  • Clip:限制 相对于 (同一个 epoch 内)
  • KL 惩罚:限制 相对于 (参考模型,通常是 SFT 后的模型)

目的不同

  • Clip 保证单次更新稳定
  • KL 惩罚保证长期不偏离"好"的基准

4. 奖励模型的局限性

4.1 奖励函数的不唯一性

Bradley-Terry 模型只决定了奖励的差值,不决定绝对值。

对于任意函数

有相同的偏好预测:

解决方案:标准化奖励,或在损失中加入正则项。

4.2 Over-optimization 问题

随着 PPO 优化,语言模型可能会找到奖励模型的"漏洞",获得高奖励但实际质量下降。

表现

  • 奖励持续上升
  • KL 散度持续增大
  • 实际生成质量反而下降

This is known as Goodhart's Law in action:

"When a measure becomes a target, it ceases to be a good measure."

5. PPO-RLHF 算法伪代码

PPO-RLHF 算法:

输入:
- 预训练语言模型 π_init
- SFT 微调后的参考模型 π_ref
- 奖励模型 r_φ
- 初始策略参数 θ(从 π_ref 复制)
- 初始价值函数参数 ω

For iteration = 1, 2, ...:
    1. 生成回复:
       对一批 prompts X = {x_1, ..., x_n}
       用当前策略 π_θ 生成回复 {y_1, ..., y_n}
    
    2. 计算奖励:
       For each (x, y):
           r(x, y) = r_φ(x, y)
           KL 惩罚项(提前计算):
           kl_penalty = β * ∑_t log(π_θ(y_t|x,y_<t) / π_ref(y_t|x,y_<t))
           final_reward = r(x, y) - kl_penalty
    
    3. 计算优势(GAE):
       用价值函数 V_ω 估计优势 Â_t
    
    4. PPO 更新(多轮 epoch):
       For epoch = 1, ..., K:
           L_CLIP(θ) = 𝔼_t[min(r_t(θ)Â_t, clip(r_t(θ),1-ε,1+ε)Â_t)]
           L_KL(θ) = 𝔼_t[D_KL(π_θ || π_ref)]
           L(θ) = L_CLIP(θ) - L_KL(θ)
           θ ← θ + α ∇_θ L(θ)
    
    5. 更新价值函数:
       L_VF(ω) = 𝔼_t[(V_ω(s_t) - V_t^target)²]
       ω ← ω - α ∇_ω L_VF(ω)

6. 实际训练中的技巧

6.1 奖励归一化

训练前对奖励模型输出做归一化:

其中 是训练集上的均值和标准差。

6.2 KL 惩罚的自适应调整

参考 PPO-Penalty,可以自适应调整

  • 如果 KL > 目标值:增大
  • 如果 KL < 目标值/2:减小

6.3 奖励塑形(Reward Shaping)

为每个 token 分配奖励,而非整个回复一个奖励:

或者使用 KL 惩罚的 token-wise 分解。

7. 总结

阶段核心公式目标
RM 训练学习人类偏好
PPO-RLHF优化奖励 + 保持对齐
KL 惩罚防止偏离参考模型

RLHF 的核心思想

  1. 用 Bradley-Terry 模型从偏好数据学习奖励
  2. 用 PPO 优化策略最大化奖励
  3. 用 KL 惩罚约束,防止偏离太远

8. 参考文献

  1. Ouyang, L., et al. (2022). "Training language models to follow instructions with human feedback." NeurIPS.
  2. Christiano, P., et al. (2017). "Deep reinforcement learning from human preferences." NeurIPS.
  3. Stiennon, N., et al. (2020). "Learning to summarize from human feedback." NeurIPS.
  4. Bradley, R. A., & Terry, M. E. (1952). "Rank analysis of incomplete block designs: I. The method of paired comparisons." Biometrika.
  5. Ziegler, D. M., et al. (2019). "Fine-Tuning Language Models from Human Preferences." arXiv.
Last Updated 4/3/2026, 4:40:46 PM