跳到主要内容

把打分器消掉 — 一次代数上的抵消,和它长出来的一族亲戚

这一章讲三件事: 第 08 章那套流水线里,最贵的那个零件怎么被一次代数演算整个拿掉; 拿掉之后失去了什么;以及从这个想法长出来的一族做法各自在治什么病。

它在全书链条里的位置: 第 07 章造出了打分器,第 08 章拿它去改模型—— 然后交出了一张很难看的账单。这一章是对那张账单的回应。 它也是全书第一次给出「几条路线摆在面前,怎么选」的口径, 而那条口径(举证责任在复杂的那一侧)后面还会被反复引用。

★ 第 08 章那个「减掉一个基线」的动作,在这一章第二次出现, 换了一种做法:不再养一个价值头去估,直接拿同一个提示词下几份回答的平均分当基线

1. 先看现象:一张难看的账单,和 2023 年那声集体松气

第 08 章那条路线,书自己的定性是这样的:

尽管它在概念上很清楚,它是一个脆弱的算法——对超参数敏感、对基础设施要求高。1

把第 08 章那几节的账单摊开:

要养的东西干什么拿掉它会怎样
正在训练的模型写信拿不掉
参考模型当尺子拿不掉(那是「别走远」的参照物)
打分器打分这一章就是拿掉它
价值头估「这一回合大概值多少分」本章第 6 节那个亲戚拿掉它
训练途中的生成一个词一个词写出候选回答这一章连它一起拿掉

所以 2023 年斯坦福那篇论文出来的时候,书里的原话是:

当一支团队发表论文,主张我们也许可以完全不必显式地构造一个打分器、 而是直接从偏好里推出训练信号时,那种松了一口气的感觉几乎是普遍的。1

顺带说清楚这一章的另一半来历

这一章讲的不只是那一篇论文。 书在开头并排讲了第二件事:

稍后不久,一支当时还不出名的中国团队描述了它的数学推理模型。 因为出口管制拿不到更强的显卡,团队只能从网络栈到训练范式来一系列聪明的工程变通; 这一章后面要讲的另一种做法,就是那次努力的一部分2

书用这两件事引出一句总纲,它决定了整章的写法:

在我们工作的这个尺度上,偏好优化既是性能问题, 也同样是速度问题和技术可行性问题。 到了这一层,后训练不只是一个机器学习难题, 还是一个协调资源、管理资源上限、把训练流程跑得高效的问题3

2. 顶层全景:同一对数据,两条路并排走

同一对偏好数据:提示词 x + 赢的那份 B + 输的那份 A

┌────┴─────────────────────────────┬──────────────────────────────┐
│ 第 08 章那条路 │ 这一章这条路 │
├──────────────────────────────────┼──────────────────────────────┤
│ ① 先训一个打分器 │ ① (没有这一步) │
│ ② 让模型当场写几封候选信(慢) │ ② (没有这一步。数据是现成的) │
│ ③ 打分器给它们打分 │ ③ (没有这一步) │
│ ④ 价值头估个基准,相减得优势 │ ④ (没有这一步) │
│ ⑤ 裁剪 + 偏离惩罚,反推挪一步 │ ⑤ 让当前模型和参考模型各前向 │
│ │ 跑一次这两份现成的回答, │
│ │ 算出一个损失,反推挪一步 │
└──────────────────────────────────┴──────────────────────────────┘

图说:**右边这一列少掉的每一格,都不是被工程手段绕过去的,是被一次代数演算消掉的。**
§3 讲那次演算,§4 讲消掉之后打分器去哪儿了,§5 讲代价。

主走查(全章共用): 拿第 07 章那一对具体的候选信 (赢的 B 结尾写「如对本决定有异议,可于 60 日内申请复议」, 输的 A 结尾写「建议您尽快复诊」),在右边这条路上走完一步, 看每一个数具体是多少。 编造的数每次出现都会标明。

3. 机制一:把中间人拿掉的那三步代数

这一节是整章的命门。 它不是一个工程技巧,是一次代数上的巧合, 而这个巧合恰好足够大,足以让整条流水线塌掉一半。

它解决什么问题

书先把问题问出来了:

打分器只是一个中间人。 人通过成对比较表达偏好 → 这些比较被用来训一个打分器 → 打分器给模型的输出打分 → 再拿这些分去改模型。 这条链上每一环都引入计算成本和出错的可能: 打分器可能没能忠实表示它学的那些偏好,而且更要命的是,它有被对着奖励作弊的风险4

于是那个显而易见的问题是:能不能把中间人砍掉?5

第一步:那个目标其实有一个闭式的答案

起点就是第 08 章那个目标,一个字都没变:

朝打分器的高分走 同时 别离参考模型太远

这里出现了第一件让人意外的事:这个目标的最优解是可以直接写出来的, 不必靠一步步试着挪。它长这样(我们只交付结构,式子请查原书)6:

最优策略给某份回答的概率
= 参考策略给它的概率
× exp(这份回答的奖励 ÷ β)
÷ 一个归一化常数

逐块读一遍:

这一块在说什么
参考策略给它的概率出发点还是原来的自己
乘上「奖励除以 β」的指数奖励越高的回答,相对参考策略被抬得越高;β 越小抬得越狠
除以一个归一化常数一堆概率乘完之后加起来不等于 1 了,除掉这个数把它们拉回成一个合法的概率分布

这个归一化常数是后面全部戏剧性的来源,所以要单独说清它是什么:

它是「对这个提示词的所有可能回答」求一个加权和。 「所有可能回答」的数量是天文数字——每个位置几万种 token 选择,乘上几百个位置。 对任何一个现实的语言模型,这个和都算不出来。7

记住这件事:它算不出来。 下面第三步会处理它。

第二步:把这个关系倒过来解

这一步是整个把戏的核心,书自己称它为「一次值得细品的偷天换日」8:

我们从一个需要打分器的目标出发,推出了「在这个奖励下,最优策略长什么样」, 然后反过来问:如果我们手上已经有了最优策略,是什么样的奖励才会产生它?

倒过来解的结果是9:

某份回答的奖励
= β × log( 最优策略给它的概率 ÷ 参考策略给它的概率 )
+ β × log( 那个归一化常数 )

用大白话读这个式子:

一份回答的奖励,完全由「当前这个模型比参考模型更偏爱它多少」决定。 模型比参考模型更看好它 → 它的隐含奖励就更高。这是构造出来的,不是推断出来的8

注意那个算不出来的归一化常数还赖在式子里。 它只依赖提示词,不依赖是哪份回答—— 这一点马上就要救场。

第三步:代回去,那一项恰好抵消

第 07 章那个成对比较的结构还记得吗?「算两份的分差 → 压成一个概率 → 取负对数当损失」。

把上面那个反解出来的奖励,代进这个结构里的「算差」那一步:

赢的那份的奖励 = β × log(策略/参考) + β × log(归一化常数)
输的那份的奖励 = β × log(策略/参考) + β × log(归一化常数)
└────── 完全一样 ──────┘
相减 → 归一化常数整项消失

为什么完全一样:因为它只依赖提示词 x,而这两份回答共用同一个提示词。

书对这一步的定性没有留余地:

这不是一个次要的技术上的便利。这就是这套做法之所以成立的全部原因。10

抵消之后剩下什么?

只剩下四个对数概率:当前模型给赢的那份和输的那份各打的概率, 参考模型给这两份各打的概率。 而这四个数,只要让两个模型各前向跑一次就能精确算出来。10

这条路线的名字叫 DPO(Direct Preference Optimization, 直接偏好优化——「直接」指的就是跳过打分器,直接从偏好推出训练信号)。 出门看任何一份训练框架的文档都会撞见这三个字母,所以留名。

