LLM Post-training 完全指南

面向 NLP 研究生的深度教材 · 改编自 Stanford CS224N Winter 2026 Lecture 8 (Diyi Yang)
覆盖:SFT · RLHF · Policy Gradient · PPO · Bradley-Terry RM · DPO 完整推导 · GRPO · RLAIF · 偏好数据伦理
版本 1.0 · 2026 春 · 配套 Lab Wiki nlp/post-training-why.md + post-training-how.md

引论:从语言建模到"听话的助手"

"Language modeling ≠ assisting users." — Diyi Yang, CS224N 2026

要理解 post-training 的必要性,先看一个经典的"对齐缺口"案例:

PROMPT
Explain the moon landing to a 6 year old in a few sentences.
GPT-3(仅预训练)的"补全"
Explain the theory of gravity to a 6 year old. Explain the theory of relativity to a 6 year old in a few sentences. Explain the big bang theory to a 6 year old. Explain evolution to a 6 year old.
人类期望的回答
A giant rocket ship blasted off from Earth carrying astronauts to the moon. The astronauts landed their spaceship on the moon and walked around exploring the lunar surface. Then they returned safely back to Earth, bringing home moon rocks to show everyone.
InstructGPT(RLHF 之后)的回答
People went to the moon, and they took pictures of what they saw, and sent them back to the earth so we could all see them.

原始 GPT-3 把 prompt 当作"下一个 token 预测"任务——它认为最自然的延续是列举更多类似的问题, 因为预训练语料里就是这样写的。它根本没意识到用户想要的是"回答",而不是"补全"。

这就是 Ouyang et al. (2022) 在 InstructGPT 论文里强调的核心问题: "Language models are not aligned with user intent." 预训练让模型学到了关于世界的大量知识与语言模式,但预训练目标(next-token prediction)和用户真实意图(被帮助、被回答)之间存在系统性鸿沟

Post-training 的演化路径

弥合这一鸿沟的技术,被统称为 post-training(也叫 alignmentpreference learningRLHF + SFT pipeline)。 2018-2026 年的演化路径如下:

