跳到主要内容

偏好学习 — 教模型「好坏」:RLHF 的重与 DPO 的轻

这一章讲三件事: 「好答案」怎么变成训练数据;经典的 RLHF 流水线为什么又重又不稳; DPO 怎么用一条数学洞见把它砍轻四成。 这一章没有代码——原书对偏好学习只讲了机制和配方,没给实现(实现要等它未出版的后续章节)。 读完你能回答:「为什么 InstructGPT 用 13 亿参数打败了 1750 亿参数?」

1. 先看现象:格式全对,答案平庸

SFT 训完的模型,输出格式漂亮、风格对路——然后你发现它答得平庸。这不奇怪:第 03 章说过,SFT 的信号只有「照着示范写」,示范多好它多好,示范平庸它平庸1

要突破天花板,需要一种 SFT 结构上给不出的信号:区分「好回答」和「差回答」。偏好学习补的就是这一块,书里的分工一句话:SFT 教格式,偏好学习教质量2

2. 顶层全景:RLHF 三段

基础模型
│ ① SFT:先示范,给模型一个会说话的起点

SFT 模型 ──────────────┐
│ │ 人看同一个问题的两个回答,选一个更好的
│ ② 成对比较数据 ──→ 训出「奖励模型」:一个替人打分的模型
▼ │
奖励模型 ──────────────┘
│ ③ 强化学习(PPO):让语言模型多产出高分回答,
│ 同时被拴在 SFT 起点附近

对齐后的模型

图说:整套流程出自 OpenAI 的 InstructGPT 论文(2022)。
第②段生产「什么是好」的判断,第③段把这个判断灌回语言模型。

3. 核心原理:把「好」变成数据,再把数据灌回模型

第①步:成对比较——「好」的最小单位

让人直接给回答打分(1 到 10 分)很难稳定:每个人心里的刻度不一样。成对比较绕开了刻度——同一个问题的两个回答摆在一起,只问哪个更好,这是人判断得最稳的题型。数据因此长成:一个 prompt,一个标「更好」的回答(chosen),一个标「更差」的回答(rejected)3

第②步:奖励模型——把人的口味装进一个模型

标注(由人给数据做记号、选偏好)攒够之后,训一个奖励模型:输入一段回答,输出一个分,这个分预测「人会更喜欢它吗」4。从此打分不用再麻烦人——它是人的口味的替身

第③步:PPO——贴着起点优化

拿到替身打分器(奖励模型的另一个叫法),就可以用强化学习(第 01 章讲过:不给答案、只给分数,让模型自己往高分调)去优化语言模型了。用的具体算法是 PPO(近端策略优化:强化学习里最常用的一支)。书里点出 PPO 有个关键设计:优化时把模型拴在 SFT 起点附近——拴住的尺子是 KL 散度(衡量两个模型的输出差多远的一个数),偏离太远就罚5

为什么要拴?书里给了两个不拴的下场:灾难性遗忘(为追高分把 SFT 学会的本事冲掉)和奖励作弊(找到替身打分器的漏洞刷分,而不是真的变好)6

PPO 的真实代价:同时养四个模型

这是 RLHF 出了名难做的地方。训练时内存里要同时放四个模型:正在优化的策略模型、算 KL 罚的参考模型、打分的奖励模型、还有估计「这步动作值多少分」的价值模型7

四个模型意味着显存(显卡上装的高速内存)压力,还意味着多个不稳定源,书里点了三个。

替身打分器(就是上一节那个奖励模型)本身可能失准;PPO 可能过拟合(死记)打分器的毛病;KL 罚则是两难——罚太重模型不敢学,罚太轻放任作弊8

证据:13 亿打赢 1750 亿

这套流程值不值?InstructGPT 的结果是全书引用的最硬证据:13 亿参数的模型经 RLHF 训练后,人类评委更喜欢它,而不是没做这一步的 1750 亿参数 GPT-3。小模型并没有更多知识——它赢在对知识的使用判断上,而这个判断正是奖励模型给的信号9

(参照系:13 亿是 1750 亿的 0.7%。这一比较也顺手回答了「后训练改不了什么」——它没给小模型添知识,知识还是预训练给的那点,它改的只是用法。)

4. DPO:把四减成二

一条数学洞见