走查:那一对信在这条路上走一步

提示词 x =「保单 P-4471……请写拒付说明信」
赢的 B:结尾「如对本决定有异议,可于 60 日内申请复议」
输的 A:结尾「建议您尽快复诊」

第 1 步:两个模型各前向跑一次,拿到四个对数概率
参考模型: 给 B −42.0 给 A −41.0 ← 它没学过合规口径,反而觉得 A 更自然
当前模型: 给 B −41.5 给 A −40.0

第 2 步:算每份的「隐式奖励」= β × (当前 − 参考),取 β = 0.2
B: 0.2 × (−41.5 + 42.0) = 0.2 × 0.5 = 0.10
A: 0.2 × (−40.0 + 41.0) = 0.2 × 1.0 = 0.20
← 当前模型现在更偏爱 A。这是错的。

第 3 步:算差 → 压成概率(和第 07 章完全同一个结构)
0.10 − 0.20 = −0.10 → 压成概率 ≈ 0.475
「人会选 B」的概率,按模型现在的看法只有 47.5%

第 4 步:但人确实选了 B → 损失 ≈ 0.74 → 反推参数该往哪挪 → 挪
下一轮:B 的概率相对参考模型被抬高,A 的被压低

★ 对照第 08 章的同一步:那里要先跑打分器、要现场生成候选、要价值头。
这里一个都没有,**只有两次前向**。

(四个对数概率和 β = 0.2 之外的所有数是为演示编的;β 的起手值 0.2 是书里给的。)

4. 机制二:打分器没被消灭,只是变成隐式的

这是最容易被误读的一处,而书专门开了一段小字来纠正11:

为准确起见值得指出:这套做法并没有消灭打分器,只是让它变成了隐式的。 策略本身通过它相对参考模型的概率比,编码了那个奖励函数。 与其训练一个单独的模型去预测奖励,不如训练策略,让它给出的概率就是奖励。 打分器在概念上仍然存在,只是分散在策略的参数里,而不是被单独实例化出来。

为什么这个纠正很重要: 它解释了后面所有局限的来源。 打分器还在,只是你看不见它、也没法单独检查它。 第 07 章那些手段(拿常识例子试它、看它的留出准确率)在这里全部用不上了。

一个直接后果:训起来像给它看示范

书对这条路线跑起来的样子给了一个很省事的描述12:

没有打分器要训、也没有打分器要在训练途中跑。 没有生成这一步——所有回答都来自现成的偏好数据集,而不是从策略采样。 没有价值函数要学,也没有优势估计要配。

训练循环长得像第 05、06 章那套:装一批数据 → 前向跑一遍 → 算损失 → 反推。 为示范训练建的那套标准设施,几乎不用改就能跑这个。

★ 第 07 章那条分界线在这里第一次回来。 第 07 章讲过一道细微但要紧的分界:自己现生成着学(on-policy) 和拿现成数据学(off-policy)。

这条路线属于「拿现成数据学」这一侧,而且是最纯粹的那一种: 训练全程一个字都不生成。 第 08 章那条「生成慢、优化快」的效率难题,在这里根本不存在—— 因为整个生成环节被删掉了。

但它有一笔容易被忽略的账

书专门写了一段提醒13:

相对上一章的简单,可能会掩盖一笔实实在在的显存开销:那个参考模型还得养着。 每一次前向都要在正在训练的策略冻住的参考模型两边各算一遍; 对大模型来说,这实际上让显存需求比示范训练翻了一倍。

书给的对策就是第 12 章那一整套技法: 把底座冻住、只训一小块挂上去的旁路,于是底座只需要装载一次—— 一份权重同时当「正在训练的模型」和「参考模型」用13具体怎么做,第 12 章讲。

这条路线的几个起手值

书给了一张表,最该记住的是三行14:

旋钮常用范围起手说明
β0.1–0.50.2它就是第 08 章那条绳的松紧,只不过现在藏在损失里。调高 = 更保守
学习率10⁻⁶–10⁻⁵5×10⁻⁶和第 08 章同一档,都低于示范训练那一档
训几遍1–31遍数越多越容易背下来(第 06 章那个「训练损失接近零是警报」的同一件事)

5. 机制三:简单的代价 —— 三个局限,和一层冲不上去的天花板

书自己给这一节起的标题就叫「简单的价钱」。

局限一:它假定你的模型有能力成为那个最优策略

推导里有一个悄悄的前提:被训练的这一类模型,有能力表示出偏好数据所隐含的那个最优行为

如果做不到,训练会尽力,但到不了真正的最优。 书给了一个很硬的例子15:

奖励一个「记住一万个 token」的行为,不会让一个上下文窗口只有 4096 个 token 的 模型结构魔法般地把窗口翻倍。 说得再朴素一点:你没法把模型训成它做不到的样子。

更实际的一层是: 如果偏好数据有限或者不具代表性, 它逼近的那个「最优策略」可能压根不是你想要的那个15

局限二:它对参考模型敏感,而且会敏感到出数值问题

这条要讲透,因为它是实际训练里最常见的坑16:

损失里要用到「参考模型给这份回答的对数概率」。

如果参考模型认为某份回答几乎不可能出现
→ 它的对数概率是一个很大的负数
→ 两个很大的负数相减,数值上不稳定
→ 梯度可能爆掉,或者变得毫无信息量

什么时候会撞上: 偏好数据里有参考模型很少会写出来的回答—— 比如这些回答来自另一个模型,或者被人重度编辑过16

走查上的样子: 假如那 800 封真实历史信件是资深合规专员亲手写的, 措辞习惯和模型完全不同,参考模型会觉得它们「几乎不可能」—— 于是那个 −42.0 会变成 −180.0,而两个 −180 量级的数相减,结果就是噪声。

对策两条: 让偏好数据贴住参考模型写得出来的东西; 或者过滤掉那些有问题的样例16

局限三:它学不到固定数据之外的东西

这是书认为最根本的一条17:

它只从一个固定的偏好数据集里学。 如果实际部署时碰到的情况和训练数据差得远,在训练提示词上学到的偏好未必迁移得过去和上一章那条路不同——那一条通过生成来探索,而这一条无法发现该怎么处理新情境。

★ 第 07 章那条分界线在这里第二次回来,而且这次是它的代价那一面。

自己现生成着学(第 08 章)拿现成数据学(这一章)
能不能碰到新东西能。当前模型偶然写出一条出乎意料的好回答,这条回答能立刻被强化不能。数据里没有的行为,它没有任何信号去学
书给的后果它能一直往上走它会到某个点就不动了(plateau)18

书给的对策是「覆盖」: 让偏好数据覆盖部署时会遇到的全部多样性; 覆盖不了的话,考虑在这条路跑完之后再接一段带探索的训练17

还有一句给评估的警告,第 10 章会用到: 拿「和训练同分布的留出数据」评出来的分数,会高估实际部署时的表现。17

天花板:冲极限能力时它上不去

这一条不是推理,是一家公司的实际经验19:

Meta 起初因为效率优势采用了这条路线,后来发现它 「在冲向最大能力时,扩展性不如上一章那条路」, 于是转向了让 AI 来提供反馈的做法(第 17 章讲)。

书还引了一项大规模研究(四十万卡时以上)来支撑这个判断:

不是所有偏好优化的配方都能达到同样的渐近性能。 你能到达的天花板由根本性的算法选择决定,而不只是数据质量或算力预算。 损失怎么聚合、怎么归一化这类设计细节,只调节你逼近那个天花板的效率, 天花板本身是算法定的19

书自己的收口: 这条路线常常是那个关键中间层的正确选择; 但如果你发现自己已经在冲它的极限、还需要更多能力, 答案可能是换算法,而不是再加偏好数据。19