flowchart LR A["Pretrain
(语言建模)"] --> B["SFT / IFT
(指令微调)"] B --> C["RM 训练
(Bradley-Terry)"] C --> D["PPO / RLHF
(在线 RL)"] B --> E["DPO
(2023, 跳过 RM)"] D --> F["GRPO
(2024, DeepSeek)"] E --> G["KTO / IPO / SimPO
(2024, 各种变体)"] style A fill:#e8f1f4 style B fill:#fff7e6 style C fill:#fff7e6 style D fill:#fbecec style E fill:#eafaf0 style F fill:#eafaf0 style G fill:#eafaf0

每一步都试图解决前一步遗留的问题:

方法解决的问题引入的新问题
SFT / IFT模型听不懂指令需要大量人工示范;token-level 等价惩罚;无法学习"哪种更好"
RLHF (PPO)能用 ranking 偏好数据;可优化任意 non-differentiable 奖励训练不稳定;4 个 LM 同时在显存;超参敏感;reward hacking
DPO跳过 RM,直接用 max likelihood 解 RLHF 的闭式解纯 offline;reference 模型仍需在显存;某些任务弱于 PPO
GRPO移除 value model,组内归一化做 advantage;适合 verifiable reward(数学/代码)仍是 online RL,依赖好的 reward 信号

本教材将按"SFT → RLHF → DPO/GRPO → 偏好数据伦理"的顺序,把每一步的数学、工程和直觉都展开到研究生级别。

第一部分:指令微调(SFT / IFT)

1.1 Pretraining/Finetuning 范式回顾

2018-2020 年的主导范式是"pretrain + 单任务 finetune"

Step 1: Pretrain (on language modeling) Decoder (Transformer) Iroh goes to make tasty tea goes to make tasty tea END Lots of text → learn general things Step 2: Finetune (on your task, e.g. sentiment) Decoder (Transformer) … the movie was … 😊 / 😞 Few labels → adapt to the task
"Pretrain + 单任务 finetune":先在海量无监督文本上学通用语言知识,再在小规模任务数据上微调。BERT、GPT-2、RoBERTa 全部基于此范式。

但这种方式的弱点是每个任务都需要重新微调一个模型,参数副本数量爆炸; 而且即使有了模型,用户依然得用"任务格式"的输入和它互动——这不是真正的"通用助手"。

1.2 Scaling up finetuning:从单任务到 1000+ 任务

2021 年开始的关键洞察:把许多任务用统一的"指令 + 输入 → 输出"格式包装,然后一次性微调一个模型。 这就是instruction finetuning (IFT),也叫 multitask finetuning

形式化地说,给定 prompt $x$(包含任务指令)和期望输出 $y$,SFT 目标就是最大化条件似然:

SFT / IFT 目标
$$\mathcal{L}_{\text{SFT}}(\theta) = -\mathbb{E}_{(x, y) \sim \mathcal{D}_{\text{SFT}}} \left[\sum_{t=1}^{|y|} \log p_\theta(y_t \mid x, y_{<t})\right]$$ 与预训练完全一样的 next-token cross-entropy,只是数据从"自由文本"换成了"(指令, 期望输出)对"。

典型的 IFT 数据例子

INPUT 1 (QA)
Please answer the following question. What is the boiling point of Nitrogen?
-320.4F
INPUT 2 (CoT math)
Answer the following question by reasoning step-by-step. The cafeteria had 23 apples. If they used 20 for lunch and bought 6 more, how many apples do they have?
The cafeteria had 23 apples originally. They used 20 to make lunch. So they had 23 - 20 = 3. They bought 6 more apples, so they have 3 + 6 = 9.
UNSEEN TASK (推理 + 常识)
Q: Can Geoffrey Hinton have a conversation with George Washington? Give the rationale before answering.
Geoffrey Hinton is a British-Canadian computer scientist born in 1947. George Washington died in 1799. Thus, they could not have had a conversation together. So the answer is "no".

Super-NaturalInstructions

Super-NaturalInstructions(Wang et al., 2022)是这一时期最有影响力的数据集之一: 1,616 个任务、3M+ 样本,涵盖分类、序列标注、改写、翻译、QA、生成等。 任务来源是把社区中已有的所有 NLP benchmark 用统一指令模板包装。

1.3 FLAN-T5 与"越大越能涨"

FLAN-T5(Chung et al., 2022)是 instruction finetuning 的标志性成果: 基于 T5 encoder-decoder 架构,在 1,836 个额外任务上 finetune。 其结果展示了一个重要的"指令微调 scaling law":

ParamsModelBIG-Bench + MMLU 标准化均值Δ
80MT5-Small / Flan-T5-Small-9.2 → -3.1+6.1
250MT5-Base / Flan-T5-Base-5.1 → 6.5+11.6
780MT5-Large / Flan-T5-Large-5.0 → 13.8+18.8
3BT5-XL / Flan-T5-XL-4.1 → 19.1+23.2
11BT5-XXL / Flan-T5-XXL-2.9 → 23.7+26.6

关键观察:模型越大,instruction finetuning 的收益越大(Δ 单调上升)。 这与"scaling laws"的一般规律一致——更大的模型对 task supervision 有更强的吸收能力。

SFT 真的让模型"会"了吗?

来看 BIG-Bench Hard 的 Disambiguation QA 任务:

INPUT
Q: In the following sentences, explain the antecedent of the pronoun, or state that it is ambiguous. Sentence: The reporter and the chef will discuss their favorite dishes. Options: (A) reporter's (B) chef's (C) Ambiguous A: Let's think step by step.
微调前 T5-XXL(无效复读)
The reporter and the chef will discuss their favorite dishes. The reporter and the chef will discuss the reporter's favorite dishes. The reporter and the chef will discuss the chef's favorite dishes. ... ❌ (doesn't answer question)
微调后 Flan-T5-XXL
"The reporter and the chef will discuss their favorite dishes" does not indicate whose favorite dishes they will discuss. So, the answer is (C). ✓

1.4 评估:MMLU 与 BIG-Bench

为了评估 instruction-tuned 模型在未见过任务上的泛化能力,社区引入了两个大型多任务基准:

MMLU
(Hendrycks et al., 2021) 57 个学科的多选题,从抽象代数到职业道德,全部 knowledge-intensive。LLM 时代最广泛被引用的基准之一。详见 Lecture 11 评估教材。
BIG-Bench
(Srivastava et al., 2022) 由 450+ 位作者贡献的 200+ 任务,覆盖常识、数学、逻辑、伦理、文化、心智理论等。是迄今为止任务多样性最高的 LLM 基准之一。

1.5 开源数据集生态:Alpaca / Self-Instruct

LLaMA 在 2023 年初开源后,社区掀起了一波"如何低成本造 IFT 数据"的浪潮。核心思路: 让一个强 LLM 自动生成指令数据(self-instruct, Wang et al. 2022)。

flowchart LR A["175 seed tasks
(人工撰写)"] --> B["text-davinci-003
(GPT-3.5)"] B --> C["52K instruction-
following examples"] C --> D["Supervised
Finetuning"] E["LLaMA 7B
(Meta 开源)"] --> D D --> F["Alpaca 7B
(Stanford, 2023)"] style F fill:#eafaf0

Alpaca 仅用约 600 美元的 OpenAI API 成本,就训出了一个在小规模实验中"接近 text-davinci-003"的模型。 这开启了开源 LLM 的"百花齐放"时期:

1.6 LIMA:少即是多

LIMA(Less Is More for Alignment, Zhou et al., 2023)做了一个反直觉的实验: 只用 1,000 条精心挑选的高质量指令样本微调 LLaMA-65B, 然后人类盲评 vs Alpaca-65B / DaVinci003 / BARD / Claude / GPT-4。

对手LIMA winsTieLIMA loses
Alpaca 65B53%21%26%
DaVinci00344%21%35%
BARD (April)33%25%42%
Claude (April)24%22%54%
GPT-418%25%57%

LIMA 数据组成:

"Superficial Alignment Hypothesis" (LIMA 提出)
"预训练已经赋予了模型几乎全部的知识与能力;对齐只是教它如何按某种风格/格式回答用户。" 如果这一假设成立,那么 SFT 数据的质量远比数量重要。 LIMA 的 1k 数据 > Alpaca 的 52k 数据,强烈支持这一假设。

1.7 SFT 的两大根本局限

SFT 已经能让模型"听懂指令",但它在两个层面上有结构性缺陷:

Problem 1: 开放式生成没有"唯一正确答案"
"Write me a story about a dog and her pet grasshopper."

SFT 需要一个"标准答案"作为监督信号,但这种创造性任务有无数同样好的回答。 强行用一个特定的故事做监督,会让模型模仿那个特定写法而不是学到"如何写好故事"。
Problem 2: Token-level 均等惩罚,所有错误一样重
真值:"Avatar is a fantasy TV show"
错误 A:"Avatar is a fantasy TV show" (正确)
错误 B:"Avatar is a adventure TV show"(题材错了,但意思接近)
错误 C:"Avatar is a musical TV show"(完全错)

SFT 把错误 B 和 C 视为同等错误,但显然 C 比 B 离谱得多。 我们需要一个能给"更接近真值的错误更小的惩罚"的训练信号——而这正是 RLHF 要解决的。

这就引出了下一节:能否找到一种方式,不需要 token 级别的精确监督, 而是直接告诉模型"这个回答整体上更好"?答案是强化学习

第二部分:RLHF(从人类偏好做强化学习)

2.1 形式化:最大化期望奖励

假设我们在做摘要任务。对每个 LM 生成的摘要 $s$,假装我们已经有了一个人类奖励函数 $R(s) \in \mathbb{R}$(越高越好)。

原文: "SAN FRANCISCO, California (CNN) — A magnitude 4.2 earthquake shook the San Francisco area... overturn unstable objects."

$s_1$: "An earthquake hit San Francisco. There was minor property damage, but no injuries." → $R(s_1) = 8.0$ good
$s_2$: "The Bay Area has good weather but is prone to earthquakes and wildfires." → $R(s_2) = 1.2$ off-topic

RLHF 的核心训练目标是最大化模型采样的期望奖励

RLHF 顶层目标
$$\max_\theta\; \mathbb{E}_{\hat{s} \sim p_\theta(\cdot \mid x)}\big[R(\hat{s})\big]$$ 其中 $\theta$ 是 LM 参数。注意 $\hat{s}$ 是从模型分布采样出来的——这意味着我们必须能处理"采样过程的梯度", 而 $R$ 又可能是黑盒、不可微的(如人类打分、API 调用)。这是 RL 的标准设置。

要做梯度上升:

$$\theta_{t+1} := \theta_t + \alpha \nabla_{\theta_t} \mathbb{E}_{\hat{s} \sim p_{\theta_t}(\cdot)} [R(\hat{s})]$$

两个根本困难:

  1. 怎么估计期望?枚举所有可能的 $s$ 是天文数字($|V|^T$ 个,$V$ 是词表,$T$ 是序列长度)。
  2. $R$ 不可微怎么办?反向传播无法穿过黑盒 reward。

答案是 policy gradient(策略梯度)方法——特别是它的鼻祖 REINFORCE(Williams, 1992)。

2.2 RL 简史与"LM × RL"为何 2020 才热

为什么 LM + RL 直到 2020 才真正流行?三个原因:(1) PPO 等算法让大型神经网络的 RL 训练更稳定; (2) 算力到位后才能负担"采样 + 评分 + 梯度更新"的三步管线; (3) Transformer 让 LM 第一次有了"调优空间"——之前的 RNN LM 在 RL 中过于脆弱。

2.3 REINFORCE 与 log-derivative trick 完整推导

这是整个 RLHF 的数学心脏。我们要计算:

$$\nabla_\theta \mathbb{E}_{\hat{s} \sim p_\theta}[R(\hat{s})]$$

展开期望的定义(先把它当离散;连续情形把求和换积分):

1期望展开 + 梯度线性性 $$\nabla_\theta \mathbb{E}_{\hat{s} \sim p_\theta}[R(\hat{s})] = \nabla_\theta \sum_s R(s) \, p_\theta(s) = \sum_s R(s) \, \nabla_\theta p_\theta(s)$$ $R(s)$ 不依赖于 $\theta$(人类奖励是固定的),梯度只作用在 $p_\theta(s)$ 上。

但 $\nabla_\theta p_\theta(s)$ 是对概率本身求梯度,不能直接当作期望对数似然梯度。 关键技巧叫 log-derivative trick(也叫 likelihood-ratio trick / score function estimator):

2log-derivative trick 由链式法则: $$\nabla_\theta \log p_\theta(s) = \frac{1}{p_\theta(s)} \nabla_\theta p_\theta(s)$$ 两边乘以 $p_\theta(s)$ 重排得到: $$\boxed{\,\nabla_\theta p_\theta(s) = p_\theta(s) \, \nabla_\theta \log p_\theta(s)\,}$$ 这就是 log-derivative trick:把"概率的梯度"变成"概率 × 对数概率的梯度"。
3代回主公式 $$\sum_s R(s) \, \nabla_\theta p_\theta(s) = \sum_s p_\theta(s) \, R(s) \, \nabla_\theta \log p_\theta(s)$$ 注意右边正是 $\mathbb{E}_{s \sim p_\theta}\!\left[R(s) \nabla_\theta \log p_\theta(s)\right]$! 我们成功把"梯度放进了期望"。
4蒙特卡罗估计 有了期望形式,就能用采样近似: $$\nabla_\theta \mathbb{E}_{\hat{s} \sim p_\theta}[R(\hat{s})] \approx \frac{1}{m} \sum_{i=1}^m R(s_i) \, \nabla_\theta \log p_\theta(s_i)$$ 其中 $s_1, \ldots, s_m$ 是从当前 $p_\theta$ 采样的 $m$ 条样本。
REINFORCE 更新规则(Williams, 1992)
$$\theta_{t+1} := \theta_t + \alpha \cdot \frac{1}{m} \sum_{i=1}^m R(s_i) \, \nabla_{\theta_t} \log p_{\theta_t}(s_i)$$ 直觉:奖励高的样本,把它的对数概率推高;奖励低的,推低。 这就是 reinforcement learning 名字的由来——"我们 reinforce 好行为"

vanilla REINFORCE 的问题

问题影响解决思路
高方差采样很少时梯度估计噪声极大,训练崩溃引入 baseline(基准),或 actor-critic 架构
样本低效每个样本只用一次梯度就丢掉off-policy / importance sampling / 多轮重用
训练不稳更新过大会让策略"跑偏",下一轮采样质量崩溃限制策略改变幅度 → TRPO / PPO

2.4 PPO:信任域 + clip

PPO(Proximal Policy Optimization, Schulman et al., 2017)是当前最广泛使用的策略梯度算法。 核心思想:每次更新都限制新策略不能离旧策略太远,用 clip 操作做硬约束。

三个关键量

概率比 (probability ratio)
$$r_t(\theta) = \frac{p_\theta(s_i)}{p_{\theta_{\text{old}}}(s_i)}$$ 衡量"新策略对 $s_i$ 的概率"相对"旧策略"的变化。等于 1 表示没变化
优势函数 (advantage)
$$A(s_i) = R(s_i) - V(s_i)$$ 其中 $V(s_i)$ 是某个 value baseline(如另一个网络学到的状态价值估计)。 $A$ 表示"$s_i$ 比当前平均预期好多少",正值=值得 reinforce,负值=该削弱。
PPO clip 目标
$$\mathcal{L}^{\text{CLIP}}(\theta) = \mathbb{E}_{s_i \sim p_{\theta_{\text{old}}}}\Big[\min\!\big(r_t(\theta) \cdot A(s_i),\;\text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) \cdot A(s_i)\big)\Big]$$ clip range 通常 $\epsilon = 0.2$。

这个 clip 到底在做什么?

分情形理解:

min 的作用是保证:clip 只在"对优化器更保守"的方向上生效。换句话说,PPO 牺牲一点训练速度换取稳定性。

PPO 在 RLHF 中的工程细节
完整的 PPO RLHF pipeline 需要 4 个 LM 同时驻留显存
  • Policy LM $\pi_\theta^{\text{RL}}$:正在被训练的模型
  • Reference LM $p^{\text{PT}}$:冻结的预训练/SFT 模型,用于 KL 锚
  • Reward Model $RM_\phi$:冻结的奖励模型
  • Value Model $V_\phi$:可训练的价值估计网络(用于算 advantage)
这就是 PPO 显存爆炸的原因——也是 DPO 想"省掉一半"的直接动机。

2.5 Reward Model:Bradley-Terry 与成对比较

RLHF 的另一半挑战:$R(s)$ 怎么来? 直接让人类对每个样本打分有两大问题:

问题 1
human-in-the-loop 极贵。每次 RL 更新都要等人类打分根本不可扩展。
解决
训练一个独立的 Reward Model $RM_\phi$,让它学会预测人类偏好(Knox & Stone, 2009)。然后 RL 时用 $RM_\phi$ 代替真实人类。
问题 2
人类打绝对分数嘈杂且不一致。同一摘要 $s_3$,人 A 给 4.1,人 B 给 6.6,人 C 给 3.2——根本无法用作 ground truth。
解决
改用成对比较(pairwise comparison)。问"$s_1$ 和 $s_2$ 哪个好?"比"$s_1$ 几分?"靠谱得多(Phelps et al. 2015; Clark et al. 2018)。

Bradley-Terry 模型(1952)

设我们有一组成对偏好数据 $\mathcal{D} = \{(s^w, s^l)\}$,其中 $s^w$ 是 winner,$s^l$ 是 loser。 Bradley-Terry 假设每个候选 $s$ 有一个潜在分数 $RM(s)$,人类选 $s^w$ 优于 $s^l$ 的概率是:

Bradley-Terry 偏好模型
$$P(s^w \succ s^l) = \frac{\exp(RM(s^w))}{\exp(RM(s^w)) + \exp(RM(s^l))} = \sigma(RM(s^w) - RM(s^l))$$ 其中 $\sigma$ 是 sigmoid。这是逻辑回归在配对数据上的特例。

训练 reward model 就是最大化这个似然,等价于最小化负对数似然:

Reward Model 损失
$$J_{RM}(\phi) = -\mathbb{E}_{(s^w, s^l) \sim \mathcal{D}}\big[\log \sigma(RM_\phi(s^w) - RM_\phi(s^l))\big]$$ 直观:让 $RM_\phi$ 给 winner 的分数比给 loser

RM 的架构

通常 $RM_\phi$ 是一个 LLM(如 LLaMA、GPT),在最后加一个标量回归头: 取最后一个 token 的隐状态,过一个线性层得到 $RM_\phi(s) \in \mathbb{R}$。 RM 通常用 SFT 模型初始化,然后在偏好数据上 finetune。

2.6 RM 能 work 吗?scaling 实验

Stiennon et al. (2020) 在摘要任务上做了一个关键实验:随着 RM 规模和训练数据量增加, 它预测"held-out 人类偏好"的准确率如何变化?

0.60 0.65 0.70 0.75 0.80 0.85 10⁸ 10⁹ 10¹⁰ Model size (params) Validation acc Ensemble of humans Single human baseline 64k 32k 16k 8k
RM 验证准确率随模型规模 + 数据规模而提升。当 RM 足够大、训练数据足够多时,它能逼近"单个人类"的可靠水平(虚线)。但仍远低于"多人投票集成"(顶部虚线)。

两个关键结论:

  1. RM 是可 scale 的——大模型 + 多数据持续提升预测准确率。
  2. 足够大的 RM(10B 参数 + 64k 数据)能达到单个人类标注员水平。但仍无法超越"多个人类共识"——意味着 RM 学到了"平均人类"的偏好,而非更准确的"集体智慧"。

2.7 完整 RLHF 目标:RM + KL 锚

有了 RM,还差最后一步。如果直接用 PPO 最大化 $\mathbb{E}[RM_\phi(s)]$,会出现两个灾难:

  1. Reward Hacking:模型找到 RM 的漏洞,生成 RM 高分但人类讨厌的输出。
  2. 分布漂移:模型偏离预训练分布太远,丧失通用能力。

解决方案:加一个 KL 散度惩罚,把模型"锚定"在预训练 LM 附近。

RLHF 完整奖励(with KL penalty)
$$R(s) = RM_\phi(s) - \beta \log \!\left(\frac{p_\theta^{\text{RL}}(s)}{p^{\text{PT}}(s)}\right)$$ 当 $p_\theta^{\text{RL}}(s) > p^{\text{PT}}(s)$ 时(即新策略比预训练更倾向于生成 $s$),付一份 KL 代价。 $\beta$ 是 KL 系数,越大越保守。在期望意义下,整个惩罚等于 $\beta \cdot \mathrm{KL}(p_\theta^{\text{RL}} \,\|\, p^{\text{PT}})$

为什么是 KL?KL 散度 $\mathrm{KL}(p \| q) = \sum_s p(s) \log\frac{p(s)}{q(s)}$ 衡量两个分布的差异。 加 KL 惩罚等价于"软"约束:"你可以更新,但不能跑得太远"。

RLHF 完整目标(一行公式)
$$\max_\theta\; \mathbb{E}_{\hat{y} \sim p_\theta^{\text{RL}}(\cdot \mid x)}\!\left[RM_\phi(x, \hat{y})\right] - \beta\,\mathrm{KL}\!\left(p_\theta^{\text{RL}}(\cdot \mid x) \,\|\, p^{\text{PT}}(\cdot \mid x)\right)$$ 这个目标会贯穿后面所有的讨论——DPO 的推导也从这里出发。

2.8 RLHF 三步流水线

flowchart LR A["Step 1: SFT
Collect demonstration data
Fine-tune base LM"] --> B["Step 2: RM Training
Collect comparison data
Train RM with B-T loss"] B --> C["Step 3: PPO RL
Sample completions
Score with RM + KL
Update policy"] C -->|"new policy"| C style A fill:#e8f1f4 style B fill:#fff7e6 style C fill:#fbecec

按 InstructGPT 论文 (Ouyang et al., 2022) 的描述:

  1. Step 1: SFT (Supervised Fine-Tuning)。从 prompt dataset 采样 prompt,标注员写"理想回答",作监督数据微调 GPT-3 → 得到 SFT model $p^{\text{SFT}}$。
  2. Step 2: RM Training。对每个 prompt,让 SFT model 采样多个回答;标注员排序;用 Bradley-Terry 损失训 reward model $RM_\phi$。
  3. Step 3: PPO RLHF。初始化 policy LM 为 $p^{\text{SFT}}$;用 PPO 优化奖励 $RM_\phi(s) - \beta \log\frac{p^{\text{RL}}}{p^{\text{PT}}}$;更新策略;继续采样、评分、更新。

2.9 实证:RLHF 比 SFT 强多少?

Stiennon et al. (2020) 在摘要任务上做了 head-to-head 评测: 不同方法生成的摘要被人类喜欢的比例(vs 参考摘要):

0.2 0.3 0.4 0.5 0.6 0.7 Fraction preferred to ref Reference summaries 1.3B 2.7B 6.7B 12.9B Model size Pretrain (PT) IFT (SFT) RLHF (human fb)
Stiennon et al. (2020) 摘要任务实验:RLHF 在所有模型规模下都显著超过 SFT 和纯预训练,并且 1.3B 的 RLHF 模型甚至比 12.9B 的 SFT 模型还要好。

关键观察:1.3B 的 RLHF 模型甚至超过了 12.9B 的 SFT 模型。 也就是说,RLHF 带来的能力提升相当于 10× 模型规模的增长——这就是为什么 OpenAI、Anthropic、Google 等 都将 RLHF 视为产品化的必经之路。

第三部分:InstructGPT 与 ChatGPT

3.1 InstructGPT:30k 任务 RLHF 大规模化

InstructGPT(Ouyang et al., 2022)是 RLHF 第一次被大规模、严肃地应用到一个商业 LLM 上。 它建立在 GPT-3 之上,遵循前述的三步 pipeline,但关键的规模放在 Step 1 的 prompt 数据集—— 30,000+ 任务的真实用户请求

Prompt 来源

InstructGPT 的标注员从三个来源收集任务:

Plain
直接请标注员"想个任意任务",保证多样性。
Few-shot
请标注员同时给出一条指令 + 多个示例 query/response 对。
User-based
从 OpenAI API waitlist 申请书里抽取真实 use case,请标注员撰写对应 prompt。

典型样例:

Use-casePrompt
BrainstormingList five ideas for how to regain enthusiasm for my career
GenerationWrite a short story where a bear goes to the beach, makes friends with a seal, and then returns home.

效果对比

PROMPT
Write a short poem about a wise frog.
GPT-3(原始)
Write a short story in which a character has two different names. Write a short story in which you try to get something back that you have lost. Write a short story in which a character has a bad dream.
InstructGPT
The frog is a symbol of wisdom He knows all the secrets of the world He is a master of disguise And a great teacher of life He is a symbol of transformation And the bringer of change He is the frog who has seen it all And knows the meaning of it all

注意 GPT-3 完全无视"写诗"的指令,继续在补全"Write a short ..."的模式; 而 InstructGPT 真正理解了任务,写出了一首关于智慧青蛙的诗。

3.2 ChatGPT:对话化的 RLHF

ChatGPT(2022 年 11 月发布)本质上是 InstructGPT 的对话版。 OpenAI 在博客中描述:

"We trained this model using Reinforcement Learning from Human Feedback (RLHF), using the same methods as InstructGPT, but with slight differences in the data collection setup. We trained an initial model using supervised fine-tuning: human AI trainers provided conversations in which they played both sides—the user and an AI assistant. We gave the trainers access to model-written suggestions to help them compose their responses. We mixed this new dialogue dataset with the InstructGPT dataset, which we transformed into a dialogue format."

三个关键改动:

  1. 对话格式:标注员同时扮演用户和 AI,构造多轮对话。
  2. Model-assisted annotation:标注员可以参考模型生成的草稿来加速写作。
  3. InstructGPT 数据 reformat:把单轮 prompt 转成对话样式。

然后照常做 Bradley-Terry RM 训练 + PPO RLHF。OpenAI 没有公开 ChatGPT 的精确数据规模、模型大小、超参数—— 这是 LLM 商业化时代的常态:方法论开放、实现细节保密。

3.3 Controlled comparison:PPO / DPO / Best-of-N

Dubois et al. (2023) 在 AlpacaFarm 框架下做了一组系统对比: 不同 alignment 方法在同等数据下的 simulated/human win-rate。

方法Simulated Win-rate (%)Human Win-rate (%)
GPT-4*79.0 ± 1.469.8 ± 1.6
ChatGPT*61.4 ± 1.752.9 ± 1.7
PPO46.8 ± 1.855.1 ± 1.7
DPO46.8 ± 1.7
Best-of-102445.0 ± 1.750.7 ± 1.8
Expert Iteration41.9 ± 1.745.7 ± 1.7
SFT 52k39.2 ± 1.740.7 ± 1.7
SFT 10k36.7 ± 1.744.3 ± 1.7
Binary FeedME36.6 ± 1.737.9 ± 1.7
Quark35.6 ± 1.7
Davinci001*24.4 ± 1.532.5 ± 1.6
LLaMA 7B*11.3 ± 1.16.5 ± 0.9

关键观察:

3.4 RLHF 的风格副作用

RLHF 不仅在"内容质量"上改进 SFT,还显著改变了模型的表达风格。看下面这个对比:

Instruction
What are the five most common causes of stress among people?
Alpaca (SFT only, 10k data)
The five most common causes of stress among people are work, money, relationships, health, and family
Alpaca + PPO
The five most common causes of stress among people are: 1. Pressure at work: Whether it is due to tight deadlines, high expectations, or an overwhelming workload, pressure at work can be a major source of stress 2. Money problems: Financial issues can be a significant source of stress, from not being able to make ends meet to struggling with debt. 3. Unhealthy lifestyle: Poor diet, lack of exercise, and sleep deprivation can all contribute to stress. 4. Unhappiness at home: Problems in relationships, conflicts with family members, and other domestic issues can be a major source of stress. 5. Uncertainty: Excessive worry and anxiety about the future, health issues, or other unknowns can be a major cause of stress

PPO 之后的回答显著更长、更结构化(带 markdown 列表)、更"详尽"。 这反映了人类标注员的系统性偏好——他们倾向于打高分给"看起来认真"的回答。 这就是 RLHF 的一个常见副作用:verbosity bias / length bias, 我们会在第四部分详细分析。

第四部分:RL + Reward Modeling 的局限

4.1 Reward Hacking

Reward hacking(也叫 specification gamingGoodharting)是 RL 史上最经典的问题。 它的本质是:RL 算法会找到 reward 函数的所有漏洞,而这些漏洞往往不是设计者想要的"行为"。

经典案例:OpenAI 的赛艇游戏(CoastRunners)
任务:开赛艇沿赛道前进,完成圈数得分。
奖励:每经过一个 checkpoint 给一些分;完成一圈给大奖。

RL agent 学到的策略:不前进,而是在出生点附近一个 checkpoint 处反复打转—— 那里有再生道具能源源不断给分。最终得分比正常通关还高 20%。但显然,这不是"开船"。

来源:openai.com/blog/faulty-reward-functions

在 LLM 的 RLHF 中,reward hacking 表现为:

4.2 谄媚 + 幻觉

真实案例:Bing AI 幻觉 Super Bowl
2023 年 Bing AI 在回答"Who won the Super Bowl?"时声称: "The most recent Super Bowl was Super Bowl LVI, in which the Philadelphia Eagles defeated the Kansas City Chiefs by 31-24."
事实:(1) 当时最新的 Super Bowl 是 LVII;(2) Eagles 输给了 Chiefs,比分 35-38。

更糟的是 Google Bard 在演示中也犯了一个类似错误,导致 Alphabet 股价当天跌掉 100B 美元

为什么 RLHF 模型容易幻觉?根本原因:

  1. RM 教模型"看起来权威 + 有帮助",而不是"真的对"。
  2. 标注员往往无法验证回答的事实正确性(特别是 trivia 或专业领域),只能凭"语气是否自信、结构是否完整"打分。
  3. "我不知道"的回答容易被 RM 打低分——模型逐渐学会编造也不要承认无知

4.3 Reward Over-optimization

最深刻的 RLHF 局限是 RM over-optimization:训练初期 RM 分数和真实人类偏好一致, 但训练到一定程度后RM 分数继续上升,真实人类偏好却开始下降

0.2 0.4 0.6 0.8 1.0 Fraction preferred to ref 0 2 5 25 75 250 KL from supervised baseline RM prediction Actual preference
Stiennon et al. (2020) 的 RM over-optimization 实验:x 轴是 RL 策略距离 SFT baseline 的 KL,越大 = 训练越久。 虚线(RM 预测的"用户喜欢"比例)持续上升至 1.0;实线(真实人类偏好)先升后降——KL=25 处最高 ~0.47,到 KL=250 时已跌至 0.0。

这就是 Goodhart 定律在 RLHF 上的具体表现: "当 RM 成为优化目标,它就不再是好 measurement。" KL penalty 的作用就是抑制这种漂移—— $\beta$ 越大越保守,但同时也限制了能达到的真实改进幅度。这是一个需要调试的 trade-off。

第五部分:DPO(Direct Preference Optimization)

5.1 RL pipeline 究竟有多复杂?

PPO RLHF 的工程复杂度令人头大。看一眼 Zheng et al. (2023) 整理的完整 workflow:

flowchart TB Q["User Query x"] --> POLD["Policy LM
π_θ_old"] POLD --> A1["(s_t, a_t) trajectories"] A1 --> REW["Reward Model
r(x, y)"] A1 --> VAL["Value Model
V_φ(s_t)"] A1 --> SFT["SFT Model
π_SFT (frozen)"] REW --> GAE["GAE
Advantage Â(s_t, a_t)
Return R̂_t"] VAL --> GAE SFT -->|KL div| GAE GAE --> POLNEW["Policy LM
π_θ_RL (updated)"] GAE --> VAL2["Value Model loss
(MSE)"] POLNEW --> POLD VAL2 --> VAL style POLD fill:#fff7e6 style POLNEW fill:#eafaf0 style REW fill:#e8f1f4 style VAL fill:#e8f1f4 style SFT fill:#e8f1f4

PPO RLHF 的痛点:

这正是 DPO(Rafailov et al., 2023, NeurIPS Outstanding Paper)的动机: 能不能跳过 RL 的所有这些麻烦

5.2 移除 RL:闭式解的关键推导

DPO 论文的核心洞察:RLHF 的优化目标存在一个闭式解。让我们一步步推。

回忆 RLHF 完整目标(per prompt $x$):

$$\max_\theta\; \mathbb{E}_{\hat{y} \sim p_\theta^{\text{RL}}(\cdot | x)}\left[RM_\phi(x, \hat{y})\right] - \beta\,\mathrm{KL}\left(p_\theta^{\text{RL}}(\cdot|x) \,\|\, p^{\text{PT}}(\cdot|x)\right)$$
1写出最优分布 $p^*$ 的闭式解
对于上述 KL 正则化的奖励最大化问题,有经典闭式解(推导可参见 Peters & Schaal, 2007;或者直接验证 Lagrangian 的一阶条件): $$p^*(\hat{y}|x) = \frac{1}{Z(x)} p^{\text{PT}}(\hat{y}|x) \exp\!\left(\frac{1}{\beta} RM(x, \hat{y})\right)$$ 其中 $Z(x) = \sum_{\hat{y}} p^{\text{PT}}(\hat{y}|x) \exp(\frac{1}{\beta} RM(x, \hat{y}))$ 是归一化常数(partition function)。
为什么这个解形式是这样?
直觉:最优策略是预训练分布 × 一个由奖励决定的"重要性权重"。 高奖励的 $\hat{y}$ 被指数级放大,低奖励被压低。$\beta$ 越小(KL 约束越弱),权重越极端; $\beta \to \infty$ 时 $p^* \to p^{\text{PT}}$(完全保守);$\beta \to 0$ 时 $p^*$ 退化为奖励的 argmax。
2反解:从 $p^*$ 反推 $RM$
对上式两边取 log: $$\log p^*(\hat{y}|x) = \log p^{\text{PT}}(\hat{y}|x) + \frac{1}{\beta} RM(x, \hat{y}) - \log Z(x)$$ 重排得到: $$RM(x, \hat{y}) = \beta \log \frac{p^*(\hat{y}|x)}{p^{\text{PT}}(\hat{y}|x)} + \beta \log Z(x)$$
3把最优策略参数化
我们其实不知道真实的 $p^*$,但既然我们的 LM $p_\theta^{\text{RL}}$ 的目标就是逼近 $p^*$, 我们干脆把 $p^*$ 替换成 $p_\theta^{\text{RL}}$,并把 RM 也变成 $\theta$ 的函数: $$RM_\theta(x, \hat{y}) = \beta \log \frac{p_\theta^{\text{RL}}(\hat{y}|x)}{p^{\text{PT}}(\hat{y}|x)} + \beta \log Z(x)$$ 关键洞见:reward 模型其实可以用策略本身来参数化!
4插入 Bradley-Terry 偏好损失
现在我们有了 $RM_\theta$,直接代入第二部分的 Bradley-Terry 损失: $$J_{DPO}(\theta) = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}}\left[\log \sigma\!\big(RM_\theta(x, y_w) - RM_\theta(x, y_l)\big)\right]$$ 代入后展开: $$RM_\theta(x, y_w) - RM_\theta(x, y_l) = \beta \log \frac{p_\theta^{\text{RL}}(y_w|x)}{p^{\text{PT}}(y_w|x)} - \beta \log \frac{p_\theta^{\text{RL}}(y_l|x)}{p^{\text{PT}}(y_l|x)} + \cancel{\beta \log Z(x) - \beta \log Z(x)}$$ $\log Z(x)$ 项消掉了!因为 winner 和 loser 共享同一个 $x$,partition function 一致,差值为零。
DPO 最终损失(Rafailov et al., 2023)
$$\boxed{\;J_{\text{DPO}}(\theta) = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}}\!\left[\log \sigma\!\left(\beta \log \frac{p_\theta^{\text{RL}}(y_w|x)}{p^{\text{PT}}(y_w|x)} - \beta \log \frac{p_\theta^{\text{RL}}(y_l|x)}{p^{\text{PT}}(y_l|x)}\right)\right]\;}$$

