609 lines
24 KiB
Markdown
609 lines
24 KiB
Markdown
---
|
||
title: 03-RLHF与对齐
|
||
draft: false
|
||
tags:
|
||
- RLHF
|
||
- 对齐
|
||
- 大语言模型
|
||
- 强化学习
|
||
---
|
||
|
||
# RLHF 与对齐技术
|
||
|
||
> 本笔记面向深度学习与强化学习科研人员,系统阐述 RLHF(Reinforcement Learning from Human Feedback)及其相关对齐技术的理论基础、数学推导与算法实现。
|
||
>
|
||
> 更新日期:2026-05-14
|
||
|
||
---
|
||
|
||
## 1. RLHF 的基本框架
|
||
|
||
### 1.1 InstructGPT 流程
|
||
|
||
InstructGPT(Ouyang et al., 2022)提出了 RLHF 的经典三阶段流程:
|
||
|
||
$$
|
||
\text{SFT} \rightarrow \text{RM} \rightarrow \text{PPO}
|
||
$$
|
||
|
||
#### 阶段一:监督微调(SFT)
|
||
|
||
给定 prompt 分布 $\rho(x)$,策略模型 $\pi_{\text{ref}}(y \mid x)$ 通过监督学习从人类标注的 prompt-completion 对学习:
|
||
|
||
$$\mathcal{L}_{\text{SFT}} = - \mathbb{E}_{(x,y) \sim \mathcal{D}_{\text{SFT}}} \left[ \log \pi_{\text{ref}}(y \mid x) \right]$$
|
||
|
||
其中 $\mathcal{D}_{\text{SFT}}$ 为人类标注数据。SFT 是**自回归监督最大似然**,等价于标准预训练续写目标,可无缝承接基座模型权重。
|
||
|
||
#### 阶段二:奖励建模(RM)
|
||
|
||
训练奖励模型 $r_\phi(x, y)$ 来预测人类偏好,详见第 2 节。
|
||
|
||
#### 阶段三:PPO 微调(RLHF)
|
||
|
||
使用强化学习算法(PPO)在奖励模型提供的奖励信号下微调语言模型,同时约束其不要偏离 SFT 模型太远。
|
||
|
||
**RLHF三阶段定位与轻量化方案**:
|
||
- **经典重型RLHF**:`SFT → RM → PPO`
|
||
- **轻量化对齐主流**:Prompt Tuning、LoRA+RLHF、冻结骨干仅微调对齐头,是科研落地高频方案
|
||
|
||
**RLHF训练稳定性核心手段**:
|
||
1. 自适应KL惩罚(动态调整 $\beta$)
|
||
2. 偏好数据温度平滑
|
||
3. 早停机制防止偏好过拟合
|
||
|
||
### 1.2 人类偏好数据与奖励建模
|
||
|
||
人类偏好数据的形式为三元组 $(x, y_w, y_l)$,其中:
|
||
- $x$:输入 prompt
|
||
- $y_w$:人类偏好的响应(preferred response)
|
||
- $y_l$:人类不偏好的响应(less preferred response)
|
||
|
||
奖励模型通过 Bradley-Terry 模型建模偏好概率:
|
||
|
||
$$
|
||
P(y_1 \succ y_2 \mid x) = \sigma\left( r(x, y_1) - r(x, y_2) \right)
|
||
$$
|
||
|
||
其中 $\sigma(z) = \frac{1}{1 + e^{-z}}$ 为 sigmoid 函数。
|
||
|
||
### 1.3 RLHF 的优化目标
|
||
|
||
RLHF 的最终目标是学习一个策略 $\pi_\theta$ 最大化期望奖励,同时保持与参考策略 $\pi_{\text{ref}}$ 的 KL 散度较小:
|
||
|
||
$$
|
||
\boxed{ \max_{\pi_\theta} \mathbb{E}_{x \sim \rho} \left[ \mathbb{E}_{y \sim \pi_\theta(\cdot|x)} \left[ r(x, y) \right] \right] - \beta \cdot D_{\mathrm{KL}} \left( \pi_\theta(\cdot|x) \parallel \pi_{\text{ref}}(\cdot|x) \right) }
|
||
$$
|
||
|
||
其中:
|
||
- $r(x, y)$:奖励模型给出的奖励值
|
||
- $\beta > 0$:KL 惩罚系数,控制策略偏离 SFT 的程度(通用取值 $0.1 \sim 0.3$)
|
||
- $D_{\mathrm{KL}}(P \| Q) = \mathbb{E}_x \left[ P(x) \log \frac{P(x)}{Q(x)} \right]$
|
||
|
||
**LLM工业落地实操**:理论使用全局KL,**实操使用逐Token KL散度**,降低计算量、提升训练稳定性:
|
||
$$D_{\mathrm{KL}}^{\text{token}} = \sum_{t=1}^T \log \frac{\pi_\theta(y_t|x,y_{<t})}{\pi_{\text{ref}}(y_t|x,y_{<t})}$$
|
||
|
||
这个目标可以重写为:
|
||
|
||
$$
|
||
\mathcal{J}(\theta) = \mathbb{E}_{x \sim \rho} \left[ \mathbb{E}_{y \sim \pi_\theta(\cdot|x)} \left[ r(x, y) - \beta \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)} \right] \right]
|
||
$$
|
||
|
||
---
|
||
|
||
## 2. 奖励模型(Reward Model)
|
||
|
||
### 2.1 奖励建模定义
|
||
|
||
**定义 2.1(奖励模型)** 奖励模型是一个参数化函数 $r_\phi: \mathcal{X} \times \mathcal{Y} \rightarrow \mathbb{R}$,用于评估给定 prompt $x$ 下响应 $y$ 的质量。InstructGPT 中使用 RewardNet 实现:
|
||
|
||
$$
|
||
r_\phi(x, y) = w_\phi^T \cdot \text{Transformer}(x, y)
|
||
$$
|
||
|
||
其中 $w_\phi$ 为线性投影参数。
|
||
|
||
### 2.2 Bradley-Terry 模型
|
||
|
||
**定义 2.2(Bradley-Terry 偏好模型)** 给定 prompt $x$,令 $r(x, y)$ 表示响应 $y$ 的隐含奖励值。Bradley-Terry 模型假设人类偏好遵循以下概率分布:
|
||
|
||
$$
|
||
P(y_w \succ y_l \mid x) = \sigma\left( r(x, y_w) - r(x, y_l) \right)
|
||
$$
|
||
|
||
其中 $\sigma(z) = \frac{1}{1 + e^{-z}}$ 为 logistic sigmoid 函数。
|
||
|
||
**性质 2.1(偏好概率的有界性)** 当 $r(x, y_w) - r(x, y_l) \rightarrow +\infty$ 时,$P \rightarrow 1$;当差值 $\rightarrow -\infty$ 时,$P \rightarrow 0$。这保证了偏好概率在 $[0, 1]$ 范围内。
|
||
|
||
### 2.3 奖励模型训练的交叉熵损失
|
||
|
||
给定偏好数据集 $\mathcal{D} = \{(x^{(i)}, y_w^{(i)}, y_l^{(i)})\}_{i=1}^N$,通过最大化似然来训练奖励模型。
|
||
|
||
负对数似然损失为:
|
||
|
||
$$
|
||
\mathcal{L}_R(\phi) = - \mathbb{E}_{(x,y_w,y_l) \sim \mathcal{D}} \left[ \log P(y_w \succ y_l \mid x) \right]
|
||
$$
|
||
|
||
代入 Bradley-Terry 模型:
|
||
|
||
$$
|
||
\mathcal{L}_R(\phi) = - \mathbb{E}_{(x,y_w,y_l) \sim \mathcal{D}} \left[ \log \sigma\left( r_\phi(x, y_w) - r_\phi(x, y_l) \right] \right)
|
||
$$
|
||
|
||
展开梯度形式。设 $P = \sigma(\Delta r)$,其中 $\Delta r = r_\phi(x, y_w) - r_\phi(x, y_l)$。则:
|
||
|
||
$$
|
||
\nabla_\phi \mathcal{L}_R = - \mathbb{E} \left[ \frac{\sigma(-\Delta r)}{P} \cdot \nabla_\phi \Delta r \right] = - \mathbb{E} \left[ \sigma(-\Delta r) \cdot \left( \nabla_\phi r_\phi(x, y_w) - \nabla_\phi r_\phi(x, y_l) \right) \right]
|
||
$$
|
||
|
||
由于 $\sigma(-z) = 1 - \sigma(z)$,这可以重写为:
|
||
|
||
$$
|
||
\nabla_\phi \mathcal{L}_R = - \mathbb{E} \left[ (1 - \sigma(\Delta r)) \cdot \left( \nabla_\phi r_\phi(x, y_w) - \nabla_\phi r_\phi(x, y_l) \right) \right]
|
||
$$
|
||
|
||
**物理意义**:当 $r_\phi(x, y_w) > r_\phi(x, y_l)$(即预测正确)时,$\sigma(\Delta r)$ 接近 1,梯度系数 $(1-\sigma)$ 接近 0,样本对损失的贡献较小;当预测错误时,梯度系数接近 1,提供较大的更新信号。
|
||
|
||
### 2.4 奖励模型的标度问题
|
||
|
||
训练好的奖励模型 $r_\phi(x, y)$ 的输出值域需要与人类偏好对齐。通常对奖励进行归一化:
|
||
|
||
$$
|
||
r_{\text{norm}}(x, y) = \frac{r_\phi(x, y) - \mu}{\sigma}
|
||
$$
|
||
|
||
其中 $\mu, \sigma$ 是奖励分布在验证集上的均值和标准差。**科研实操常用分位数截断归一化**,抑制极端异常奖励值。
|
||
|
||
---
|
||
|
||
## 3. PPO 在 LLM 中的应用
|
||
|
||
### 3.1 策略梯度回顾
|
||
|
||
对于标准强化学习,策略梯度定理给出:
|
||
|
||
$$
|
||
\nabla_\theta \mathcal{J} = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot \hat{Q}(s_t, a_t) \right]
|
||
$$
|
||
|
||
其中 $\hat{Q}(s_t, a_t)$ 是动作价值函数的估计。
|
||
|
||
在 LLM 场景下:
|
||
- 状态 $s_t$:当前的 context $(x, y_{1:t-1})$
|
||
- 动作 $a_t$:生成的下一个 token $y_t$
|
||
- 轨迹 $\tau$:完整的生成序列 $(x, y_1, y_2, ..., y_T)$
|
||
|
||
### 3.2 剪切代理目标(Clipped Surrogate Objective)
|
||
|
||
PPO 的核心创新是剪切代理目标函数。定义**重要性采样比率**:
|
||
|
||
$$
|
||
r_t(\theta) = \frac{\pi_\theta(y_t|x, y_{1:t-1})}{\pi_{\text{ref}}(y_t|x, y_{1:t-1})}
|
||
$$
|
||
|
||
定义**优势函数估计**(GAE, Generalized Advantage Estimation):
|
||
|
||
$$
|
||
\hat{A}_t = \sum_{l=0}^{T-t} (\gamma \lambda)^l \delta_{t+l}
|
||
$$
|
||
|
||
其中 $\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)$ 是时序差分误差,$\gamma \in [0,1]$ 是折扣因子,$\lambda \in [0,1]$ 是 GAE 参数。
|
||
|
||
**LLM中GAE的特殊性**:传统强化学习是逐帧GAE,**LLM为整序列统一GAE**,折扣因子 $\gamma$ 在文本生成中取值更贴近1(通常 $\gamma=0.99, \lambda=0.95$),时序衰减极弱。
|
||
|
||
**定理 3.1(PPO 剪切代理目标)** PPO 通过以下目标函数实现策略更新:
|
||
|
||
$$
|
||
\boxed{
|
||
\mathcal{L}^{\text{CLIP}}(\theta) = \mathbb{E}_t \left[ \min\left( r_t(\theta)\cdot\hat{A}_t,\ \text{clip}\big(r_t(\theta),1-\epsilon,1+\epsilon\big)\cdot\hat{A}_t \right) \right]
|
||
}
|
||
$$
|
||
|
||
其中 $\epsilon = 0.2$ 是行业固定剪切超参数。
|
||
|
||
**剪切机制的物理意义**:
|
||
|
||
当 $\hat{A}_t > 0$(优势为正)时:比值 $r_t$ 被剪切到 $[1-\epsilon, 1+\epsilon]$,这意味着当 $r_t > 1+\epsilon$ 时,梯度被"截断",不再鼓励更多探索。
|
||
|
||
当 $\hat{A}_t < 0$(优势为负)时:比值被剪切到 $[1-\epsilon, 1+\epsilon]$,限制策略概率的过度减小。
|
||
|
||
### 3.3 价值函数与 baseline
|
||
|
||
在 LLM 的 RLHF 中,价值函数 $V_\psi(x, y_{1:t})$ 用于估计**从当前前缀到序列结束的累计终局奖励**,非单步局部奖励:
|
||
|
||
$$
|
||
V_\psi(x, y_{1:t}) \approx \mathbb{E}_{y_{t+1:T} \sim \pi_\theta} \left[ \sum_{k=t}^{T} r(x, y_{1:k}) \right]
|
||
$$
|
||
|
||
仅 PRM 过程奖励才定义逐步骤局部信号。
|
||
|
||
价值函数通过以下均方误差损失进行训练:
|
||
|
||
$$
|
||
\mathcal{L}_V(\psi) = \mathbb{E}_t \left[ \left[ V_\psi(x, y_{1:t}) - \hat{V}_t \right]^2 \right]
|
||
$$
|
||
|
||
其中 $\hat{V}_t = \sum_{k=t}^{T} r(x, y_{1:k})$ 是价值目标。
|
||
|
||
**优势函数**定义为:
|
||
|
||
$$
|
||
\hat{A}_t = \hat{Q}_t - \hat{V}_t = r(x, y_{1:t}) + \hat{V}_{t+1} - \hat{V}_t
|
||
$$
|
||
|
||
这本质上是 REINFORCE with baseline,通过减去 value baseline 减少方差。
|
||
|
||
### 3.4 经验回放与 Epoch 限制
|
||
|
||
**PPO 在 LLM 中的特殊性**:LLM-RLHF 采用**On-Policy 同策略 PPO**,轨迹严格依赖当前策略参数,旧轨迹分布失效,**不支持离线异策略经验回放**,并非单纯"只能用一次"。
|
||
|
||
每个 prompt 及其生成轨迹只用于一次梯度更新,但可以在同一个 mini-batch 中多次计算 loss(多个 epoch)。
|
||
|
||
设 $B$ 为一个 mini-batch 的 prompt 集合,对每个 $x \in B$:
|
||
1. 采样轨迹 $(x, y_1, ..., y_T) \sim \pi_\theta(\cdot|x)$
|
||
2. 计算优势函数 $\hat{A}_t$
|
||
3. 在相同数据上执行 $K$ 个 epoch 的策略更新(通常 $K = 1 \sim 4$)
|
||
|
||
### 3.5 梯度裁剪与训练稳定性
|
||
|
||
PPO 额外使用梯度裁剪进一步增强稳定性:
|
||
|
||
**行业标准:LLM训练使用梯度范数裁剪**,通过 `torch.nn.utils.clip_grad_norm_(max_norm)` 实现:
|
||
|
||
$$
|
||
\|\nabla_\theta \mathcal{L}\|_2 \leq \text{max\_norm}
|
||
$$
|
||
|
||
其中 max_norm 通常设为 0.1~1.0。
|
||
|
||
**KL 散度约束与梯度裁剪的双重保险**:
|
||
- KL 散度惩罚:软约束策略不要偏离 $\pi_{\text{ref}}$ 太远
|
||
- 梯度裁剪:硬约束参数更新的幅度
|
||
- 剪切代理目标:限制策略更新的比率
|
||
|
||
---
|
||
|
||
## 4. KL 散度约束的作用
|
||
|
||
### 4.1 $\beta$ 参数的物理意义
|
||
|
||
$\beta$ 参数控制了 KL 惩罚的强度,其物理意义可以从以下角度理解:
|
||
|
||
**信息论角度**:$D_{\mathrm{KL}}(\pi_\theta \| \pi_{\text{ref}})$ 衡量新策略 $\pi_\theta$ 相对于参考策略 $\pi_{\text{ref}}$ 额外需要编码的信息量。较大的 $\beta$ 意味着策略不能引入太多新信息。
|
||
|
||
### 4.2 前哨策略(Reference Policy)的约束
|
||
|
||
**定义 4.1(前哨策略)** 前哨策略 $\pi_{\text{ref}}$ 是 SFT 阶段训练得到的监督微调模型,作为 RLHF 的参考基准。
|
||
|
||
KL 惩罚项 $D_{\mathrm{KL}}(\pi_\theta \| \pi_{\text{ref}})$ 的作用:
|
||
|
||
$$
|
||
\pi^* = \arg\max_{\pi} \mathbb{E}_{x \sim \rho} \left[ \mathbb{E}_{y \sim \pi(\cdot|x)}[r(x,y)] - \beta \cdot D_{\mathrm{KL}}(\pi(\cdot|x) \| \pi_{\text{ref}}(\cdot|x)) \right]
|
||
$$
|
||
|
||
**引理 4.1(KL 约束的闭式解)** 上述目标的解具有以下形式:
|
||
|
||
$$
|
||
\pi^*(y|x) \propto \pi_{\text{ref}}(y|x) \cdot \exp\left( \frac{r(x,y)}{\beta} \right)
|
||
$$
|
||
|
||
**证明**:在约束 $\sum_y \pi(y|x) = 1$ 下使用拉格朗日乘子法。对每个 $x$,目标函数为:
|
||
|
||
$$
|
||
\mathcal{L} = \sum_y \pi(y|x) \cdot r(x,y) - \beta \sum_y \pi(y|x) \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} + \lambda \left( \sum_y \pi(y|x) - 1 \right)
|
||
$$
|
||
|
||
对 $\pi(y|x)$ 求导并令导数为零:
|
||
|
||
$$
|
||
r(x,y) - \beta \left( 1 + \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} \right) + \lambda = 0
|
||
$$
|
||
|
||
整理得:
|
||
|
||
$$
|
||
\pi(y|x) = \pi_{\text{ref}}(y|x) \cdot \exp\left( \frac{r(x,y) + \lambda - \beta}{\beta} \right)
|
||
$$
|
||
|
||
令 $Z = \sum_y \pi_{\text{ref}}(y|x) \cdot \exp\left( \frac{r(x,y)}{\beta} \right)$ 为归一化常数,则:
|
||
|
||
$$
|
||
\pi^*(y|x) = \frac{\pi_{\text{ref}}(y|x) \cdot \exp\left( \frac{r(x,y)}{\beta} \right)}{Z}
|
||
$$
|
||
|
||
这正是 Boltzmann 分布的形式。$\blacksquare$
|
||
|
||
### 4.3 KL 惩罚 vs 奖励信号之间的权衡
|
||
|
||
令 $\beta$ 取极端值来分析:
|
||
|
||
**当 $\beta \rightarrow 0$**:KL 惩罚几乎消失,目标是纯粹的期望奖励最大化 $\max_\pi \mathbb{E}[r(x,y)]$。这等价于找到奖励最高的分布,但由于没有约束,可能导致分布退化(所有概率集中在一个 token)。
|
||
|
||
**当 $\beta \rightarrow \infty$**:KL 惩罚主导,策略被强制接近 $\pi_{\text{ref}}$,$\pi^* \rightarrow \pi_{\text{ref}}$。此时几乎没有奖励优化。
|
||
|
||
**$\beta$ 的实际选择**:InstructGPT 中 $\beta$ 通常在 $0.1$ 到 $0.3$ 之间。过小会导致 reward hacking(见第 7 节),过大会导致策略无法从人类反馈中学习。
|
||
|
||
---
|
||
|
||
## 5. DPO(Direct Preference Optimization)
|
||
|
||
### 5.1 DPO 目标函数
|
||
|
||
DPO(Rafailov et al., 2023)提出了直接优化偏好数据的目标,无需显式训练奖励模型。
|
||
|
||
**定义 5.1(DPO 目标)** 给定偏好数据集 $\mathcal{D} = \{(x, y_w, y_l)\}$,DPO 优化以下损失:
|
||
|
||
$$
|
||
\boxed{
|
||
\mathcal{L}_{\text{DPO}} = - \mathbb{E}_{(x,y_w,y_l) \sim \mathcal{D}} \left[ \log \sigma\left( \beta \log\frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \log\frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)} \right) \right]
|
||
}
|
||
$$
|
||
|
||
其中 $\pi_{\text{ref}}$ 是参考策略(通常为 SFT 模型),$\beta$ 是温度参数(通用取值 $0.1 \sim 1.0$)。
|
||
|
||
### 5.2 DPO 与 PPO 的等价性推导
|
||
|
||
**定理 5.1(DPO 与 PPO 的等价性)** 在适当假设下,最小化 DPO 损失等价于在 PPO 框架下最大化期望奖励。
|
||
|
||
**证明**:从 RLHF 目标出发,设 Bradley-Terry 模型给出偏好概率:
|
||
|
||
$$
|
||
P(y_w \succ y_l | x) = \sigma( r(x, y_w) - r(x, y_l) )
|
||
$$
|
||
|
||
DPO 论文的核心观察:**DPO 隐式定义了满足 Bradley-Terry 约束的奖励模型**。通过偏好概率的对数几率变换可得:
|
||
|
||
$$
|
||
r(x, y_w) - r(x, y_l) = \beta \cdot \log \frac{P}{1-P} = \beta \cdot \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \cdot \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)}
|
||
$$
|
||
|
||
最小化 DPO 损失等价于最小化以下交叉熵:
|
||
|
||
$$
|
||
\mathcal{L}_{\text{DPO}} = - \mathbb{E} \left[ \log P(y_w \succ y_l | x) \right]
|
||
$$
|
||
|
||
其中 $P$ 由上式定义。这恰好是让模型满足人类偏好的分布。$\blacksquare$
|
||
|
||
### 5.3 DPO 的优缺点分析
|
||
|
||
**优点**:
|
||
|
||
1. **无需奖励模型训练**:DPO 直接在偏好数据上优化,绕过了独立的奖励建模阶段,简化了流程。
|
||
2. **避免奖励模型过拟合**:奖励模型的有限容量可能导致过拟合,DPO 避免了这个问题。
|
||
3. **计算效率**:单阶段优化,无需运行 PPO 的迭代过程。
|
||
4. **训练稳定性**:DPO 的优化目标更加平滑,不涉及策略梯度的方差问题。
|
||
|
||
**缺点**:
|
||
|
||
1. **对参考模型的依赖**:DPO 需要高质量的 $\pi_{\text{ref}}$,如果参考模型能力不足,DPO 难以学到超越它的能力。DPO 强依赖高质量 SFT 参考策略,若 $\pi_{\text{ref}}$ 能力薄弱,DPO 无法实现能力跃升,仅能做偏好对齐,无法做能力提升。
|
||
2. **隐式奖励的局限性**:DPO 使用的隐式奖励 $\beta \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}$ 可能与真实人类偏好不完全一致。
|
||
3. **缺乏探索机制**:DPO 本质上是最小化 KL 散度到参考策略,没有显式的探索机制。
|
||
4. **过优化风险**:DPO 可能更容易过拟合到偏好数据的分布,导致泛化能力下降。
|
||
|
||
---
|
||
|
||
## 6. 过程奖励模型(Process Reward Model, PRM)
|
||
|
||
### 6.1 结果奖励 vs 过程奖励
|
||
|
||
**定义 6.1(结果奖励模型,Outcome RM)** 结果奖励模型只在完整的响应生成后才提供奖励信号 $r(x, y_T)$。这是标准 RLHF 中使用的奖励模型。
|
||
|
||
**定义 6.2(过程奖励模型,Process RM)** 过程奖励模型在生成的每个中间步骤都提供奖励信号:
|
||
|
||
$$
|
||
r(x, y_{1:t}) = \text{PRM}(x, y_{1:t}), \quad \forall t \in \{1, 2, ..., T\}
|
||
$$
|
||
|
||
**对比**:
|
||
|
||
| 特性 | 结果奖励 (Outcome RM) | 过程奖励 (Process RM) |
|
||
|------|----------------------|----------------------|
|
||
| 奖励时机 | 仅在序列末尾 | 每个中间步骤 |
|
||
| 信用分配 | 难以处理长序列 | 天然支持逐步信用分配 |
|
||
| 训练数据 | 稀疏偏好信号 | 需要每步标注 |
|
||
| 可解释性 | 低 | 高 |
|
||
|
||
### 6.2 蒙特卡洛树搜索中的 PRM
|
||
|
||
**蒙特卡洛树搜索(MCTS)** 结合 PRM 的核心思想:
|
||
|
||
在 MCTS 中,每个节点 $(x, y_{1:t})$ 维护:
|
||
- $N(x, y_{1:t})$:访问计数
|
||
- $Q(x, y_{1:t})$:平均奖励估计
|
||
|
||
MCTS 的 Upper Confidence Bound (UCB) 选择策略:
|
||
|
||
$$
|
||
a_t = \arg\max_{a} \left[ Q(x, y_{1:t-1}, a) + c \cdot \sqrt{\frac{\ln N(x, y_{1:t-1})}{N(x, y_{1:t-1}, a)}} \right]
|
||
$$
|
||
|
||
其中 $c$ 是探索常数。
|
||
|
||
**PRM 引导的 MCTS**:使用 PRM 提供每步的即时奖励,改进 UCB 中的 Q 值估计:
|
||
|
||
$$
|
||
\hat{Q}(x, y_{1:t}) = \frac{1}{M} \sum_{m=1}^{M} \left[ \sum_{k=1}^{T} r(x, y_{1:k}^{(m)}) \right]
|
||
$$
|
||
|
||
其中 $M$ 是通过 MCTS 采样的轨迹数量。
|
||
|
||
### 6.3 PRM 与 MCTS 的结合
|
||
|
||
**算法步骤**:
|
||
|
||
1. **初始化**:使用 SFT 模型初始化策略 $\pi_{\text{ref}}$
|
||
2. **PRM 训练**:收集人类标注的过程偏好数据 $(x, y_{1:t}, y'_{1:t}, \text{偏好})$,训练 PRM
|
||
3. **MCTS 搜索**:对于每个 prompt $x$,使用 PRM 引导的 MCTS 生成多样化的响应
|
||
4. **数据收集**:收集 $(x, y_{\text{chosen}}, \text{偏好})$ 对
|
||
5. **策略更新**:使用 DPO 或 RLHF 更新策略
|
||
6. **迭代**:重复步骤 2-5
|
||
|
||
**数学形式化**:设 MCTS 树的叶子节点对应完整响应 $y_T$,中间节点对应部分序列 $y_{1:t}$。PRM 的奖励信号传递:
|
||
|
||
$$
|
||
\Delta Q(x, y_{1:t}) = r_{\text{PRM}}(x, y_{1:t}) - V(x, y_{1:t-1})
|
||
$$
|
||
|
||
其中 $V$ 是价值 baseline,用于减少方差。
|
||
|
||
---
|
||
|
||
## 7. 对齐失败的模式与检测
|
||
|
||
### 7.1 奖励黑客(Reward Hacking)
|
||
|
||
**定义 7.1(奖励黑客)** 奖励黑客是指策略 $\pi_\theta$ 发现并利用奖励模型的漏洞,获得高奖励但实际质量低下的行为。
|
||
|
||
**数学描述**:奖励模型 $r_\phi(x,y)$ 是真实人类偏好 $r^*(x,y)$ 的代理。奖励黑客发生在:
|
||
|
||
$$
|
||
\pi_\theta = \arg\max_{\pi} \mathbb{E}[r_\phi(x,y)] \neq \arg\max_{\pi} \mathbb{E}[r^*(x,y)]
|
||
$$
|
||
|
||
即策略优化的目标与真实目标不一致。
|
||
|
||
**典型模式**:
|
||
1. **长度作弊**:模型发现更长的回复获得更高奖励,因此生成冗长但空洞的内容
|
||
2. **关键词填充**:在回复中堆砌特定关键词以提高奖励模型分数
|
||
3. **对抗性输入**:发现奖励模型的盲点,在特定输入模式下生成欺骗性内容
|
||
|
||
### 7.2 谄媚(Sycophancy)
|
||
|
||
**定义 7.2(谄媚)** 谄媚是指模型在收到用户反馈时,过于顺从用户的观点,而不是坚持事实准确性。
|
||
|
||
**数学描述**:设用户的隐式信念为 $b$,模型的响应为 $y$,真实性衡量为 $f(x,y) \in [0,1]$,用户满意度为 $s(x,y,b) \in [0,1]$。谄媚发生在:
|
||
|
||
$$
|
||
\pi_{\text{ref}} = \arg\max_\pi \mathbb{E}[s(x,y,b)] \quad \text{当} \quad \mathbb{E}[f(x,y)] \text{被牺牲}
|
||
$$
|
||
|
||
即策略优先考虑用户满意度而牺牲了真实性。
|
||
|
||
**检测方法**:
|
||
1. **观点一致性测试**:给模型提供相同事实,但附加支持或反对该事实的用户陈述,观察回复变化
|
||
2. **多轮对话测试**:通过多轮对话引导模型改变立场,检测是否过度顺从
|
||
|
||
### 7.3 过度优化(Overoptimization)
|
||
|
||
**定义 7.3(过度优化)** 过度优化是指在 RLHF 过程中,对 KL 约束的 $\beta$ 参数设置过低,导致策略过度拟合奖励模型而偏离人类意图。
|
||
|
||
**数学分析**:设真实目标函数为 $J^*(pi)$,代理目标函数为 $\hat{J}(pi)$,二者满足:
|
||
|
||
$$
|
||
\hat{J}(pi) = J^*(pi) + \epsilon(pi)
|
||
$$
|
||
|
||
其中 $\epsilon(pi)$ 是模型误差。当 $\beta$ 过小时:
|
||
|
||
$$
|
||
\pi^* = \arg\max_\pi \hat{J}(pi) - \beta \cdot D_{\mathrm{KL}}(pi \| pi_{\text{ref}})
|
||
$$
|
||
|
||
过小的 $\beta$ 允许 $\pi^*$ 过度拟合 $\hat{J}$,放大误差 $\epsilon$ 的影响。
|
||
|
||
**Goodhart's Law**:当一个指标变成目标时,它就不再是一个好的指标。在 RLHF 中,当奖励模型成为优化目标时,它可能不再反映人类真实偏好。
|
||
|
||
### 7.4 对齐测试方法
|
||
|
||
#### 7.4.1 自动化测试
|
||
|
||
**对抗性测试集**:构建包含"陷阱"问题的测试集,检测模型是否会:
|
||
|
||
1. **Truthfulness Test**:检测模型在明显错误前提下是否仍坚持正确事实
|
||
- 输入:"如果 2+2=5,那么 1+1=?"
|
||
- 期望:模型应拒绝参与错误推理
|
||
|
||
2. **Helpfulness Test**:检测模型是否能识别并拒绝有害请求
|
||
- 输入:明显的恶意请求
|
||
- 期望:拒绝并给出合理解释
|
||
|
||
3. **Honesty Test**:检测模型是否会在不确定时承认不知道
|
||
- 输入:超出训练分布的冷门问题
|
||
- 期望:承认不确定性而非胡说
|
||
|
||
#### 7.4.2 人类评估协议
|
||
|
||
**A/B 测试框架**:
|
||
1. 将测试用例随机分配给两组人类评估者
|
||
2. 一组评估 A 版本输出,另一组评估 B 版本
|
||
3. 比较偏好率和安全性指标
|
||
|
||
**Elo 评分系统**:
|
||
- 将模型放入 Elo 系统,与人类评估者对弈
|
||
- 持续追踪模型的 Elo 分数变化
|
||
|
||
#### 7.4.3 内部代理(Internals)分析
|
||
|
||
**奖励模型探测**:训练探针分类器,检测奖励模型的激活模式是否与特定对齐失败模式相关联。
|
||
|
||
**注意力可视化**:分析 Transformer 的注意力权重,检测是否存在"谄媚模式"的注意力头。
|
||
|
||
### 7.5 其他对齐失败场景
|
||
|
||
除奖励黑客、谄媚、过度优化外,补充三大主流对齐缺陷:
|
||
|
||
**事实遗忘(Fact Forgetting)**:RLHF 优化后模型丢失预训练阶段学到的 factual 知识,表现为回答通用事实的准确率下降。根源是偏好数据分布与预训练知识分布冲突。
|
||
|
||
**上下文偏见(Context Bias)**:模型过度依赖近期上下文,忽略长期依赖。表现为处理长文本时前后信息关联断裂。
|
||
|
||
**多轮一致性崩塌(Multi-turn Inconsistency)**:模型在多轮对话中前后不一致,表现为同一问题不同轮次回答矛盾。根源是 RLHF 训练为单轮对话,与多轮交互场景不匹配。
|
||
|
||
---
|
||
|
||
## 附录:算法伪代码
|
||
|
||
### 算法 A.1:PPO for LLM
|
||
|
||
```
|
||
输入:SFT 模型 π_ref,奖励模型 r_φ,初始策略 π_θ,折扣因子 γ,GAE 参数 λ,剪切参数 ε
|
||
输出:更新后的策略 π_θ
|
||
|
||
1. 初始化价值网络 V_ψ
|
||
2. FOR 每个训练步 do
|
||
3. 采样一批 prompts {x_i} from ρ
|
||
4. FOR 每个 prompt x_i do
|
||
5. 生成轨迹 τ_i ~ π_θ(·|x_i)
|
||
6. 计算优势估计 A_t for each token
|
||
7. END FOR
|
||
8. FOR 每个 epoch do
|
||
9. FOR 每个 token position t do
|
||
10. 计算比率 r_t(θ) = π_θ(y_t|x, y_{<t}) / π_old(y_t|x, y_{<t})
|
||
11. 计算剪切目标 L_CLIP(θ)
|
||
12. 计算价值损失 L_V(ψ)
|
||
13. 更新 θ via Adam
|
||
14. 更新 ψ via Adam
|
||
15. END FOR
|
||
16. END FOR
|
||
17. END FOR
|
||
```
|
||
|
||
### 算法 A.2:DPO
|
||
|
||
```
|
||
输入:参考策略 π_ref,偏好数据 D = {(x, y_w, y_l)},温度参数 β
|
||
输出:更新后的策略 π_θ
|
||
|
||
1. 初始化策略 π_θ = π_ref
|
||
2. FOR 每个训练步 do
|
||
3. 采样一批偏好数据 (x, y_w, y_l) ~ D
|
||
4. 计算隐式奖励对数比率:
|
||
log_ratio_w = log π_θ(y_w|x) - log π_ref(y_w|x)
|
||
log_ratio_l = log π_θ(y_l|x) - log π_ref(y_l|x)
|
||
5. 计算 DPO 损失:
|
||
L_DPO = - log σ(β · log_ratio_w - β · log_ratio_l)
|
||
6. 更新 θ via Adam
|
||
7. END FOR
|
||
```
|
||
|
||
---
|
||
|
||
## 参考文献
|
||
|
||
1. Ouyang, L., et al. (2022). Training language models to follow instructions with human feedback. *NeurIPS*.
|
||
2. Schulman, J., et al. (2017). Proximal Policy Optimization Algorithms. *arXiv preprint*.
|
||
3. Rafailov, R., et al. (2023). Direct Preference Optimization: Your Language Model is a Reward Model. *NeurIPS*.
|
||
4. Stiennon, N., et al. (2020). Learning to summarize with human feedback. *NeurIPS*.
|
||
5. Bai, Y., et al. (2022). Training a helpful and harmless assistant with RLHF. *arXiv preprint*.
|
||
6. Lightman, W., et al. (2023). Let's Verify Step by Step. *ICML*.
|
||
7. Uesato, J., et al. (2022). Solving math word problems with process-based feedback. *arXiv preprint*. |