6. 机制四:一族亲戚,各治一病

这条路线出来之后,长出了一族做法。 书的态度很清楚:

这一行的演化比任何综述都快。它们每一个也都很可能被后来的东西取代。 要紧的是理解这些前沿技法底下的原理,好知道怎么把它们改造到你的场景上。20

所以下面每一个的写法都是:它治什么病 → 靠什么招 → 代价是什么。

亲戚一:数据不成对怎么办(KTO)

病: 前面所有做法都要成对的数据——同一个提示词下,一份赢的一份输的。 但很多天然的反馈根本不成对: 用户对着一条回答点了个赞或者踩,他压根没看到过备选21

招: 换一个理论底座。它借的是行为经济学里的前景理论—— 一套解释人怎么在不确定下做决定的理论,这套理论替卡尼曼拿到了诺贝尔经济学奖21。 它不要求相对偏好,只要求绝对判断:这条回答是想要的,还是不想要的。

这套理论里最要紧的一条发现是「损失比收益更显眼」:

丢掉 10 美元的难受,大过捡到 10 美元的高兴。22

于是这个做法把这个不对称直接写进了目标:

碰到什么样本做什么权重
想要的输出鼓励模型相对参考模型把它变得更可能1
不想要的输出惩罚模型让它变得可能更重(常用 1 到 2 倍)23

后果很实在: 模型学「避免坏输出」比学「产出好输出」快书的判词:当「避免有害或低质输出」比「把最好的那部分再往上顶」更要紧时, 这个不对称正好对上部署的优先级23

它有一个不讲就会出事的零件:参照点。

如果没有一个参照点,模型可以靠「把所有概率一起抬高」来满足这个目标—— 那样它什么都没学到。 所以目标里放了一个锚:整个数据集上的平均对数概率比。 有了它,「想要」才意味着「高于典型水平」,每一条样例是在和总体平均比, 而不是在和某个具体的备选比——这正是它能吃不成对数据的原因24

这个做法的名字叫 KTO(Kahneman-Tversky Optimization, 以那两位提出前景理论的心理学家命名)。

它带来的一个很现实的好处: 数据可以东拼西凑。 专家挑出来的一批金标准答案(没有对应的负例) 可以和 另外单独收集的失败案例、对抗测试的产物混在一起用,不必人为凑成对25

书给的效果结论很克制: 有成对数据时,它和上一节那条路线表现相当,大尺度上可能超过; 两者在标准基准上谁也不压倒谁,差异通常小于数据质量和调参带来的差异只有不成对数据时它才是唯一可走的路25

但有一条警告必须跟着26:

风险在于:去找那些根本不存在的信号。 比如拿「用户和模型聊了多久」当赞成的信号—— 聊得久可能是投入和满意,也可能是困惑、挫败或者分心。 不做仔细分析就拿它当代理,可能训出一个把啰嗦看得比清楚和切题更重的模型。 而且和建模过程里所有的假设一样,这个假设必须被写下来存档。

亲戚二:把价值头也拿掉(GRPO)★ 第 08 章那个基线的第二形态

病: 第 08 章那条路要养一个价值头,专门估「这个提示词大概能拿多少分」。 这个头本身要学、要调、还会追一个不停移动的目标。

招:朴素到有点好笑。

价值函数的用处,是估计「从这个局面出发,预期能拿多少奖励」。 可是——研究者想——一个同样够用的估法,不就是 对同一个提示词多采几份回答,看看它们实际拿到了多少分吗? 这几份的平均分,就是那个「预期奖励」的经验估计。27

★ 这就是第 08 章那个「减掉一个基线」的第二副形态:

第 08 章这里
基线从哪来一个学出来的价值头估的同一个提示词下那几份回答的平均分,当场算的
代价多一个模型要养要调要在训练途中生成几份回答
好处只生成一份价值头彻底消失

走查上的样子:

提示词 x =「保单 P-4471……请写拒付说明信」
让模型一口气写 4 封:y₁ y₂ y₃ y₄ ← 这一组叫一个「组」
打分器给分: 8 7 9 8
组内平均 = 8,组内标准差 ≈ 0.7

优势 = (自己的分 − 8) ÷ 0.7:
y₁: 0 y₂: −1.4 y₃: +1.4 y₄: 0

★ 没有任何一个价值头参与。基线就是这四个数自己的平均。

为什么要再除以那个标准差:这是这个做法最精彩的一处,书用一个对照讲透了28:

同一批训练里的两个提示词:
提示词 A(容易):四份回答得分 8, 7, 9, 8 ← 平均 8,组内标准差 ≈ 0.7
提示词 B(难): 四份回答得分 3, 2, 4, 3 ← 平均 3,组内标准差 ≈ 0.7

不做归一化:A 的原始优势会仅仅因为分数高就压过 B 的贡献,
哪怕模型「相对题目难度」在两边表现得一样好。

做了归一化:第一步各减各自的平均 ——
A:8−8, 7−8, 9−8, 8−8 = 0, −1, +1, 0
B:3−3, 2−3, 4−3, 3−3 = 0, −1, +1, 0
第二步各除以自己那个 0.7 ——
A:0, −1.4, +1.4, 0
B:0, −1.4, +1.4, 0
★ 完全相同。两个提示词对梯度的贡献相等。

★ 这里书里印的数算不通,我们按机制重算了。 书给这两组的归一化结果都写成 「约 +0.7、−1.0、+1.4、+0.7」。

任何一组减掉自己的平均之后,四个偏差加起来必然是 0—— 除以同一个标准差之后当然也还是 0;而书印的那四个数加起来是 +1.8。 这是书自己的一处算术错误。

上面那两组(0, −1.4, +1.4, 0)是照它给的分数、它给的均值和标准差重算的。 而书要讲的那个结论一个字都不用改:两个提示词归一化之后的优势完全相同, 难题和易题对梯度的贡献相等28

一句话:它问的不是「这封信好不好」,而是「在这道题上,它比同门师兄弟们好还是差」。 一份得 8 分的输出是好是坏取决于题目难度; 但一份得 8 分、而同组平均是 5 分的输出,对它这道题来说明显在平均之上27

其余部件照抄第 08 章: 概率比裁剪照旧、偏离惩罚照旧。 它继承了上一章的稳定性,同时把那个让上一章昂贵的价值网络删掉了29

这个做法的名字叫 GRPO(Group Relative Policy Optimization, 「组内相对」的策略优化——名字里那个「组」就是上面那四封信)。

唯一的主旋钮是组大小 G30:

G优势估得准不准代价
4噪声大便宜
16每个提示词要生成 16 份,生成阶段的显存和算力都涨

书给的常用区间就是 4 到 16,具体选哪个取决于打分器的方差和算力预算30

它在流水线上的位置也值得记一句:介于前面那条纯离线的路和第 08 章那条全在线的路之间—— 不像前者那样完全不生成,也不像后者那样要维护价值网络30

还有一件事书特意点了出来,因为它动摇了一条流行的顺序:

那支团队不仅用这个方法以很低的成本训出了模型, 而且是在没有做示范训练的情况下直接做强化学习就拿到了很强的结果, 这让「先示范、再强化」这条传统流水线受到了一些质疑。31

★ 第 05 章第 3 节许诺过在这里说清「质疑掉了多少」,现在还上。 那一节给过这条顺序背后的机制:示范那一步把正确解法的路径撑大、 但错的路径也一并留着;强化那一步把错的压下去、却也会连带压掉一些对的。 两步互补,所以先后不能倒32