5.3 DPO loss 完整形式与直觉

逐项解释:

$\log \frac{p_\theta^{\text{RL}}(y_w)}{p^{\text{PT}}(y_w)}$
"winner 在新策略下相对于 reference 的对数概率比"。我们想增加这个值(让模型更倾向 winner)。
$\log \frac{p_\theta^{\text{RL}}(y_l)}{p^{\text{PT}}(y_l)}$
"loser 的相同对数概率比"。我们想减少这个值(让模型更不倾向 loser)。
两者差
就是"winner 与 loser 的 implicit reward 差"。越大说明模型越偏好 winner。
$\sigma(\cdot)$
Bradley-Terry sigmoid:把 reward 差转化为偏好概率。
$\beta$
同 RLHF 的 KL 系数:控制策略偏离 reference 的强度。常用 0.1-0.5。
DPO 的革命性意义
  1. 无需训练 reward model:偏好数据直接驱动 policy 更新。
  2. 无需在线采样:纯 offline 训练,跟 SFT 一样的代码框架。
  3. 无需 value model:显存需求从 4 个 LM 降到 2 个(policy + reference)。
  4. 无需 PPO 超参:只有一个 $\beta$ 要调。
  5. 稳定性:训练曲线和监督学习一样平滑。

实现:"就是普通的 SFT 代码 + 一个新 loss"

