EN

LLM Notes

LLM 与强化学习学习笔记 - Transformer、RLHF、PPO、DPO 等技术深度解析

RL 学习笔记(五):LLM 对齐(上)

2025-12-19 · Qi Lu · Views:

本文是强化学习系列的第五篇,开始进入 LLM 与 RL 结合的领域。本篇介绍 LLM 对齐的 RL 建模、经典的 RLHF 三阶段方法,以及更简洁的 DPO 方法。

引言:从预训练到对齐

核心问题

大语言模型(LLM)通过海量文本预训练,获得了强大的语言理解和生成能力。但预训练目标(预测下一个 token)与人类期望的行为之间存在鸿沟:

预训练的 LLM 只学会了”像人类一样说话”,但没有学会”按人类期望行事”。

如何让 LLM 不仅流利,还能有帮助、诚实、无害?

这就是 LLM 对齐(Alignment)问题。而强化学习正是解决这一问题的核心技术。

为什么需要 RL?

监督学习(SFT)可以让模型模仿高质量回复,但存在局限:

  1. 分布受限:只能学习训练集中出现的回复方式
  2. 无法表达偏好:难以区分”好”和”更好”
  3. 无法探索:不会尝试新的回答策略

强化学习提供了不同的视角:

LLM Training Pipeline

LLM 对齐的 RL 建模

State/Action/Reward 定义

将 LLM 对齐问题建模为 RL 问题:

LLM 的 RL 建模

  • State $s_t$:prompt $x$ + 已生成的 token 序列 $y_{<t} = (y_1, \ldots, y_{t-1})$
  • Action $a_t$:下一个 token $y_t$(词表大小 $|\mathcal{V}| \sim$ 100k)
  • Policy $\pi_\theta(a|s)$:LLM 本身,$\pi_\theta(y_t | x, y_{<t})$
  • Trajectory $\tau$:完整的生成序列 $y = (y_1, y_2, \ldots, y_T)$
  • Reward $r$:通常只在序列结束时给出

LLM as MDP

LLM RL 的特点:

稀疏奖励问题

LLM 对齐的典型奖励结构:

\[r_t = \begin{cases} 0 & t < T \\ r_\phi(x, y) & t = T \text{(序列结束)} \end{cases}\]

稀疏奖励带来的挑战:

解决稀疏奖励的两种思路:

  1. 序列级方法:把整个序列当作一个 bandit,用序列奖励直接更新(如 REINFORCE)
  2. 过程奖励:训练 PRM 提供中间步骤的奖励信号

RLHF 三阶段

RLHF(Reinforcement Learning from Human Feedback)是 LLM 对齐的经典方法,由 OpenAI 在 InstructGPT 中系统化。

RLHF 整体架构

RLHF Architecture

Stage 1: Supervised Fine-Tuning (SFT)

用高质量对话数据微调预训练模型:

\[L_{\text{SFT}}(\theta) = -\mathbb{E}_{(x,y) \sim \mathcal{D}_{\text{SFT}}} \left[ \log \pi_\theta(y|x) \right] = -\mathbb{E} \left[ \sum_{t=1}^{T} \log \pi_\theta(y_t | x, y_{<t}) \right]\]

SFT 的作用:

Stage 2: Reward Model 训练

从人类偏好数据中学习 Reward Model。

偏好数据:对于 prompt $x$,人类标注者比较两个回复,给出偏好:$y_w \succ y_l$($y_w$ 优于 $y_l$)。

Bradley-Terry 模型

Bradley-Terry 模型

假设人类偏好遵循 Bradley-Terry 模型——偏好概率由”能力差”决定:

\[P(y_w \succ y_l | x) = \sigma(r(x, y_w) - r(x, y_l)) = \frac{1}{1 + e^{-(r(x, y_w) - r(x, y_l))}}\]

其中 $\sigma(z) = \frac{1}{1+e^{-z}}$ 是 sigmoid 函数,$r(x, y)$ 是回复的”得分”。

Bradley-Terry 模型的直觉:

Reward Model 训练

Reward Model 的训练目标是最大化偏好数据的似然:

\[L_{\text{RM}}(\phi) = -\mathbb{E}_{(x, y_w, y_l)} \left[ \log \sigma(r_\phi(x, y_w) - r_\phi(x, y_l)) \right]\]

这是一个二分类问题:给定 $(y_w, y_l)$,预测哪个更好。

Reward Model 的架构选择:

Stage 3: PPO 微调

使用 Reward Model 提供奖励信号,用 PPO 优化策略。

RLHF 优化目标

\[\max_\theta \mathbb{E}_{x \sim \mathcal{D}, y \sim \pi_\theta(\cdot|x)} \left[ r_\phi(x, y) \right] - \beta \cdot \text{KL}(\pi_\theta \| \pi_{\text{ref}})\]

其中 $\beta > 0$ 是 KL 正则系数。

KL 正则的作用

KL 正则项 $\text{KL}(\pi_\theta | \pi_{\text{ref}})$ 至关重要:

  1. 防止 Reward Hacking
    • Reward Model 是不完美的代理
    • 无约束优化会找到”欺骗” RM 的方式
    • 例如:生成特定模式获得高分,但实际质量差
  2. 保持生成质量
    • SFT 模型已经有较好的语言能力
    • KL 约束防止偏离太远导致流利度下降
  3. 稳定训练
    • 约束优化空间,避免策略崩溃
    • 提供正则化效果

KL-Reward Tradeoff

PPO 更新流程

RLHF 中 PPO 的具体步骤:

PPO-RLHF 算法

重要提示:RLHF 需要维护的模型:

  1. $\pi_\theta$:正在训练的策略(Active Model)
  2. $\pi_{\text{ref}}$:参考模型(冻结)
  3. $r_\phi$:Reward Model(冻结)
  4. $V_\psi$:Critic 网络