判断(我们的,不是书里的): 上面那件事动摇的是「必须」,不是「通常」。 那处不对称说的是「强化不擅长从零发现正确路径」, 而那支团队的底座本身已经是一个在海量文本上训过的强模型—— 正确路径不是零,只是没有被针对性地撑大过。 所以我们的读法是:在题目有明确对错、底座又足够强的领域(数学、代码), 跳过示范是可行的;在你那个只有 300 封信的领域,别学。 书自己的措辞也很克制——它说的是「受到了一些质疑」,不是「被推翻」31

如果错,会错在: 如果后续证据表明跳过示范在一般领域也稳定成立, 那这条顺序就不只是「被质疑」而是真的过时了。 判别的办法很具体:看有没有人在「对错不可自动判定」的领域上, 不做示范直接强化还能拿到同等结果。 到本书成书为止,书没有给出这样的例子。

这个做法还有一族按难度调整的扩展,书列了三条改动33:

改动治什么
按长度给奖励打折一道 5 步能解的题,用 15 步解出同样的答案得分更低——治啰嗦,顺便省推理成本
给错误答案单独加罚组内归一化会模糊掉「全坏」和「大多好」两种组的区别,显式罚错答案能把这个区别重新锐化
按难度给优势重新加权模型已经能做对九成的简单题,那些题给出的学习信号基本是噪声;只做对三成的难题才有最大的改进空间

这套改动在 140 亿参数这一档的数学推理基准上拿到了当时最好的结果, 而且收敛更快、解法更短33书给的推广口径是:任何一种强化学习方法, 都能从「让训练力气匹配题目难度」这件事上受益。

亲戚三、四、五:各治一个具体的病

下面三个书讲得比较短,我们照它的详略处理,但每一个都写清它治什么。

名字治什么病靠什么招代价 / 适用
IPO前面那条主路的损失,在「一边倒的偏好对」上会给出无上限的推力——人一致认为 B 明显更好时,它会不停地把 B 相对 A 推得更高,如果模型本来就到不了那个最优,这就变成了对着这几对数据死记硬背34换一种损失:不再是「越远越好」,而是「达到一个目标间距就停」;超过之后梯度封顶偏好数据少或者有噪声时更稳;数据又多又好时和主路的差别通常不大34
ORPO前面所有做法都要养一个冻住的参考模型,显存直接翻倍把示范训练和偏好训练合成一个阶段:一半损失是「把赢的那份写流畅」,另一半是一个比较赢/输相对可能性的惩罚项。参考模型不是变隐式,是从计算里彻底消失35显存比主路少一半,还少一个训练阶段;从没做过示范训练的底座起步时效果尤其好35
SimPO主路对参考模型的依赖(局限二那件事),外加偏爱短回答的毛病——越长的序列天然对数概率越低,不校正就会偏短也不要参考模型:直接用按长度归一化后的序列概率,再设一个目标间距显存显著下降、训练更快(不必对冻住的参考模型跑前向),基准上有竞争力36

这三个名字都要留:IPOORPOSimPO 在任何一份训练框架的文档里都会碰见。

7. 机制五:怎么选 —— 这是匹配问题,不是排名问题

这一节是这一章最能带走的东西,而且它的适用范围远超本章。

结论先行

该用哪个方法?答案不是「哪个在基准上表现最好」, 而是「哪个匹配你的数据、你的基础设施、你的部署约束」。 在几种偏好优化方法之间做选择,是一个匹配问题,不是排名问题。37

四个维度,全部由第 07 章那条分界线派生

书把「自己现生成着学 / 拿现成数据学」这条线拆成了四个可以当场判的维度38:

维度自己现生成着学拿现成数据学
能不能探索能。模型生成 → 拿到反馈 → 调整,能发现新行为不能。数据里没有的行为,没有信号去学
分布会不会漂不会。训练分布永远就是当前模型的输出分布会。偏好数据反映的是一个历史模型会写出什么,而模型在变,这个缝会越来越宽
算力贵。 训练途中要生成,而生成是一个词一个词来的便宜。 前向跑一遍就够
数据要求一个好的打分器就够,它自己造训练数据要事先收好高质量偏好数据,而且必须覆盖部署时会遇到的情况

一张四选一的对照表

书给了一张表,我们照它整理39:

第 08 章那条主路(DPO)不成对(KTO)组内相对(GRPO)
要什么数据打分器成对偏好单独的赞/踩打分器
训练途中生成吗(在线)不要(离线固定数据)不要(每题一组)
要单独的打分器吗隐式在策略里隐式在策略里
要价值网络吗不要不要不要
算力最高最低中等
基础设施复杂像示范训练像示范训练中等
对超参敏感吗非常敏感中等(主要是 β)中等中等
最适合要最大控制权、要探索有成对数据、想要简单手上是赞/踩数据要规模、又不想养价值网络

书还补了一句常被忽略的:选型还要考虑组织因素—— 团队对某项技法熟不熟、现有基础设施撑不撑得住、 以及「新建基础设施的成本」对比「迁就现有方法的成本」40

基准告诉我们的两件事

第一件,而且是最稳健的一条41:

数据质量压过算法选择。 一条实现良好、偏好数据经过精心策展的简单流水线, 会打败一套实现糟糕的复杂流水线——不管后者理论上有多少优势。

第二件,把实现质量控住之后41:

在线的方法一致地取得更好的最终表现。 这个差距的根子是分布漂移:当模型进步到超过那个固定数据集所代表的水平之后, 继续改进就停滞了。

这两条合起来才是完整的口径,少了任何一条都会被误读。

那条要记一辈子的口径

举证责任应当落在复杂的那一侧,而不是简单的那一侧。42

书把它写成了一条可以直接执行的默认设置42:

有成对数据 → 默认就用主路(DPO)
只有在它**被明确证明不够用**的时候,才上第 08 章那条路。

理由:复杂方法的吸引力是真的——更多控制、更多旋钮、更多理论支撑。
但**每一个旋钮都是一次可能出错的机会**,
**每一个额外的部件都是一个可能坏掉或者配错的系统。**
★ 一个执行得好的简单方法,打得过一个执行得差的复杂方法。

这就是第 08 章末尾我们留下的那个问题(「这条路到底值不值得跑」)的答案。

老手怎么把它们串起来用

书最后给了三种常见的组合43:

组合怎么串
先便宜后贵先用主路打底、建立一个偏好对齐的基线,再用第 08 章那条路精修那些需要在线探索的具体能力
反复迭代训完的模型生成新的回答 → 评出新的偏好数据 → 训下一轮,以此对治分布漂移
组内相对 + 合成偏好模型生成回答,一个 AI 评判者按一套明写的原则给出偏好判断,再用组内相对那条路去训。完整机制第 17 章讲

书给的原则一句话:让每一种技法做它最擅长的那件事。 而这需要你对每个部件的长处和失效方式熟到能给它们排序、也能在出问题时诊断出来43

8. 作者的判断与证据

说法是哪一类说明
归一化项相减时抵消可验算的代数它只依赖提示词、不依赖回答,这一步读者可以自己验10
「这就是它成立的全部原因」作者的强判断他明说这不是次要的技术便利;这是他的定性,不是实验结论10
打分器只是变成隐式的作者的澄清书专门用一段小字纠正常见误读11
参考模型让显存翻倍工程事实每次前向要在两个模型上各算一遍13
三个局限推导 + 经验混合前两条从推导的前提直接推出,第三条(分布漂移)是所有离线学习方法共有的151617
冲极限时扩展性不如上一章他引别人的经验这是 Meta 公开的说法,书给了尾注;不是作者自己的实验19
天花板由算法定、细节只定逼近效率他引的一项大规模研究四十万卡时以上,书给了尾注19
损失比收益更显眼有据(诺奖级的行为经济学发现)把它搬到模型训练上是那篇论文的设计选择,不是心理学结论2122
组内归一化让两个提示词贡献相等可验算,而且我们算过了书给的那两组数(8,7,9,8 与 3,2,4,3)可以自己算;★ 但书印出来的那四个优势值(+0.7、−1.0、+1.4、+0.7)加起来是 +1.8,而它们必然加起来为 0——那是书的一处算术错误,我们按机制重算成 0、−1.4、+1.4、0;结论不变28
「先示范再强化」这条传统受到质疑作者的判断他用的措辞是「casting some doubts」,是一件事引出的怀疑,不是定论31
数据质量压过算法选择他称之为最稳健的发现书说它在学术基准和工业部署里被反复确认,但没有逐条给出处41
在线方法一致更好有据(控制实现质量之后)书同时给了机制解释(分布漂移)41
举证责任在复杂度一侧作者的立场他给了论证(每个旋钮都是出错机会),这是论证不是实测42

