RLHF 完整数学推导
分类: 预训练与微调 · 难度: 进阶 · 关联讲座: L08
RLHF 完整数学推导
本文整理从人类反馈中强化学习(RLHF)的完整数学框架,涵盖预训练 LM 与助手模型的目标差异、SFT 目标函数、Bradley-Terry 偏好建模、奖励模型训练,以及 PPO 优化目标。同时收录 InstructGPT 三阶段训练流水线的形式化描述。
1. 预训练 LM 与助手模型的目标差异
📐 预训练 LM 与助手模型的目标差异
预训练语言模型的目标:在给定任意前缀的情况下,预测最可能的下一个 token:
PLM(xt+1∣x≤t;θ)
这个目标对输入内容完全无偏——给定 “The sky is” 和给定 “How do I make a bomb? Answer:” 都一视同仁,只预测下一个最可能的 token。
助手模型的目标:给定用户请求 x 和系统角色描述 r,生成有帮助的回复:
Passistant(y∣x,r;θ)其中 y 最大化用户满意度
两者的根本差异:LM 目标是描述性的(世界上的文本是什么样的),助手目标是规范性的(回复应该是什么样的)。这个差距——对齐问题(Alignment Problem)——是后训练(post-training)存在的根本原因。
2. SFT 目标函数
📐 SFT 目标函数
监督微调(Supervised Fine-Tuning) 与标准语言模型训练的区别仅在于损失计算的范围:
JSFT(θ)=−∑(xi,yi)∈DSFT∑t=1∣yi∣logPθ(yi(t)∣yi(<t),xi)
- (xi,yi):(指令 / 用户请求,示范回复)对
- 只在回复 yi 上计算损失,指令 xi 的 token 损失被 mask 掉(不参与梯度更新)
- 这与标准 CLM 预训练的区别:SFT 的模型需要学的是”给定指令,生成好的回复”,而不是”给定任意前缀,续写任意文本”
数学上,SFT 等价于在条件分布 P(y∣x) 上做最大似然估计(MLE),以人类示范回复作为正样本。
3. RLHF 完整流程
📐 RLHF 完整流程的数学推导
Step 1:训练奖励模型(Reward Model)
收集人类偏好数据:对同一输入 x,标注者标记哪个回复更好,形成偏好对 (yw,yl)(winner, loser)。
基于 Bradley-Terry 偏好模型(人类选择 yw 优于 yl 的概率):
P(yw≻yl∣x)=σ(r(x,yw)−r(x,yl))
训练 RM 最大化偏好数据的对数似然(最小化负对数似然):
JRM=−E(x,yw,yl)∼Dpref[logσ(rϕ(x,yw)−rϕ(x,yl))]
Step 2:PPO 微调策略
最大化奖励,同时通过 KL 惩罚约束策略不偏离参考模型过远:
JPPO(θ)=Ex∼D,y∼πθ(⋅∣x)[rϕ(x,y)−β⋅logπref(y∣x)πθ(y∣x)]
其中 β∈[0.01,0.1] 是 KL 惩罚系数,πref 是 SFT 模型(固定不更新)。
完整训练所需的模型数量:Policy(更新) + Reference(固定) + Reward(固定) + Value(更新)= 4 个模型同时在显存中,这是 PPO 内存开销大的根本原因。
4. InstructGPT 三阶段训练流水线
📐 InstructGPT 三阶段训练流水线
阶段 1 — SFT:在人工示范数据上监督微调,得到 πSFT:
θSFT=argmaxθ∑(x,y)∈DSFTlogPθ(y∣x)
阶段 2 — RM 训练:学习人类偏好排序,得到奖励函数 rϕ(x,y):
ϕ∗=argminϕ−E(x,yw,yl)[logσ(rϕ(x,yw)−rϕ(x,yl))]
阶段 3 — PPO:在 RM 的奖励下优化策略,约束不偏离 πSFT:
θ∗=argmaxθEy∼πθ[rϕ(x,y)−β⋅KL(πθ∥πSFT)]
关键结论(InstructGPT 论文原文数字):
在人类评测中,1.3B 参数 InstructGPT 优于 175B 参数 GPT-3(85% 的评测者偏好 InstructGPT 输出)。参数量相差 134 倍,但对齐使小模型胜出——说明行为对齐的收益远超单纯的模型规模。
5. PPO Clip 算法机制与 Token 级实现
📐 PPO Clip 目标完整推导
问题:朴素 REINFORCE 的高方差
REINFORCE 梯度:∇θJ=Ey∼πθ[∇θlogπθ(y∣x)⋅A(x,y)]
当一步更新过大时,重要性采样权重 πoldπθ 方差爆炸,训练崩溃。
PPO 的核心:Clip 重要性比
定义 token t 的重要性比(Importance Ratio):
rt(θ)=πold(yt∣x,y<t)πθ(yt∣x,y<t)
PPO Clip 损失(ϵ=0.2):
LCLIP(θ)=Et[min(rt(θ)⋅At,clip(rt(θ),1−ϵ,1+ϵ)⋅At)]
min 函数确保目标是悲观下界:只允许对策略有利的情况按实际计,对策略不利时取保守截断值。
Clip 行为分情况:
| 优势符号 | rt 越界时 | clip 作用 |
|---|
| At>0(好动作),rt>1.2 | 已过度增加概率 | 截断,禁止继续提高 |
| At<0(坏动作),rt<0.8 | 已过度降低概率 | 截断,禁止继续打压 |
LLM 后训练中的 Token 级 MDP 映射
| RL 概念 | LLM 中的对应 |
|---|
| 状态 st | 已生成序列 (x,y1,…,yt−1) |
| 动作 at | 下一个 token yt($ |
| 终末奖励 | RM 对完整回复评分 rϕ(x,y1:T) |
| 中间惩罚 | Per-token KL:−βlogπref(yt)πθ(yt) |
完整的 token 级奖励信号:
r~t=⎩⎨⎧rϕ(x,y1:T)−βlogπref(yT∣sT)πθ(yT∣sT)−βlogπref(yt∣st)πθ(yt∣st)t=Tt<T
优势函数用 GAE 计算:AtGAE=∑k≥0(γλ)kδt+k,其中 δt=r~t+γVϕ(st+1)−Vϕ(st)。
4 模型架构
| 模型 | 是否更新 | 作用 |
|---|
| Policy πθ | ✓ | 生成回复 |
| Value Network Vϕ | ✓ | 估计每 token 期望回报(与 Policy 等大) |
| Reward Model rϕ | ✗ | 对完整序列打分 |
| Reference Policy πref | ✗ | KL 惩罚基准 |
Value Network 与 Policy 参数量相当且需要梯度,是 PPO 显存开销是 DPO 两倍的根本原因。
6. RLHF / PPO / DPO / GRPO 层次关系
RLHF(框架): 用人类偏好数据训练 RM,再用 RL 最大化 RM 奖励
│
├── PPO(标准 RL 实现)
│ 需要:Policy + Value + RM + Reference(4 模型)
│ 在线采样 → 适合探索,代价高
│
├── GRPO(PPO 的轻量变体)
│ 去掉 Value Network,用组内统计估计优势
│ 需要:Policy + RM + Reference(3 模型)
│ 适合:稀疏自动评分任务(数学/代码)
│
└── DPO(RLHF 目标的数学重参数化)
绕过 RL 和 RM,直接在偏好对上优化
需要:Policy + Reference(2 模型)
离线,简单稳定,但无在线探索能力
三者共享底层假设:Bradley-Terry 偏好模型 P(yw≻yl∣x)=σ(rw−rl)