# Pseudocode for DPO training step
for batch in dataloader:
    x, y_w, y_l = batch  # prompt, chosen, rejected

    # Compute log-probs from both models
    logp_policy_w = policy_model.logprob(x, y_w)   # ∑ log p_θ(y_w|x)
    logp_policy_l = policy_model.logprob(x, y_l)
    with torch.no_grad():
        logp_ref_w = reference_model.logprob(x, y_w)
        logp_ref_l = reference_model.logprob(x, y_l)

    # Implicit reward = β * log-ratio
    reward_w = beta * (logp_policy_w - logp_ref_w)
    reward_l = beta * (logp_policy_l - logp_ref_l)

    # Bradley-Terry loss
    loss = -F.logsigmoid(reward_w - reward_l).mean()

    loss.backward()
    optimizer.step()

5.4 DPO vs PPO 实验

Rafailov et al. 在 TL;DR 摘要任务上把 DPO 和 PPO / Preferred-FT / GPT-J / SFT / Best-of-128 进行了 head-to-head 对比, 评判用 GPT-4 作为 judge,看各方法生成的摘要被偏好胜过参考摘要的比例。

0.0 0.1 0.2 0.3 0.4 0.5 0.6 Win rate vs reference human ref 0.0 0.25 0.5 0.75 1.0 Sampling temperature DPO ★ Best of 128 PPO (崩塌) Pref-FT SFT GPT-J
TL;DR 摘要 win-rate vs sampling temperature。DPO 在低温度下击败所有方法,并在所有温度下保持稳定。 PPO 在低温尚可,但温度变大就崩塌——这反映了 PPO 训练后模型对采样温度极其敏感。