9. 边界与局限

  1. 代数细节我们只交付结构。 那四个式子(带约束的目标、闭式解、反解出的奖励、最终损失) 书都给全了,我们交付的是「哪一项为什么会消失」。 完整推导请接着读我们书架上那一本44
  2. 那三个亲戚(IPO / ORPO / SimPO)书本身就写得短。 我们照它的详略处理, 每一个只交付「治什么病 + 靠什么招 + 代价」,没有展开它们的损失函数。
  3. KTO 那个参照点的具体算法我们没抄。 书给了式子,我们只交付它为什么必须存在 (没有它,模型能靠「把所有概率一起抬高」蒙混过关)。
  4. 训练框架的接口细节不在这里。 书给了几段带注解的代码片段, 属于框架的 API,会随版本变;要看接口请查我们的前沿框架书架45
  5. 这一章没有回答「训完之后怎么验」。 那是第 10 章整章的事, 而且这一章已经给它留了一个具体的坑:同分布留出数据会高估实际部署表现。

10. 可带走的

  1. 上一章那张账单是这一章存在的理由:三个模型 + 一个价值头 + 训练途中生成; 这一章一次性删掉了打分器、价值头和生成;
  2. 这不是工程技巧,是一次代数上的抵消。 三步: 带偏离约束的最优策略有闭式表达 → 反解出奖励 → 代进成对比较式;
  3. 那个算不出来的归一化项(要对所有可能回答求和)恰好在相减时消失, 因为它只依赖提示词、不依赖是哪份回答;
  4. 剩下的东西只要两次前向就能算:当前模型和参考模型各给赢/输两份打的概率;
  5. 打分器没被消灭,只是变成隐式的:模型自己的概率比就是奖励。 代价是你再也没法单独检查它了;
  6. 训起来像给它看示范,为示范训练建的设施几乎不用改; 起手值:β = 0.2、学习率 5×10⁻⁶、只训一遍;
  7. 但参考模型还得养着,显存比示范训练翻一倍——对策是第 12 章那套只训一小块旁路的技法;
  8. 三个局限:模型做不到的事训不出来;参考模型觉得「几乎不可能」的数据会引发数值不稳; 固定数据之外的情境学不到;
  9. 冲极限能力时它的天花板更低——天花板由算法定,数据和算力只决定你多快逼近它;
  10. 不成对的赞/踩数据也能训(KTO),它借的是「损失比收益更显眼」这条行为经济学发现, 所以罚坏输出比奖好输出更重;它必须带一个参照点,否则模型会靠「全体抬高」蒙混过关;
  11. 拿隐式信号(比如聊天时长)当偏好有风险:聊得久可能是满意,也可能是困惑; 这类假设必须写下来存档;
  12. 价值头也可以拿掉(GRPO):同一个提示词采几份回答,拿它们的平均分当基线; 再除以组内标准差,难题和易题对梯度的贡献就相等了;
  13. 组大小 4 便宜噪声大、16 稳但贵,常用区间就是这两者之间;
  14. 另外三个亲戚各治一病:一边倒的偏好对上梯度无界(IPO)、 参考模型占显存(ORPO 把它彻底删掉)、偏爱短回答(SimPO 按长度归一化);
  15. 选算法是匹配问题,不是排名问题;四个维度:能不能探索、分布会不会漂、算力、数据要求;
  16. 最稳健的一条实证结论:数据质量压过算法选择。控住实现质量之后,在线方法一致更好——两条要一起记;
  17. 举证责任在复杂的那一侧。 有成对数据就默认用最便宜那条, 明确失败了才上贵的;每一个旋钮都是一次可能出错的机会。

11. 原文地图

主题原书章原文位置
两则开场轶事与全章总纲DPO: The Reward Model That Wasn’t There(章首)text/60-fm-dpo-the-reward-model-that-wasn-t-there.txt:5(搜「the relief was near universal」) · :7(搜「Sputnik moment」) · :9(搜「as much about performance」)
中间人为什么不必要DPO: The Reward Model That Wasn’t Theretext/61-fm-dpo-the-reward-model-that-wasn-t-there.txt:7(搜「introduces computational cost」) · :9(搜「closed-form relationship」) · :11(搜「no generation during training」)
打分器只是变隐式Notetext/62-fm-note.txt:3(搜「does not eliminate the reward model」)
闭式解与反解Notetext/62-fm-note.txt:11(搜「its invertibility」) · :17(搜「delightful analytical solution」) · :21(搜「this relationship can be inverted」)
归一化项抵消Notetext/62-fm-note.txt:35(搜「sleight of hand worth savoring」) · :37(搜「It is the entire reason DPO works」)
训起来像示范训练 · 超参表Notetext/62-fm-note.txt:74(搜「There is no generation step」) · :80(搜「Lower β allows the policy to deviate」) · :82(搜「DPO Hyperparameters」)
参考模型让显存翻倍FROM THE TRENCHES: KEEPING THE REFERENCE MODEL IN CHECKtext/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:3(搜「effectively doubles memory requirements」) · :5(搜「the base model to be loaded only once」)
三个局限FROM THE TRENCHES: KEEPING THE REFERENCE MODEL IN CHECKtext/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:37(搜「4,096-token context window」) · :43(搜「numerically unstable」) · :49(搜「cannot discover how to handle novel situations」) · :51(搜「The solution is coverage」)
冲极限时的天花板FROM THE TRENCHES: THE SCALING QUESTIONtext/64-fm-from-the-trenches-the-scaling-question.txt:3(搜「does not scale as well as PPO」) · :5(搜「400,000+ GPU-hours」) · :7(搜「the crucial middle」)
不成对数据与前景理论KTO: Preferences, All the Way Downtext/65-fm-kto-preferences-all-the-way-down.txt:3(搜「prospect theory」) · :15(搜「losses loom larger than equivalent gains」) · :31(搜「calibration anchor」) · :33(搜「typically set from 1 to 2」) · :41(搜「KTO outperforms because DPO simply cannot be applied」)
隐式信号的风险FROM THE TRENCHES: MAN’S SEARCH FOR MEANINGFUL PREFERENCE DATAtext/66-fm-from-the-trenches-man-s-search-for-meaningful-pr.txt:5(搜「confusion, frustration, or distraction」)
组内均值当基线GRPO: Pure Reinforcement Learning at Scaletext/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:13(搜「sample multiple completions from the same prompt」) · :19(搜「typically 4 to 16」) · :23(搜「eliminating the value network」) · :43(搜「Prompt A is straightforward」) · :49(搜「Groups of 4 offer efficiency」)
没做示范训练直接强化GRPO: Pure Reinforcement Learning at Scaletext/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:9(搜「casting some doubts」)
按难度调整的三条扩展DIFFICULTY-AWARE GRPO EXTENSIONStext/68-fm-difficulty-aware-grpo-extensions.txt:5(搜「a 15-step solution」) · :7(搜「all bad」) · :9(搜「the learning signal from easy problems is mostly noise」) · :11(搜「14B-scale models」)
三个亲戚Beyond GRPO: IPO, ORPO, SimPO, and Friendstext/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:9(搜「toward infinity」) · :15(搜「caps the gradient signal」) · :23(搜「combines both into a single training stage」) · :31(搜「reduces memory requirements by half」) · :63(搜「length-normalized sequence probabilities」) · :67(搜「a bias toward shorter responses」)
匹配问题 · 四维度 · 对照表Choosing Your Weapontext/70-fm-choosing-your-weapon.txt:3(搜「a matching problem, not a ranking problem」) · :11(搜「why DPO can plateau」) · :15(搜「this gap widens」) · :19(搜「Autoregressive generation is slow」) · :23(搜「A strong reward model suffices」) · :31(搜「A Comparative Overview」)
基准告诉我们的两件事Choosing Your Weapontext/70-fm-choosing-your-weapon.txt:155(搜「data quality dominates algorithmic choice」) · :157(搜「a consistent performance gap emerges」) · :163(搜「The burden of proof should lie with complexity」)
简单是默认 · 混合流水线SIMPLICITY AS THE DEFAULTtext/71-fm-simplicity-as-the-default.txt:3(搜「Add PPO only when DPO demonstrably fails」) · :9(搜「iterative DPO」) · :11(搜「an AI evaluator」)