2023 年发表的 DPO(Direct Preference Optimization,直接偏好优化)把流水线砍掉了两段。洞见是:RLHF 想要的「最优策略」在数学上有闭式解——可以直接从偏好数据算出该把模型调成什么样,不需要先训奖励模型、也不需要强化学习循环10

主走查:一对偏好在 DPO 里怎么改模型

拿一组真实形状的数据走一遍(概率数值是为演示编的,机制是书里的):

问:「怎么重置路由器的管理密码?」
chosen: 三步讲清,顺序对,没有废话
rejected: 洋洋洒洒十步,第二步就是错的

训练时内存里只有两个模型(书里点明的配置):
策略模型 —— 正在训的这个
参考模型 —— 冻结的 SFT 副本,当「不许漂太远」的锚

每一步更新都在做同一件事:
抬高 chosen 的概率,压低 rejected 的概率,
但两者相「对」而动 —— 参考模型在旁边拽着,不许单边押太狠

chosen 的概率: 0.02 → 0.05 (编的演示数值)
rejected 的概率: 0.03 → 0.01 (编的演示数值)

图说:DPO 学的不是「chosen 是好答案」,
而是「chosen 要比 rejected 更像这个模型会说的话」。

为什么它成了默认

书里给了三条理由:内存里只要两个模型(不是四个);更稳、更容易实现、对超参数(训练前人为定下的设置,学习率是其中之一)不敏感。

变体成簇:IPO、KTO、ORPO(同一思路的几个改进款)。于是它成了开源自训流水线的默认偏好学习方法11

作者还把这事的行业意义挑明了:Llama 3 和 Qwen 2.5 都没养四个模型,照样做出了第一梯队的模型——一个内存装得下两个模型的团队,就能跑对齐阶段;这种可达性是开源后训练成熟得这么快的主因12

5. 作者的判断与证据

给了证据的:

  • InstructGPT 的 13 亿 vs 1750 亿(第 3 节),这是论文发表过的人类评测结果;
  • Llama 3 / Qwen 2.5 用 DPO 系方法做出第一梯队模型(第 02 章的配方表);
  • 「开源默认」:DPO 及其变体在开源流水线中的普及,是可对照各开源配方核实的事实陈述。

是作者的论断:

  • 「PPO 是四个模型、多源不稳」——出自对 InstructGPT 流水线的工程复盘,书里没有附失败率数据;
  • 「KL 罚太强不学、太弱放任作弊」——定性判断,没给两种情形的量化例子。

6. 边界与局限

偏好学习的死穴从头到尾只有一个:它学到的东西不会比偏好数据更好。书里点了两条岔路:标注员之间意见分裂,模型学到一团浆糊;偏好数据奖励表面特征——比如「更长=更好」「格式花哨=更好」——模型就老老实实学会啰嗦13

判断(我们的,不是书里的): 「长度偏好」值得单独记住,因为它是最常见的翻车点。 人类标注员面对两个都对回答,确实倾向选写得多的那个;模型发现这条捷径后, 会把「写长」当成讨好评委的方式。今天业界常说的「模型回答越来越冗长」, 根子常在这里。书里把这条列为风险,没有展开缓解手段—— 对应的原书章节(第 06 章,奖励作弊与缓解)还没出版。 如果错,会错在: 如果后来的训练实践证明长度偏好主要来自奖励模型而非标注环节, 这条归因就要往上游挪一段——但「偏好数据的表面特征会被放大」这个机制本身不受影响。

书里没覆盖、读时别指望的:标注任务怎么设计、标注员怎么培训、偏好数据要多大规模——这些都属于原书后续章节的范围。

7. 可带走的

  1. 偏好学习补的是 SFT 结构性缺的那块信号:好与坏的差别;
  2. 成对比较是「好」的最小单位:不打分,只选边;
  3. 奖励模型是人的口味的替身:打分从此不用人;
  4. PPO 要同时养四个模型,还带着三个不稳源(打分器失准、过拟合打分器、KL 两难);
  5. 把模型拴在 SFT 起点附近,防的是灾难性遗忘和奖励作弊;
  6. InstructGPT 的 13 亿打赢 1750 亿:赢在对知识的使用,不是知识量;
  7. DPO 把四个模型减成两个:奖励模型和强化学习循环整个去掉,直接在偏好对上训练;
  8. DPO 学的是「相对更好」,参考模型被冻结(训练中保持不动),负责不让它漂太远;
  9. 偏好数据的质量封死上限:标注分歧学成浆糊,表面特征(长度、格式)被放大成毛病;
  10. 「装得下两个模型」就能跑对齐——这是开源自训在 2023 年后爆发的直接原因。

