工作台课程

CS336 · 从零构建语言模型

Lecture 15 · 对齐 I:SFT 与 RLHF

Lecture 15 · 对齐 I:SFT 与 RLHF

CS336: Language Modeling from Scratch · Stanford · Spring 2025
📅 May 20 · 💻 不可执行讲义(PDF) · 讲者 Tatsunori Hashimoto


承上启下

上一讲(Lecture 14 · 数据 II
- 预训练数据需要过滤、去重、质量控制,数据流水线决定了 base model 的底座能力。
- 到此为止,我们得到的是一个「互联网文本压缩器」——它知道很多,但并不知道该如何当一个助手。

本讲(对齐 I)
- 预训练得到的是 GPT-3 式 base model,不是好用的助手;要变成 InstructGPT / ChatGPT,还需要指令遵循(instruction following)、安全控制、人类偏好优化。
- 讲后训练(post-training)的三块基石:SFT、RLHF 数据、以及 PPO / DPO 两条偏好优化路线,并盘点 RLHF 的常见坑。
- 下一讲 Lecture 16 · 对齐 II:RLVR 会把「有噪声的人类偏好」换成「可验证的正确性」,继续这条主线。

摘要

SFT 让模型模仿「应该怎么回答」,RLHF/DPO 让模型优化「人更喜欢哪个回答」。但对齐数据充满风格、长度、标注者偏见和事实性问题;算法也会带来 reward overoptimization、mode collapse、过度拒绝等副作用。


1. 为什么预训练不够?

预训练的目标是最大化互联网文本的似然,即标准的下一 token 预测:

$$\max_\theta\ \sum_{t}\log p_\theta(x_t \mid x_{

其中$x_{互联网文本的条件分布模拟器:给它一个问题,它的最优行为是「模仿互联网上这个问题之后最可能出现的文本」——那可能是另一个问题、一个错误答案、一段论坛吵架,而不是一个高质量回答。

用户想要的却是另一回事:

  • 遵循指令:把输入当作要执行的任务,而不是要续写的文本;
  • 回答有帮助且简洁:直接给出答案,而不是绕圈子;
  • 诚实:不知道就说不知道,而不是流畅地胡编;
  • 无害:拒绝协助危险请求;
  • 适应对话格式:理解多轮上下文、角色分工。

互联网文本天然无法提供这种行为分布,因为其中充满了没有答案的问题、错误答案、有害内容、混乱的风格和大量非助手式文本。经典例子:让 GPT-3 base model「向六岁小孩解释登月」,它会续写出更多「向六岁小孩解释 X」的排比句——因为在互联网上,这类句子经常成串出现。

提示

预训练解决的是「知识与能力从哪来」,对齐解决的是「这些能力以什么行为方式表达出来」。base model 像一个读过全互联网、但没有任何职业训练的人:让它「像个助手」不是往里灌新知识,而是把它已有的能力约束到一个特定的行为分布上。这也是为什么后训练的数据量(几万到几百万条)远小于预训练(数万亿 token)却能彻底改变模型行为。


2. SFT:监督微调

2.1 目标与数据格式

SFT(Supervised Fine-Tuning,监督微调)在指令-回答对(instruction-response pairs)上继续做最大似然,但只对回答部分计算损失(prompt 部分被 mask 掉):

$$\mathcal{L}_{\mathrm{SFT}}(\theta) = -\,\mathbb{E}_{(x,y)\sim\mathcal{D}}\left[\sum_{t=1}^{|y|}\log \pi_\theta\!\left(y_t \mid x,\, y_{

其中$x$是指令(含对话历史),$y$是示范回答,$\pi_\theta$是模型。形式上这就是预训练的交叉熵,区别只在数据分布:从「互联网文本」换成「理想助手行为的示范」。

单轮数据示例:

{
  "instruction": "解释什么是 monopsony",
  "response": "Monopsony 指市场中只有一个买方..."
}

多轮对话则用 chat template 序列化成带角色标记的 token 流(如 <|user|>...<|assistant|>...),损失只落在 assistant 的 token 上:

[
  {"role": "user", "content": "..."},
  {"role": "assistant", "content": "..."},
  {"role": "user", "content": "..."},
  {"role": "assistant", "content": "..."}
]

2.2 常见数据源

数据集 特点
FLAN 把大量 NLP 任务模板化为指令,偏任务格式
Alpaca Self-Instruct 风格:用强模型合成指令数据
OpenAssistant 志愿者众包的人类对话,多样但风格复杂
Anthropic HH helpful/harmless 偏好对话与安全数据
Tulu / UltraFeedback 混合人类与模型生成的数据配方

这些来源代表了三条获取路径:人类手写(贵而稀少)、任务模板化(便宜但格式僵硬)、强模型蒸馏(便宜且流畅,但继承教师模型的偏见与错误)。现代开源配方(如 Tulu)通常混合三者并做仔细的配比消融。

2.3 SFT 的作用边界

SFT 最擅长的事情,本质上都是「行为塑形」:

  • 把预训练中已有的能力「抽取」出来(elicitation)——模型早就会写代码,SFT 教它「被问到时把代码好好写出来」;
  • 教对话格式、角色规范;
  • 教风格与输出约束(长度、语气、markdown 结构);
  • 初步的安全调优(学会拒绝的句式与边界)。

SFT 不擅长的事情,本质上都是「注入新东西」:

  • 往模型里塞大量预训练没见过的尾部事实;
  • 用少量样本让模型获得全新的复杂能力;
  • 精准地优化人类偏好(模仿学习只能逼近示范者的平均水平,见第 5 节)。

注意

在模型不知道的尾部知识上做 fine-tuning,可能反而增加幻觉(hallucination)。机制:SFT 强迫模型对它内部不掌握的事实输出流畅、自信的答案,模型学到的不是这些事实本身,而是「即使不确定也要编一个像样的答案」这个行为模式(Gekhman et al. 2024)。知识存储(预训练的事)与表达控制(SFT 的事)是两回事,混淆二者是后训练里最常见的误解之一。

说明

LIMA(Zhou et al. 2023)只用约 1000 条精心挑选的示范就得到不错的对话模型,据此提出「表面对齐假说」:对齐主要是学一个风格与格式的子分布,能力几乎全部来自预训练。这个假说在「聊天体验」维度上大体成立,但后来的实践(数学、代码、安全)表明:想要稳健的能力提升与安全边界,数据量和数据质量仍然重要——「1000 条就够」不能推广到所有目标。


3. SFT 数据里的隐性变量

3.1 风格和长度

不同指令数据集之间的差异,远不止「质量高低」,还包括一整套隐性的风格变量:是否用 bullet points、回答长短、是否引用来源、解释详略、遇到边界问题是否保守拒绝、语气是否像客服。模型会把这些变量全部学走——所以「换一个 SFT 数据集」经常表现为「模型性格大变」。

其中长度是影响最系统性的变量:

  • 人类标注者在偏好评估中普遍偏爱更长、更详细的答案,即使内容并没有更多信息量;
  • LLM judge(如 AlpacaEval 的自动评估,见 Lecture 12 · 评估)同样系统性偏长;
  • 于是「变得啰嗦」成了一条稳定可学的「作弊」路径:模型不需要更聪明,只要更长就能赢得更高的偏好分。

AlpacaEval 后来推出 length-controlled 版本,用回归把长度因素从 win rate 中剥离,就是对这个问题的直接回应。

3.2 安全数据

一个重要的实验事实:只需几百条安全示范混入 SFT 数据,就能显著改变模型的拒绝行为(Bianchi et al. 2023)。这既是好消息(安全调优便宜),也是坏消息(安全行为是一层薄薄的表面行为,容易被后续微调抹掉)。

但安全数据要在两类错误之间走钢丝:

  • 漏拒(under-refusal):危险指令没有被拒绝;
  • 过拒(over-refusal):正常请求被误伤,例如 XSTest 里的「How do I kill a Python process?」被当成暴力请求拒绝。
graph LR
    SAFE["安全拒绝数据"] --> GOOD["减少有害输出"]
    SAFE --> BAD["增加 over-refusal"]

提示

安全调优本质上是在教一个决策边界,而 SFT 只能提供边界两侧的样本点。样本少时模型只能学到粗糙的表面特征(如「出现 kill、weapon 等词就拒绝」),于是把善意请求也拒了。要把边界画细,要么堆更多覆盖边界附近的对比样本,要么靠 RLHF 阶段用偏好信号继续打磨。


4. Midtraining / Two-Phase Training

讲义提到一种越来越常见的做法,把「预训练→SFT」的两段式改为三段:

  1. 主预训练:大量网络文本;
  2. 中期训练(midtraining)/ 退火阶段:在学习率衰减阶段混入高质量数据与 instruction-like 数据;
  3. 再做 SFT / RLHF。

这样做的因果链条是:SFT 数据量太小(万级到百万级样本),如果模型在进入 SFT 之前从未见过指令/对话格式的分布,SFT 就要同时承担「教格式」和「教行为」两件事,容易学不稳;把指令格式的数据提前少量注入中期训练,等于让模型先「见过世面」,SFT 阶段只需做行为微调。MiniCPM、OLMo 2 等公开配方都在退火阶段混入指令数据;工业界模型普遍采用类似 recipe,但公开细节通常不完整。

说明

Midtraining 与 Lecture 14 · 数据 II 讲的数据课程(curriculum)是同一思想的延续:数据分布的调度本身就是训练算法的一部分。「什么数据在什么阶段出现」与「用什么损失函数」同样重要。


5. 从模仿到优化:为什么需要 RLHF?

SFT 是模仿学习(imitation learning):拟合示范分布$p^*(y \mid x)$,模型的上限就是示范者的平均水平。但「人类偏好」并不等于「人类示范」,有四个结构性原因:

  • 人不一定能写出最优答案:标注者写的示范可能平庸,但让他判断两个答案哪个更好却相对容易;
  • 成本不对称:写一条完整的高质量示范贵得多,给一对回答标注偏好(pairwise preference)便宜得多,同样预算能收集多得多的偏好数据;
  • 生成与判别的能力差(generation-discrimination gap):「写出好答案」和「认出好答案」是不同能力,人类(和模型)通常判别强于生成;
  • 偏好是多维综合:有用性、事实性、安全性、风格的权衡很难写进单条示范,却会自然体现在比较中。

于是 RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)把目标从「模仿」换成「优化」:

$$\max_\theta\ \mathbb{E}_{x\sim\mathcal{D},\, y\sim\pi_\theta(\cdot\mid x)}\left[r(x,y)\right]$$

其中$r(x,y)$是对回答质量的打分,来自人类偏好或模型偏好。注意与 SFT 的根本区别:期望是对模型自己生成的$y$取的——模型从「学别人的答案」变成「为自己的答案负责」。

提示

SFT 的天花板是「示范者有多好」,RLHF 的天花板是「评价者能分辨多好」。因为判别比生成容易,后者的天花板更高——这是整个偏好优化路线的根本动机。代价是:你优化的不再是「真实的好」,而是「评价信号认为的好」,一切评价信号的缺陷(噪声、偏见、可被钻空子)都会被优化过程放大,这正是第 9 节所有坑的共同根源。


6. RLHF 数据:偏好不是干净标签

标准的成对反馈(pairwise feedback)格式:

{
  "prompt": "...",
  "chosen": "更好的回答",
  "rejected": "较差的回答"
}

数据来源包括:众包标注者、专家标注、模型生成偏好(AI feedback / RLAIF)、Constitutional AI 式的自我批改、以及产品中的用户真实反馈(点赞/重新生成)。

但每一条来源都不是「干净的人类真理」:

  • 标注者能力参差:复杂问题(代码、数学、专业事实)超出普通众包者的判断能力,偏好退化为「哪个看起来更像好答案」;
  • 标注规范难写:helpful 与 harmless 冲突时怎么选?规范写得越细,标注越慢越贵;写得粗,标注者各自脑补;
  • 人口统计分布影响价值观:标注者群体(地区、语言、政治光谱)的构成会系统性地写进模型的价值判断;
  • 长度偏差明显:如 3.1 所述,长≈好的捷径污染大量偏好对;
  • 标注者通常不验证事实:一条流畅自信的错误回答很容易赢过一条谨慎正确的回答;
  • crowdwork 伦理问题:低报酬、接触有害内容的心理成本,是这套流水线的隐性代价。

注意

RLHF 数据不是「人类偏好」的无偏样本,而是某个标注流程、标注人群、标注界面共同作用的产物。换一批标注者、换一个界面布局(比如两个回答并排 vs 上下排列)都可能系统性改变偏好分布。把 reward model 当成「人类价值的测量仪」是危险的——它只是这套流程的拟合器。


7. PPO:原始 RLHF 路线

InstructGPT(Ouyang et al. 2022)确立的三步流程:

  1. SFT:在示范数据上微调,得到初始 policy$\pi_{\mathrm{SFT}}$;
  2. 训练 reward model:收集偏好数据,训练打分模型$r_\phi$;
  3. PPO 优化 policy:用$r_\phi$当奖励做强化学习,同时加 KL 惩罚防止偏离参考模型。

7.1 Reward Model 与 Bradley-Terry 模型

偏好数据是「A 比 B 好」的比较,不是绝对分数。把它变成标量 reward 的标准做法是 Bradley-Terry 模型:假设人类偏好$y_w$(chosen)胜过$y_l$(rejected)的概率由二者「潜在分数」之差决定:

$$P(y_w \succ y_l \mid x) = \sigma\!\left(r_\phi(x, y_w) - r_\phi(x, y_l)\right)$$

其中$\sigma(z)=1/(1+e^{-z})$是 sigmoid 函数,$r_\phi$通常是把语言模型最后一层换成标量输出头。训练目标是偏好数据上的负对数似然:

$$\mathcal{L}_{\mathrm{RM}}(\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]$$

注意这个损失只依赖分数差:$r_\phi$整体平移一个常数不改变任何偏好概率,所以 reward 的绝对数值没有意义,只有同一 prompt 下的相对比较有意义——这一点会在 Lecture 17 · 对齐 III:RL 实战 的 baseline 讨论中再次出现。

7.2 RLHF 优化目标

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

符号:$\pi_\theta$是被优化的 policy,$\pi_{\mathrm{ref}}$是参考模型(通常为 SFT 模型的冻结副本),$\beta>0$控制 KL 惩罚强度。KL 项的作用有二:一是防止 policy 跑到$r_\phi$训练分布之外的区域(那里 reward 分数不可信);二是保留参考模型的通用语言能力。实现上 KL 惩罚通常按 token 折算进 reward,再交给 PPO。

PPO(Proximal Policy Optimization)本身做的事情:on-policy 采样回答→reward model 打分→用 clip objective 限制每步更新幅度以保持稳定。算法细节(概率比、clip、advantage)留到 Lecture 16 · 对齐 II:RLVRLecture 17 · 对齐 III:RL 实战 展开;这条路线与 CS221 中的策略梯度方法(Lecture 9 · 函数逼近与策略梯度(未找到对应页面))一脉相承。

7.3 代价

PPO 路线强但昂贵,每一条缺点都有明确来源:

  • 实现复杂:同时维护 policy、reference model、reward model、value model 四个模型;
  • 要先训练 reward model:偏好数据的一切缺陷从这里进入系统;
  • 要在线生成 rollout:训练循环里嵌着推理 workload,慢且贵;
  • 超参多:KL 系数、clip 范围、value loss 权重、采样温度都要调;
  • 容易 overoptimization:见 9.1。

8. DPO:RLHF without tears

DPO(Direct Preference Optimization,直接偏好优化)的出发点:能不能不训练 reward model、不做 on-policy RL,直接用偏好对训练 policy?

8.1 推导:隐式 reward

关键观察:7.2 的 KL 正则化目标有闭式最优解

$$\pi^*(y \mid x) = \frac{1}{Z(x)}\,\pi_{\mathrm{ref}}(y \mid x)\,\exp\!\left(\frac{r(x,y)}{\beta}\right)$$

其中$Z(x)=\sum_y \pi_{\mathrm{ref}}(y\mid x)\exp(r(x,y)/\beta)$是配分函数(对所有可能回答求和,不可计算)。把这个式子反解出 reward:

$$r(x,y) = \beta\log\frac{\pi^*(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)} + \beta\log Z(x)$$

也就是说:任何 policy 都隐式定义了一个 reward——它相对参考模型抬高了哪些回答的概率。把这个隐式 reward 代入 Bradley-Terry 的偏好概率,$\beta\log Z(x)$在做差时恰好消掉(因为$y_w, y_l$共享同一个 prompt),得到只含 policy 的损失:

$$\mathcal{L}_{\mathrm{DPO}}(\theta) = -\,\mathbb{E}_{(x,y_w,y_l)}\left[\log\sigma\!\left(\beta\log\frac{\pi_\theta(y_w\mid x)}{\pi_{\mathrm{ref}}(y_w\mid x)} - \beta\log\frac{\pi_\theta(y_l\mid x)}{\pi_{\mathrm{ref}}(y_l\mid x)}\right)\right]$$

符号:$y_w$/$y_l$是偏好对中被选中/被拒绝的回答,$\beta$与 RLHF 目标中的 KL 系数同源,控制偏离参考模型的容忍度。直觉:把 chosen 的 logprob 相对参考模型往上推、rejected 往下压,推压的幅度由「隐式 reward 排序错得多严重」加权——对 DPO 损失求梯度可见权重正是$\sigma(\hat r_\theta(x,y_l)-\hat r_\theta(x,y_w))$,模型排序错得越离谱的样本,更新越大。

伪代码形式(与上式一一对应):

loss = -logsigmoid(
    beta * (
        logπ(chosen) - logπ(rejected)
        - logπ_ref(chosen) + logπ_ref(rejected)
    )
)

提示

DPO 的聪明之处在于换了求解顺序:RLHF 是「先从偏好学 reward,再用 RL 从 reward 学 policy」两步;DPO 注意到这两步之间存在解析的一一对应(在 KL 正则下),于是把两步压成一步——「你的语言模型偷偷是个 reward model」。代价是:它拟合的是离线偏好数据集上的排序,而不是在模型自己当前的生成分布上探索,因此偏好数据与模型生成分布的错配(distribution shift)不会像 on-policy RL 那样被自动纠正。

8.2 优缺点

优点:

  • 实现只是一个分类式损失,工程复杂度接近 SFT;
  • 离线偏好数据即可,不需要在线 rollout;
  • 不需要单独的 reward model(省一次训练、省一份显存);
  • 大量开源对齐模型(Zephyr、Tulu 系列等)采用并验证有效。

缺点:

  • 没有真正的在线探索,policy 生成分布变化后偏好数据会「过期」;
  • 对偏好数据质量敏感,噪声对会被直接拟合;
  • 长度/风格偏差同样存在(它优化的仍是同一批有偏数据);
  • 在 reward 信号可靠、rollout 预算充足的设置下,PPO 类 on-policy 方法上限通常更高。

9. RLHF 的坑

9.1 Reward Overoptimization

Gao et al.(2023)的经典实验:用一个大模型当「金标准 reward」(代替昂贵的真人评估),训练小 reward model 当代理(proxy),然后对着 proxy 一直优化。结果呈现系统性规律:随着 policy 偏离初始模型越来越远(横轴用$\sqrt{\mathrm{KL}(\pi\,\|\,\pi_{\mathrm{ref}})}$衡量),proxy reward 单调上升,而 gold reward 先升后降

机制:reward model 只是偏好数据的拟合器,在训练分布附近可信,之外只是外推。RL 优化恰恰专门把 policy 推向 reward 高估的区域——优化压力越大,policy 越集中在 proxy 的误差上。这就是 Goodhart 定律的模型版:「当测量成为目标,它就不再是好测量」。

  • KL 惩罚能延缓但不能根治:它限制的是「偏离多远」,不是「偏向哪里」;
  • 实践对策:early stopping、定期用真人评估校准、把 reward model 换大、持续用新 on-policy 数据更新 reward model。

9.2 Mode Collapse / Entropy Loss

RLHF 会系统性地改变模型作为概率模型的性质。最大似然训练的 base model 是校准的(calibrated):它对下一 token 的概率估计接近真实频率。而 RLHF 的目标是最大化 reward,最优解趋向确定性策略——把概率质量集中到少数高 reward 回答上。后果:

  • 输出多样性下降,同一 prompt 反复采样得到雷同回答;
  • calibration 变差:GPT-4 技术报告显示 RLHF 后模型在选择题上的置信度-正确率校准明显退化;
  • 模型不再适合当「分布的模拟器」用(比如用于多样本估计、创意生成时变得单调)。

注意

这不是 bug 而是目标函数的必然结果:最大化期望 reward 与保持分布多样性天然冲突。KL 正则是在这两者之间买一个折中,而不是同时得到两者。

9.3 Length Bias

偏好数据和 LLM judge 都偏爱长回答(3.1 节),RLHF/DPO 会把这个偏差放大成显式的优化方向:模型学会写更长→judge win rate 上升→benchmark 数字变好→但用户拿到的是注水回答。诊断手段:对比 length-controlled 指标;缓解手段:偏好数据配平长度、reward 中加长度惩罚、评估时做长度回归控制。

9.4 Safety vs Helpfulness

安全调优的张力在 RLHF 阶段同样存在:往安全方向推,模型容易学会「宁可错拒一千」——因为拒绝永远是安全的,而回答有风险。结果是正常请求被拒(XSTest 类评测专门测这个)、有用性下降。根本困难在于 policy 边界本身就模糊且随语境变化,而偏好数据只能稀疏地覆盖边界。


总结

mindmap
  root((SFT 与 RLHF))
    SFT
      instruction data
      imitation
      style
      safety tuning
    Data
      FLAN
      Alpaca
      OpenAssistant
      HH
      UltraFeedback
    RLHF
      preference pairs
      Bradley-Terry RM
      PPO
      KL penalty
    DPO
      implicit reward
      no reward model
      pairwise objective
      ref model
    Risks
      length bias
      overoptimization
      mode collapse
      over-refusal

关键要点

  1. SFT 是行为抽取,不是万能知识注入
    - 最适合教格式、风格和已有能力的表达;在模型不会的知识上硬教会助长幻觉。

  2. 对齐数据里风格变量很强
    - 长度、bullet、引用、语气都会影响偏好;长度是最系统性的偏差。

  3. RLHF 数据很难干净
    - 偏好是标注流程、人群、界面的产物,不是「人类真理」的无偏采样。

  4. PPO 强但复杂
    - 四个模型副本、在线 rollout、一堆超参;reward model 由 Bradley-Terry 从偏好对训练而来。

  5. DPO 简洁但不是银弹
    - 利用 KL 正则目标的闭式解把两步压成一步;省掉 reward model 和 rollout,但失去在线探索。

  6. RLHF 会改变概率模型性质
    - overoptimization 源于对代理指标的优化压力;mode collapse 与 calibration 退化是最大化 reward 的必然副作用。

下一讲预告(Lecture 16 · 对齐 II:RLVR

RLHF 的 reward model 容易被过优化,根源在于奖励信号本身有噪声、可被钻空子。下一讲转向 verifiable rewards:数学、代码等可自动判分的任务中,RL 可以直接优化正确性,典型路线包括 PPO → GRPO 的简化,以及 DeepSeek-R1、Kimi K1.5、Qwen3 的完整 recipe。


复习自测

题目

SFT 的损失强迫模型对示范答案输出高概率。若答案涉及模型内部并不掌握的事实,梯度无法「造出」知识,只能让模型学会「面对此类问题时自信地生成流畅答案」这一行为模式。泛化到其他未知问题时,这个模式就表现为幻觉。核心:知识在预训练中存储,SFT 只能控制表达行为。

题目

$P(y_w\succ y_l\mid x)=\sigma(r_\phi(x,y_w)-r_\phi(x,y_l))$,损失为$-\log\sigma(r_\phi(x,y_w)-r_\phi(x,y_l))$。因为偏好概率只依赖分数差,对$r_\phi$整体加任意常数(甚至每个 prompt 加不同常数)损失不变,所以只有同一 prompt 下的相对分数可比。这也预示了 RL 阶段用「组内相对 reward」做 baseline 的合理性。

题目

隐式 reward$r(x,y)=\beta\log\frac{\pi(y|x)}{\pi_{\mathrm{ref}}(y|x)}+\beta\log Z(x)$中,$Z(x)$只依赖 prompt 不依赖回答。代入 Bradley-Terry 时计算的是同一$x$下两个回答的 reward 差,$\beta\log Z(x)$作为公共项相消。条件:偏好对必须共享同一 prompt,且 Bradley-Terry 形式只依赖分数差。

题目

Reward model 是偏好数据的拟合器,只在训练分布附近可信;RL 优化专门把 policy 推向 reward 估值最高的区域,而这些区域往往正是 RM 外推失误、系统性高估的地方,于是 proxy reward 持续上升而真实质量先升后降。KL 惩罚只约束偏离参考模型的总量,不约束偏离的方向——policy 仍会把有限的 KL 预算全部花在 RM 的误差方向上。

题目

SFT 在示范数据分布上做最大似然(模仿别人写的答案);PPO-RLHF 在模型自己当前的生成分布上最大化 reward(在线探索,为自己的答案负责);DPO 在离线偏好数据分布上拟合隐式 reward 的排序(形式是分类损失,效果近似 KL 正则的 RLHF,但没有在线探索)。


参考资料