共 4 个大模型,显存开销巨大!这是 DPO、GRPO 等方法试图解决的问题。

Direct Preference Optimization (DPO)

DPO 是一种绕过 Reward Model 和 PPO 的简化方法,由 Rafailov et al. 2023 提出。

DPO 的动机

RLHF + PPO 的问题:

DPO 的核心问题:能否直接在偏好数据 $(x, y_w, y_l)$ 上优化,像监督学习一样简单?

答案是可以的!关键洞察:KL 正则的 RL 问题有闭式解

DPO Loss 公式

DPO Loss

\[L_{\text{DPO}}(\theta) = -\mathbb{E}_{(x, y_w, y_l)} \left[ \log \sigma \left( \beta \left[ \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)} \right] \right) \right]\]

DPO 完整推导

DPO 等价性定理:DPO Loss 与 RLHF 目标在最优解处等价。

证明:推导分为 5 个关键步骤。

Step 1:RLHF 目标展开

RLHF 优化目标:

\[\max_\pi \mathbb{E}_{y \sim \pi} \left[ r(x, y) \right] - \beta \cdot \text{KL}(\pi \| \pi_{\text{ref}})\]

展开 KL 散度:

\[= \mathbb{E}_{y \sim \pi} \left[ r(x, y) - \beta \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} \right]\]

Step 2:引入配分函数 $Z(x)$

为了让最优策略是合法的概率分布,定义配分函数:

\[Z(x) = \sum_y \pi_{\text{ref}}(y|x) \exp\left( \frac{r(x,y)}{\beta} \right)\]

$Z(x)$ 是归一化常数,只依赖于 $x$(不依赖于被优化的策略)。

Step 3:最优策略的闭式解

KL 正则 RL 问题有闭式解:

KL 正则 RL 的最优策略引理

目标 $\max_\pi \mathbb{E}_{y \sim \pi}[r(y)] - \beta \cdot \text{KL}(\pi | \pi_{\text{ref}})$ 的最优解为:

\[\pi^*(y|x) = \frac{1}{Z(x)} \pi_{\text{ref}}(y|x) \exp\left( \frac{r(x,y)}{\beta} \right)\]

这是一个有约束优化问题($\pi$ 需要是概率分布)。直觉:最优策略是参考策略按 $\exp(r/\beta)$ 重新加权。奖励越高,概率提升越多。

Step 4:从最优策略反解 reward

关键步骤:从最优策略反解 reward。

取对数:

\[\log \pi^*(y|x) = \log \pi_{\text{ref}}(y|x) - \log Z(x) + \frac{r(x,y)}{\beta}\]

整理得:

\[r(x,y) = \beta \log \frac{\pi^*(y|x)}{\pi_{\text{ref}}(y|x)} + \beta \log Z(x)\]

核心洞察:reward 可以用策略的 log-ratio 表示!虽然有 $\log Z(x)$ 项,但它只依赖于 $x$,在 pairwise 比较中会消除。

Step 5:代入 Bradley-Terry 模型,$Z(x)$ 消除

将 reward 表达式代入 Bradley-Terry 模型:

\[\begin{align} P(y_w \succ y_l) &= \sigma(r(x, y_w) - r(x, y_l)) \\ &= \sigma\left( \beta \left[ \log \frac{\pi^*(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \log \frac{\pi^*(y_l|x)}{\pi_{\text{ref}}(y_l|x)} \right] \right) \end{align}\]

$\beta \log Z(x)$ 项相消了!

最大化偏好数据的 log-likelihood,用 $\pi_\theta$ 代替 $\pi^*$,得到 DPO Loss。

DPO Derivation

DPO 的核心洞察

  1. KL 正则 RL 问题有闭式解,最优策略是参考策略的指数重加权
  2. 可以从最优策略反解隐式 reward
  3. 配分函数 $Z(x)$ 在 pairwise 比较中消除——这是 DPO 能 work 的关键
  4. 最终形式只需要计算 log-probability,像监督学习一样简单

DPO 的直观理解

定义隐式奖励

\[\hat{r}_\theta(x, y) = \beta \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}\]

DPO Loss 可以写成:

\[L_{\text{DPO}} = -\mathbb{E} \left[ \log \sigma(\hat{r}_\theta(x, y_w) - \hat{r}_\theta(x, y_l)) \right]\]

直觉:

DPO vs RLHF 对比

特性 RLHF + PPO DPO
需要 Reward Model
需要 Critic 网络
训练方式 在线采样 离线训练
模型数量 4 个 2 个
实现复杂度
超参敏感性
探索能力
适用场景 复杂任务 简单对齐

DPO 的局限:

本章小结

  1. LLM 对齐的 RL 建模:State = prompt + 已生成 tokens,Action = 下一个 token,稀疏奖励只在序列结束时给出

  2. RLHF 三阶段
    • Stage 1 (SFT):监督微调,学习指令遵循
    • Stage 2 (RM):从偏好数据训练 Reward Model(Bradley-Terry 模型)
    • Stage 3 (PPO):用 RM 提供奖励,PPO 优化,KL 正则防止 reward hacking
  3. DPO
    • 利用 KL-RL 闭式解,绕过 RM 和 PPO
    • 直接在偏好数据上优化,像监督学习一样简单
    • 只需 2 个模型($\pi_\theta$ 和 $\pi_{\text{ref}}$)
    • 局限:无探索能力,难任务提升有限

RLHF vs DPO 对比

下一篇将介绍 GRPO、KL 估计器、PRM 以及 Long CoT RL 等更先进的方法,这些方法试图在保持 DPO 简洁性的同时恢复在线探索能力。

← Back to Home

Comments