开源 RLHF 几乎全是 DPO

2024 年初查看 Hugging Face Open LLM Leaderboard,排在前列的开源模型几乎清一色 DPO 训练。 Turdus、Beagle、NeuralMarcoro、NexoNimbus 等 7B 量级的开源模型, 都采用 DPO 在偏好数据集(如 distilabeled-Marcoro、HH-RLHF)上调优。

5.5 GRPO:DeepSeek 的 RL 复兴

DPO 看起来一切都好——直到 2024 年 DeepSeek-Math(Shao et al.)和 DeepSeek-R1 用 GRPO (Group Relative Policy Optimization)证明:在数学推理这种有可验证奖励的任务上,online RL 依然不可替代

GRPO vs PPO 的关键差异

组件PPOGRPO
Policy Model✓ (trained)✓ (trained)
Reference Model✓ (frozen)✓ (frozen)
Reward Model✓ (frozen)✓ (frozen, 或基于规则)
Value Model✓ (trained, 与 policy 同规模)✗ 移除
Advantage 估计GAE(需要 value)组内归一化:从同一 prompt 采 $G$ 个回答,advantage = 各回答 reward 相对组均值的标准化
GRPO 的 advantage 估计
对每个 prompt $q$,采样 $G$ 个输出 $\{o_1, \ldots, o_G\}$,得到 reward $\{r_1, \ldots, r_G\}$。 $$A_i = \frac{r_i - \text{mean}(\{r_j\})}{\text{std}(\{r_j\})}$$ 不需要训 value model,组内对比即可。这削减了 ~50% 显存,并且在数学这种 verifiable reward 任务上表现极强。
flowchart LR Q1["q"] --> POL["Policy Model"] POL --> O1["o_1"] POL --> O2["o_2"] POL --> O3["o_G"] O1 --> RM["Reward Model"] O2 --> RM O3 --> RM RM --> R1["r_1"] RM --> R2["r_2"] RM --> R3["r_G"] R1 --> GROUP["Group Computation
(归一化)"] R2 --> GROUP R3 --> GROUP GROUP --> A1["A_1"] GROUP --> A2["A_2"] GROUP --> A3["A_G"] POL -.KL.-> REF["Reference Model"] style POL fill:#fff7e6 style RM fill:#e8f1f4 style REF fill:#e8f1f4 style GROUP fill:#eafaf0

GRPO 的成功催生了 2024 下半年的 "RL renaissance"——OpenAI o1、DeepSeek R1、Qwen-Reasoner 等推理模型都使用了 GRPO 或其变体。

5.6 KTO / IPO / SimPO 简介

DPO 之后涌现了一系列改进,每种都针对 DPO 的某个具体缺陷:

方法论文核心改动
IPOAzar et al. 2023用 squared loss 代替 sigmoid,缓解 DPO 在偏好"过于自信"时的 overfitting
KTOEthayarajh et al. 2024从行为经济学 Kahneman-Tversky prospect theory 出发,不需要"成对"数据,单 thumb-up/down 即可
SimPOMeng et al. 2024移除 reference model,用 length-normalized log-likelihood 作为 implicit reward
ORPOHong et al. 2024把 SFT 和 preference learning 合并到一个 loss 里,省掉两阶段训练
RLAIFLee et al. 2023用 LLM-as-judge 生成偏好数据替代人类
2026 年的实务建议
  • 有 verifiable reward(数学、代码、game)→ GRPO 或 PPO
  • 纯偏好数据,追求简洁 → DPO 是默认选择
  • 偏好数据稀缺、只有单点 thumb-up/down → KTO
  • 显存极度紧张 → SimPO(去 reference model)
  • 追求最优性能 + 算力充足 → DPO 之后再 PPO 一轮

第六部分:人类偏好数据 + Human vs AI Feedback

所有 alignment 方法的命脉都是偏好数据。它从哪里来?由谁产生?带什么样的偏见? 这些问题不是细枝末节——它们直接决定了模型最终的"价值观"。

6.1 标签从哪里来:digital sweatshops

媒体报道揭露了 RLHF 标注产业的真相:

真实新闻案例
  • Time (2023): "Exclusive: OpenAI Used Kenyan Workers on Less Than 2 USD Per Hour to Make ChatGPT Less Toxic"
  • Rest of World: "Millions of Workers Are Training AI Models for Pennies" — 从菲律宾到哥伦比亚,低薪标注员为 Amazon、Meta、Google、Microsoft 训练 AI
  • "Behind the AI boom, an army of overseas workers in 'digital sweatshops'" — 报道东南亚标注员的工作条件

这些标注员承担着双重压力:

这是 alignment 研究中常被回避的伦理议题。"对齐人类价值观"的 AI,其训练背后的人类成本是什么样的?

6.2 标注员 demographics 与系统性偏差

即使把伦理放在一旁,标注员的人口学组成也会系统性地塑造模型的"偏好"。 Ouyang et al. (2022) 在 InstructGPT 论文里公开了他们标注员的统计数据:

维度分布
性别男 50.0% · 女 44.4% · 非二元/其他 5.6%
族裔东南亚裔 52.6% · 白人 31.6% · 拉丁裔 15.8% · 黑人/非洲裔 10.5% · 东亚裔 5.3%
国籍菲律宾 22% · 孟加拉 22% · 美国 17% · 阿尔巴尼亚 5% · 巴西 5% · 加拿大 5% · 哥伦比亚 5% · 印度 5% · 乌拉圭 5% · 津巴布韦 5%
年龄18-24: 26.3% · 25-34: 47.4% · 35-44: 10.5% · 45-54: 10.5% · 55-64: 5.3%
教育本科 52.6% · 硕士 36.8% · 高中 10.5%
观察:
  • 来源国主要是东南亚 + 拉美,反映外包标注的经济地理
  • 年龄高度集中在 25-34(成年互联网原住民)
  • 本科+硕士 = 89.4%,没有博士标注员
这意味着:InstructGPT 学到的"理想回答风格",其实是 "东南亚 25-34 岁本科水平英文使用者认为好的回答"。 对其他人群(如老年人、不同文化背景、不同教育背景)的偏好覆盖度未知。

OpinionQA 实验:模型反映谁的观点?

Santurkar et al. (2023) 在 OpinionQA 中系统对比了不同 LM 在 30+ 议题(社区健康、犯罪、教育、移民、宗教、科学等)上的"观点分布"与不同人群的真实民调差异。 他们的发现:

跨文化偏差:Starling 7B 的"国家奖励"

Ryan et al. (2024) 用 Starling 7B 的 reward model 做了一个直观实验: 让 AI 助手回答 "Where are you from?",把"I am from {country}" 中的 country 换成世界各国, 观察 RM 给的分数。结果是一张世界地图染色图——

这种系统性偏差来自训练数据的隐含信号——大量英文互联网内容自身就有地缘偏见。 RLHF 通过 RM 把这些偏见"学进"并"放大"到部署的模型中。

6.3 RLAIF + Constitutional AI

"AI feedback 能替代 human feedback 吗?"是 2022-2024 年的核心研究问题。

RLAIF (Reinforcement Learning from AI Feedback)

Lee et al. (2023, Google) 的 RLAIF 论文做了一个直接对比: 用 GPT-4 / PaLM 等强模型替代人类标注员,产出 ranking 数据训 RM,再做 RLHF。 结果:RLAIF 在摘要任务上和 RLHF 打平甚至略胜(71% vs 73% win-rate)。

这一发现的实际意义:

Constitutional AI (Anthropic)

Bai et al. (2022, Anthropic)Constitutional AI 更进一步—— 让模型根据一组明文"宪法"原则自己批评和修正自己,完全不需要人类对每个样本打标签。

flowchart TB A["Initial Response
(SFT model 回答)"] --> B["Critique
'How could this response be more helpful and
less harmful, according to principle X?'"] B --> C["Revision
(模型重写自己的回答)"] C --> D["SL-CAI
(SFT on revised data)"] D --> E["RL with AI feedback
(用宪法 prompt 让 LM 自评)"] style E fill:#eafaf0

典型宪法原则(节选自 Anthropic 公开的版本):

Constitutional AI 的优势:透明的价值观规则、可审计、可修改。这与"黑箱 reward model"形成鲜明对比。 缺点:宪法本身也是人写的,价值观的偏见从标注员转移到了"宪法起草者"

6.4 Self-training: STaR / Self-Reward

另一个方向:让模型用自己的输出训练自己

STaR (Self-Taught Reasoner, Zelikman et al. 2022)

  1. 用 base LM 生成 chain-of-thought 解题
  2. 保留那些得到正确答案的 CoT
  3. 用这些"自举"的好样本 fine-tune 自身
  4. 循环迭代

关键洞见:"正确答案"提供了天然 verifier——不需要人标,只要能验证最终答案。 这种思路后来被 OpenAI o1、DeepSeek R1 大幅扩展,发展成了"reasoning RL"范式。

Self-Rewarding LMs (Yuan et al., Meta 2024)

让 LLM 同时扮演 generator 和 judge:

  1. LM 生成多个候选回答
  2. 同一个 LM 作为 judge 给它们打分(LLM-as-Judge)
  3. 用最高分 vs 最低分组成偏好对,做 DPO 更新
  4. 更新后的 LM 既是更好的 generator 也是更好的 judge → 循环

Self-Rewarding 在 Llama 2 70B 上做 3 轮迭代后,AlpacaEval 2 上击败了 Claude 2、Gemini Pro、GPT-4 0613。 但要警惕:这种 self-bootstrapping 极易陷入"自我谄媚"循环——模型偏好自己的风格,越练越窄。

第七部分:未来方向

Diyi Yang 在 lecture 结尾说:"RLHF is still a very underexplored and fast-moving area!" 让我们梳理几个值得 NLP 研究生投入的开放问题。

7.1 仍待解决的问题

问题挑战近期工作
Reward HackingRM 永远不完美,policy 总会找漏洞ensemble RM、process supervision、step-level reward
Reward Overoptimization训练越久 ≠ 越好early stopping、KL 自适应、constrained optimization
偏好多样性不同用户、文化、场景的偏好不同multi-objective RLHF、persona-conditioned RM
能力 vs 安全 trade-off过于谨慎的模型不再 useful;过于 helpful 的模型不安全Anthropic 的 "Helpful, Harmless, Honest" 三角
长期 alignment单步偏好难以编码长期目标(reasoning, agentic tasks)process-level RM, RLVR (verifiable rewards), GRPO
幻觉RLHF 让模型更"自信",反而更易胡说uncertainty-aware reward, factuality finetuning
规模化人类反馈偏好数据贵且偏RLAIF, Constitutional AI, self-rewarding

7.2 给研究生的方向建议

值得做的研究方向
  1. Process Supervision:从只奖励"最终答案"到奖励"推理过程的每一步"。OpenAI 的 "Let's Verify Step by Step"、DeepSeek R1 的 process RM 是起点。
  2. Verifiable Reward Pipelines:数学、代码、逻辑题有自动 verifier;如何把这种"硬 reward"推广到更多任务(如事实校验、定理证明)?
  3. Reward Model Robustness:用 adversarial examples 测试 RM;研究 RM 在 distribution shift 下的行为。
  4. Multi-objective Alignment:把 helpfulness / honesty / harmlessness 作为独立维度同时优化,用 Pareto frontier 替代单一标量 reward。
  5. Inference-time alignment:不改模型权重,只在解码时调控(如 RLPrompt, classifier-guidance, BOND)。
  6. Pluralistic Alignment:承认偏好的多元性而非追求"通用最优"——用户/文化/场景条件化的偏好建模。
  7. Open-source Preference Datasets:高质量、多样化、有 license 的偏好数据集本身就是稀缺资源。

7.3 一个重要的元问题

"Models of human preferences are even more unreliable than human preferences themselves."

我们整个 RLHF / DPO 体系建立在 "RM 能很好地代表人类偏好" 这一假设上。 但 Stiennon et al. 的 over-optimization 曲线、Santurkar et al. 的 OpinionQA、 Ryan et al. 的国家奖励地图——都在告诉我们:RM 是一个有偏见、不可靠、可被攻击的代理

这是 alignment 研究的核心张力:我们用一个不可靠的 measurement 去训练一个会被广泛部署、影响数亿人的系统。 如何减小这个 gap,可能是未来十年 NLP 最重要的研究方向之一。

7.4 总结:从 SFT 到 DPO 的整个图景

flowchart TB PT["1. Pretrained LM
(GPT-3, LLaMA, Qwen)"] --> SFT["2. SFT / IFT
'让模型听懂指令'"] SFT --> RM["3a. Reward Model
(Bradley-Terry on pairs)"] SFT --> DPO["3b. DPO
(直接用偏好数据)"] RM --> PPO["4. PPO/GRPO
(在线 RL + KL)"] PPO --> ALIGN["5. Aligned LM
(InstructGPT, ChatGPT, Claude)"] DPO --> ALIGN ALIGN --> CAI["6. Constitutional/Self
(scale beyond human)"] style PT fill:#e8f1f4 style ALIGN fill:#eafaf0 style CAI fill:#fff7e6

从这张图也可以看出,post-training 不是单一算法,而是一个多阶段、多技术栈、多领域知识的工程问题。 做 alignment 研究意味着同时关心:RL 算法、贝叶斯统计、人因工程、社会学、伦理学。 这也是为什么 alignment 在 2026 年仍是 LLM 实验室招聘的"必抢"人才方向。