8. 原文地图

主题原书章原文位置
SFT 教格式、偏好学习教质量Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:146(搜「picks up where SFT leaves off」)
RLHF 出自 InstructGPT 论文 2022、三段流程Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:148(搜「InstructGPT paper in 2022」)
标注员比较成对输出、奖励模型学偏好Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:148(搜「compare pairs of model outputs」)
PPO 与贴近 SFT 起点Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:148(搜「staying close to its SFT starting point」)
InstructGPT 1.3B 胜 175BChapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:150(搜「1.3B-parameter model」)
四个模型同时在场Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:152(搜「four models simultaneously」)
KL 罚两难、奖励作弊Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:152(搜「too strong」)
DPO 2023、闭式解Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:154(搜「closed form」)
DPO 实践:chosen/rejected、两个模型Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:156(搜「frozen reference model」)
变体与开源默认Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:156(搜「IPO, KTO, ORPO」)
可达性是成熟快的主因Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:158(搜「matured so quickly」)
标注质量与表面特征Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:160(搜「superficial features」)
偏好学习教什么维度、依赖什么Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:160(搜「hard to specify in a dataset of demonstrations」)

Footnotes

  1. 出处:「Chapter 1. Introduction to Post-Training」第 40 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:40,搜「better than its demonstrations」)。

  2. 出处:「Chapter 1. Introduction to Post-Training」第 146 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:146,搜「what quality means」)。原文:SFT 教模型用什么格式,偏好学习教它质量意味着什么。

  3. 出处:「Chapter 1. Introduction to Post-Training」第 42 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:42,搜「pairs of responses to the same prompt」)。原文:同一个 prompt 的成对回答,一个标 preferred、一个标 rejected;模型学会给 preferred 更高概率。「成对比较比绝对打分稳」是通用知识的补充,书里未展开。

  4. 出处:「Chapter 1. Introduction to Post-Training」第 148 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:148,搜「compare pairs of model outputs」)。原文:标注员比较成对输出并指明偏好,奖励模型学习预测这些偏好。

  5. 出处:「Chapter 1. Introduction to Post-Training」第 152 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:152,搜「KL divergence penalty」)。原文:PPO 优化时以奖励模型打分为准,同时以 KL 惩罚贴近 SFT 起点。

  6. 出处:「Chapter 1. Introduction to Post-Training」第 148 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:148,搜「catastrophic forgetting or reward hacking」)。

  7. 出处:「Chapter 1. Introduction to Post-Training」第 152 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:152,搜「four models simultaneously」)。原文四件套:被优化的策略模型、算 KL 惩罚的参考模型、奖励模型、做优势估计的价值模型;显存吃紧且引入多个不稳定源。

  8. 出处:「Chapter 1. Introduction to Post-Training」第 152 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:152,搜「too weak」)。原文:奖励模型可能校准不良;PPO 可能过拟合奖励模型的毛病;KL 罚太强防碍学习、太弱放任奖励作弊。

  9. 出处:「Chapter 1. Introduction to Post-Training」第 150 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:150,搜「1.3B-parameter model」)。百分比是我们按 1.3/175 算的。

  10. 出处:「Chapter 1. Introduction to Post-Training」第 154 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:154,搜「closed form」)。原文:RLHF 目标下的最优策略可以写成偏好数据的闭式函数,于是能用监督式的训练循环直接优化。

  11. 出处:「Chapter 1. Introduction to Post-Training」第 156 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:156,搜「IPO, KTO, ORPO」)。原文:DPO 在成对回答上训练,调高 chosen 相对 rejected 的概率;只需策略+冻结参考两个模型;更稳、更易实现、对超参不敏感;DPO 及变体成为多数开源流水线的默认。

  12. 出处:「Chapter 1. Introduction to Post-Training」第 158 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:158,搜「that accessibility」)。原文:两个团队都没养 PPO 的四模型配置,仍然做出了与最强闭源系统竞争的模型;这种可达性是开源后训练快速成熟的主因。

  13. 出处:「Chapter 1. Introduction to Post-Training」第 160 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:160,搜「superficial features such as length or formatting」)。原文:偏好学习能教更有用、更简洁、更准确、更谨慎,取决于偏好数据奖励什么;标注分歧或数据奖励表面特征,模型就学错。