Footnotes

  1. 出处:「DPO: The Reward Model That Wasn’t There」第 5 段(text/60-fm-dpo-the-reward-model-that-wasn-t-there.txt:5,搜「the relief was near universal」)。原文先给了上一章那条路的定性:它「证明了偏好学习能产出极其有能力的模型,也把无数 AI 研究者逼到了发狂」;紧接着是那句判词——尽管概念清晰,它是一个脆弱的算法,对超参数敏感、对基础设施要求高。那支团队来自斯坦福,时间是 2023 年。 2

  2. 出处:「DPO: The Reward Model That Wasn’t There」第 7 段(text/60-fm-dpo-the-reward-model-that-wasn-t-there.txt:7,搜「Sputnik moment」)。原文:因为出口管制,那支团队拿不到比 A100 更强的显卡,只能从网络栈到训练范式做一系列聪明的工程变通;本章后面那个组内相对的方法是其中一部分,它「在严苛的算力约束下交付了偏好类方法的全部威力」,并成为后来那个推理模型的「秘方」之一。

  3. 出处:「DPO: The Reward Model That Wasn’t There」第 9 段(text/60-fm-dpo-the-reward-model-that-wasn-t-there.txt:9,搜「as much about performance」)。第 11 段(text/60-fm-dpo-the-reward-model-that-wasn-t-there.txt:11,搜「not just as code recipes to follow」)还交代了这一章的写法意图:要在数学层面理解这些技法,而不只是把它们当成照抄的代码配方——这样才既能选对今天的方法,也能理解明天的新方法。

  4. 出处:「DPO: The Reward Model That Wasn’t There」第 7 段(text/61-fm-dpo-the-reward-model-that-wasn-t-there.txt:7,搜「introduces computational cost」)。原文把整条链列了出来:人表达成对偏好 → 训打分器 → 打分器给策略输出打分 → 策略梯度朝高分调;链上每一环都引入计算成本和出错可能,而打分器「更阴险地」还面临上一章讲的对着奖励作弊的风险。

  5. 出处:「DPO: The Reward Model That Wasn’t There」第 9 段(text/61-fm-dpo-the-reward-model-that-wasn-t-there.txt:9,搜「closed-form relationship」)。原文把这件事叫做「一个小小的数学花招」:对带偏离约束的奖励最大化,最优策略与奖励函数之间有一个闭式关系;把这个表达式代进第 07 章那个成对比较模型,奖励函数被完全消掉,剩下一个只依赖策略、参考策略和偏好数据的损失。

  6. 出处:「Note」第 17 段(text/62-fm-note.txt:17,搜「delightful analytical solution」)与第 19 段(text/62-fm-note.txt:19,搜「πref」)。原文的直觉描述是:结果正比于「被指数化的奖励重新加权过的参考策略」,再除以一个归一化常数;奖励更高的动作相对参考策略变得更可能,而 β 控制奖励差异对概率的影响有多大。

  7. 出处:「Note」第 37 段(text/62-fm-note.txt:37,搜「an intractable integral」)。原文:计算它需要对所有可能的回答求和,对任何现实的语言模型这都是一个算不动的积分。

  8. 出处:「Note」第 35 段(text/62-fm-note.txt:35,搜「sleight of hand worth savoring」)。原文的完整表述是:我们从一个需要打分器的目标出发,推出在那个奖励下最优策略长什么样,然后问「如果我们有了最优策略,是什么奖励会产生它」;答案揭示出奖励完全由「策略偏离它的参考多少」决定——一个策略比参考更强烈地偏爱的回答,按构造就必然有更高的隐式奖励 2

  9. 出处:「Note」第 21 段(text/62-fm-note.txt:21,搜「this relationship can be inverted」)与第 11 段(text/62-fm-note.txt:11,搜「its invertibility」)。第 11 段点明:让这一切成为可能的关键数学事实,正是那个闭式解的可逆性——如果我们假定正在训练的策略应当对某个奖励函数是最优的,就可以用策略把那个奖励函数表达出来,从而省掉显式计算它的麻烦

  10. 出处:「Note」第 37 段(text/62-fm-note.txt:37,搜「It is the entire reason DPO works」)与第 25 段(text/62-fm-note.txt:25,搜「the prompt-dependent constants cancel」)。第 37 段的原话是:代进那个成对比较模型时,一件幸运的事发生了——那个归一化项在赢的一项和输的一项里以完全相同的形式出现,于是抵消;我们永远不需要计算它。「这不是一个次要的技术便利,这就是它成立的全部原因。」 偏好概率此后只依赖那些对数比值,而这些量跑两次前向就能精确算出 2 3 4

  11. 出处:「Note」第 3 段(text/62-fm-note.txt:3,搜「does not eliminate the reward model」)。这是书里一个专门的 Note 框,原文:与其训练一个单独的模型去预测奖励,不如训练策略,让它的概率赋值就是奖励;打分器在概念上仍然存在,只是分散在策略的参数里,而不是被单独实例化出来 2

  12. 出处:「Note」第 74 段(text/62-fm-note.txt:74,搜「There is no generation step」)与第 76 段(text/62-fm-note.txt:76,搜「resembles SFT」)。第 76 段还说明:为示范训练建的标准训练设施,只需极少改动就能跑这个。第 70 段(text/62-fm-note.txt:70,搜「no RL instabilities to debug」)是那句总结:没有打分器可以过拟合、没有强化学习的不稳定要调试、没有价值函数要自举——而这份简单的价钱是,推导里烘焙进去的某些假设在实践中可能不成立

  13. 出处:「FROM THE TRENCHES: KEEPING THE REFERENCE MODEL IN CHECK」第 3 段(text/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:3,搜「effectively doubles memory requirements」)与第 5 段(text/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:5,搜「the base model to be loaded only once」)。第 5 段明写:用得最多的办法是只训一个挂上去的适配器、把底座冻住,于是底座只需要装载一次——这正是第 12 章那套技法。 2 3

  14. 出处:「Note」第 80 段(text/62-fm-note.txt:80,搜「Lower β allows the policy to deviate」)与第 82 段(text/62-fm-note.txt:82,搜「DPO Hyperparameters」)。第 80 段说明 β 继承自那次推导,控制的正是那条偏离约束的隐式强度:β 小则允许更多偏离、可能拿到更高奖励但会丢掉参考策略原有的能力,β 大则保住能力但限制改进幅度。表里其余几行(批量 16–128 起手 32、梯度累积 1–8 起手 4、最大长度 512–2048 起手 1024、预热比例 0–0.1 起手 0.05)我们没有全部搬进正文。

  15. 出处:「FROM THE TRENCHES: KEEPING THE REFERENCE MODEL IN CHECK」第 37 段(text/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:37,搜「4,096-token context window」)与第 39 段(text/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:39,搜「limited or unrepresentative」)。第 39 段补充:上一章那条路的在线生成对这个问题提供了一定的稳健性,因为它持续从当前策略采样;而这条路的离线本性意味着它只能从给它的偏好里学 2 3

  16. 出处:「FROM THE TRENCHES: KEEPING THE REFERENCE MODEL IN CHECK」第 43 段(text/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:43,搜「numerically unstable」)与第 45 段(text/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:45,搜「heavily edited」)。第 45 段点明这种情况的来源:偏好数据里的回答来自另一个模型,或者被人重度编辑过;对策是让偏好数据贴住参考模型能合理生成的东西,或者用回答过滤把有问题的样例剔除 2 3 4

  17. 出处:「FROM THE TRENCHES: KEEPING THE REFERENCE MODEL IN CHECK」第 49 段(text/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:49,搜「cannot discover how to handle novel situations」)与第 51 段(text/63-fm-from-the-trenches-keeping-the-reference-model-in.txt:51,搜「The solution is coverage」)。第 51 段那句给第 10 章的警告是:在与训练同分布的留出数据上做评估,可能高估部署表现;所以要设计能测分布外提示词的评估,书把这件事指向了它的第 6 章(我们的第 10 章)。 2 3 4

  18. 出处:「Choosing Your Weapon」第 11 段(text/70-fm-choosing-your-weapon.txt:11,搜「why DPO can plateau」)。原文:这个局限正是为什么这条路会停在一个平台上,而上一章那条路还在继续改进——后者探索可能回答的空间,而前者被局限在从固定样例里泛化。

  19. 出处:「FROM THE TRENCHES: THE SCALING QUESTION」第 3 段(text/64-fm-from-the-trenches-the-scaling-question.txt:3,搜「does not scale as well as PPO」)、第 5 段(text/64-fm-from-the-trenches-the-scaling-question.txt:5,搜「400,000+ GPU-hours」)与第 7 段(text/64-fm-from-the-trenches-the-scaling-question.txt:7,搜「the crucial middle」)。第 3 段那句引语出自 Meta 关于其模型的公开说法,书给了尾注;第 5 段那项研究书也给了尾注。第 7 段的收口是:这条路常常是那个关键中间层的正确选择,但真到了它的极限还需要更多能力时,答案可能是换算法而不是加数据 2 3 4 5

  20. 出处:「Beyond GRPO: IPO, ORPO, SimPO, and Friends」第 3 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:3,搜「evolves faster than any survey can capture」)。原文:这三者各自处理先前方法的具体局限,而且各自也很可能被后来的东西取代;要紧的是理解前沿技法底下的原理。

  21. 出处:「KTO: Preferences, All the Way Down」第 3 段(text/65-fm-kto-preferences-all-the-way-down.txt:3,搜「prospect theory」)与第 7 段(text/65-fm-kto-preferences-all-the-way-down.txt:7,搜「without seeing alternatives」)。第 7 段说明成对要求的代价:要么每个提示词生成多份回答(生成成本翻倍),要么让标注员做比较(比简单打分慢);而很多天然的反馈机制产出的是单条评分而不是比较。第 9 段(text/65-fm-kto-preferences-all-the-way-down.txt:9,搜「it is not the only game in town」)点明那个理论并不需要相对偏好,只需要绝对判断 2 3

  22. 出处:「KTO: Preferences, All the Way Down」第 15 段(text/65-fm-kto-preferences-all-the-way-down.txt:15,搜「losses loom larger than equivalent gains」)。原文:效用是不对称的,丢掉 10 美元的难受大过赚到 10 美元的高兴;这种损失厌恶不是非理性的,而是反映了人类心理的深层特征。注意:这是心理学发现,把它搬进训练目标是那篇论文的设计选择。 2

  23. 出处:「KTO: Preferences, All the Way Down」第 17 段(text/65-fm-kto-preferences-all-the-way-down.txt:17,搜「the penalty is weighted more heavily」)与第 33 段(text/65-fm-kto-preferences-all-the-way-down.txt:33,搜「typically set from 1 to 2」)。第 33 段给的实际表现是:失败模式减少得比最好情况的提升更快;那个损失厌恶参数取 1 到 2,取值越高模型越保守——把安全排在能力之前 2

  24. 出处:「KTO: Preferences, All the Way Down」第 31 段(text/65-fm-kto-preferences-all-the-way-down.txt:31,搜「calibration anchor」)。原文:没有这个锚,模型可以靠一致地抬高所有对数概率来满足目标,从而对「哪些输出更可取」什么都没学到;这个锚逼模型做相对判断——每一条样例是在和总体平均比,而不是在和某个具体备选比,这正是它能从不成对数据里学的原因

  25. 出处:「KTO: Preferences, All the Way Down」第 37 段(text/65-fm-kto-preferences-all-the-way-down.txt:37,搜「without the artificial construction of pairs」)与第 41 段(text/65-fm-kto-preferences-all-the-way-down.txt:41,搜「KTO outperforms because DPO simply cannot be applied」)。第 41 段的完整口径是:有成对数据时两者表现相当、大尺度上可能超过,标准基准上谁也不压倒谁,差异通常小于数据质量和调参带来的差异。第 39 段(text/65-fm-kto-preferences-all-the-way-down.txt:39,搜「Existing feedback logs」)点出对企业最实用的一点:已经在收用户反馈的组织,不必新开标注就有训练数据 2

  26. 出处:「FROM THE TRENCHES: MAN’S SEARCH FOR MEANINGFUL PREFERENCE DATA」第 5 段(text/66-fm-from-the-trenches-man-s-search-for-meaningful-pr.txt:5,搜「confusion, frustration, or distraction」)。原文的收口是:这种「在没有意义的地方找到意义」的风险必须被记在心里,而且像建模过程中所有的假设一样,必须被写下来存档。

  27. 出处:「GRPO: Pure Reinforcement Learning at Scale」第 13 段(text/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:13,搜「sample multiple completions from the same prompt」)与第 15 段(text/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:15,搜「clearly above average for its prompt」)。第 15 段还给了方差为什么降下来的理由:降方差来自组内比较;再按组内标准差归一化,进一步削弱了「奖励方差特别大或特别小的提示词」的影响 2

  28. 出处:「GRPO: Pure Reinforcement Learning at Scale」第 43 段(text/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:43,搜「Prompt A is straightforward」)。两组原始分数(8, 7, 9, 8 与 3, 2, 4, 3)、两个均值(8 与 3)、那个标准差(约 0.7),以及「两边优势相同、对梯度贡献相等」这个结论,都是书里给的只有归一化后那四个具体数字是我们重算的:书两处都印成「约 +0.7、−1.0、+1.4、+0.7」,而减去平均之后的四个偏差必定相加为 0(A 是 0, −1, +1, 0;B 也是 0, −1, +1, 0),再除以同一个数也仍然相加为 0——书印的那四个数相加是 +1.8,算不通。我们按它自己给的分数、均值、标准差重算成 0, −1.4, +1.4, 0,结论不受影响 2 3

  29. 出处:「GRPO: Pure Reinforcement Learning at Scale」第 23 段(text/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:23,搜「eliminating the value network」)。原文:这个目标把组内相对优势和上一章那种裁剪结合起来,偏离约束提供同样的能力保全作用,结果是一个继承了上一章稳定性、同时删掉了那个让它昂贵的价值网络的方法;打分器取代价值函数成为训练信号的来源,而且是在整段回答的层面打分,不需要逐 token 的价值估计

  30. 出处:「GRPO: Pure Reinforcement Learning at Scale」第 49 段(text/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:49,搜「Groups of 4 offer efficiency」)与第 47 段(text/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:47,搜「somewhere between DPO and full PPO」)。第 47 段给了它在复杂度谱系上的位置,并说生成开销是真实的但有界——每个提示词 G 份,而不是别的强化学习方法那种可能很铺张的探索 2 3

  31. 出处:「GRPO: Pure Reinforcement Learning at Scale」第 9 段(text/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:9,搜「casting some doubts」)。原文的措辞是「casting some doubts on the traditional SFT-to-RL pipeline」——「投下了一些疑问」,不是「推翻」。第 7 段(text/67-fm-grpo-pure-reinforcement-learning-at-scale.txt:7,搜「trying to replicate it」)是作者的亲历叙述:2025 年初那个模型公布时,他和多数后训练研究者一样在屏幕前试着复现它。 2 3

  32. 出处:「Note」第 17 段(text/47-fm-note.txt:17,搜「preserves incorrect ones」)。这段引的是 Matsutani 等人对推理轨迹的分析:示范训练扩大正确推理路径的空间、但同时保住错误的;强化训练压缩错误路径、却也倾向于把正确的一起压掉——书用这处不对称解释两阶段流水线为什么有效。这一段完整写在第 05 章第 3 节。

  33. 出处:「DIFFICULTY-AWARE GRPO EXTENSIONS」第 5 段(text/68-fm-difficulty-aware-grpo-extensions.txt:5,搜「a 15-step solution」)、第 7 段(text/68-fm-difficulty-aware-grpo-extensions.txt:7,搜「all bad」)、第 9 段(text/68-fm-difficulty-aware-grpo-extensions.txt:9,搜「the learning signal from easy problems is mostly noise」)与第 11 段(text/68-fm-difficulty-aware-grpo-extensions.txt:11,搜「14B-scale models」)。书给这一族扩展举的名字是 GRPO-LEAD,并给了尾注;第 11 段的推广口径是:如果你的场景里题目难度有跨度、而且你能直接或间接地量出来,就值得把难度感知的技法放进你的偏好优化流水线。 2

  34. 出处:「Beyond GRPO: IPO, ORPO, SimPO, and Friends」第 9 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:9,搜「toward infinity」)与第 15 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:15,搜「caps the gradient signal」)。第 17 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:17,搜「when preference data has limited coverage」)给了实证口径:偏好数据覆盖有限时它泛化更好,数据又多又有代表性时差别通常不大。IPO 的全称是 identity preference optimization。 2

  35. 出处:「Beyond GRPO: IPO, ORPO, SimPO, and Friends」第 23 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:23,搜「combines both into a single training stage」)与第 31 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:31,搜「reduces memory requirements by half」)。ORPO 的全称是 odds ratio preference optimization;第 31 段明说参考模型**「不只是像 DPO 那样变成隐式的,而是从计算里彻底缺席」。第 33 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:33,搜「rather than an already-SFT」)补充:它在从底座起步而非从已做过示范训练的模型起步**时尤其见效。 2

  36. 出处:「Beyond GRPO: IPO, ORPO, SimPO, and Friends」第 63 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:63,搜「length-normalized sequence probabilities」)与第 67 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:67,搜「a bias toward shorter responses」)。SimPO 的全称是 simple preference optimization。第 71 段(text/69-fm-beyond-grpo-ipo-orpo-simpo-and-friends.txt:71,搜「Curriculum approaches」)还提了两个方向:不把偏好解释成对某个潜在奖励函数的证据的一类做法,以及按顺序上偏好对(先给界限分明的、再给模棱两可的)的课程式做法——后者第 20 章还会回来。

  37. 出处:「Choosing Your Weapon」第 3 段(text/70-fm-choosing-your-weapon.txt:3,搜「a matching problem, not a ranking problem」)。

  38. 出处:「Choosing Your Weapon」第 11 段(text/70-fm-choosing-your-weapon.txt:11,搜「why DPO can plateau」)、第 15 段(text/70-fm-choosing-your-weapon.txt:15,搜「this gap widens」)、第 19 段(text/70-fm-choosing-your-weapon.txt:19,搜「Autoregressive generation is slow」)与第 23 段(text/70-fm-choosing-your-weapon.txt:23,搜「A strong reward model suffices」)。第 25 段(text/70-fm-choosing-your-weapon.txt:25,搜「embody different trade-offs」)是那句收口:这些方法没有绝对意义上的好坏,它们体现的是匹配不同处境的不同取舍。

  39. 出处:「Choosing Your Weapon」第 31 段(text/70-fm-choosing-your-weapon.txt:31,搜「A Comparative Overview」)。这张表在原书里是表 5-2,从第 33 段起逐格排开;其中「参考模型」一行四种方法全都写「需要」,与后文 ORPO / SimPO 免参考模型并不矛盾——那两个不在这张表里。

  40. 出处:「Choosing Your Weapon」第 151 段(text/70-fm-choosing-your-weapon.txt:151,搜「organizational factors」)。

  41. 出处:「Choosing Your Weapon」第 155 段(text/70-fm-choosing-your-weapon.txt:155,搜「data quality dominates algorithmic choice」)与第 157 段(text/70-fm-choosing-your-weapon.txt:157,搜「a consistent performance gap emerges」)。第 161 段(text/70-fm-choosing-your-weapon.txt:161,搜「overlapping confidence intervals」)还有一条要一起记的:两条路线在真正要紧的最终指标上,置信区间通常是重叠的;谁更好往往取决于实现细节、调参投入和数据特性,而不是根本的算法差异。 2 3 4

  42. 出处:「Choosing Your Weapon」第 163 段(text/70-fm-choosing-your-weapon.txt:163,搜「The burden of proof should lie with complexity」)与「SIMPLICITY AS THE DEFAULT」第 3 段(text/71-fm-simplicity-as-the-default.txt:3,搜「Add PPO only when DPO demonstrably fails」)。第 5 段(text/71-fm-simplicity-as-the-default.txt:5,搜「every knob is an opportunity for error」)是那句被我们抄进走查框里的话:每个旋钮都是一次出错的机会;一个执行得好的简单方法打得过一个执行得差的复杂方法。 2 3

  43. 出处:「SIMPLICITY AS THE DEFAULT」第 9 段(text/71-fm-simplicity-as-the-default.txt:9,搜「iterative DPO」)、第 11 段(text/71-fm-simplicity-as-the-default.txt:11,搜「an AI evaluator」)与第 13 段(text/71-fm-simplicity-as-the-default.txt:13,搜「use each technique for what it does best」)。第 11 段那种组合书自己指向了它的第 11 章(我们的第 17 章)。 2

  44. 补充(不在书里,依据我们的 book 书架):闭式解、反解与那次抵消的完整代数,本书给了式子但没有逐步展开每一步的来历。 依据: shelf=ai-book-reference/the-rlhf-book-reinforcement-learning-from#08-rejection-sampling-and-dpo.md 事实=那一章专门拆的就是从带 KL 约束的目标推到直接偏好优化损失这一条线,可以接着这一章往下读。

  45. 补充(不在书里,依据我们的 frontier 书架):这一章提到的几种做法在同一个训练框架里各有一个训练器类,接口随版本变动。 依据: shelf=ai-frontier-reference/trl#03-dpo.md 事实=那一篇拆的就是这个框架里偏好优化训练器的参数与数据格式约定,包括赢/输两列的字段名。