橙研所· 方法论 × Agent 拆解
AI 科普 · 逐章拆解

AI圣经17 《DPO:不训裁判、不跑强化学习,把 RLHF 三步蒸成一步》

P15 讲过 RLHF 的三步流水线:请人写示范、训一个当裁判的奖励模型、再用强化学习对着裁判刷分。ChatGPT 之后它成了行业标配——也成了行业公认的工程噩梦:又贵、又不稳、超参又难调。2023 年,斯坦福几位博士生盯着这套流水线的目标函数看了很久,发现一件没人点破的事:这道数学题存在闭式解。顺着解往回推,裁判根本不用训——你的语言模型,偷偷就是个奖励模型。于是训裁判、跑强化学习两步全部省掉,偏好对齐蒸成一个普通的分类损失。这篇论文叫 DPO(Direct Preference Optimization,直接偏好优化),它拿了 NeurIPS 2023 杰出论文亚军,然后成了开源世界对齐模型的默认动词。

AI圣经17 DPO 封面
📚 AI 圣经 · 系列导览这是「AI 圣经」系列第 17 篇。我会带你逐篇精读撑起今天所有大模型的 21 篇经典论文,分 5 个阶段层层递进(本篇已高亮): 本篇论文:《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》· Rafailov, Sharma, Mitchell et al. 2023(Stanford, NeurIPS 2023)。可搜「DPO paper」或访问 arXiv 编号 2305.18290 下载。其余各篇论文地址,随当期文章给出。

太长不读RLHF(P15)教会了模型听人话,但它的三步流水线——写示范、训奖励模型当裁判、跑 PPO 强化学习刷分——又贵又不稳,训练时桌上要同时摆四份模型,还得不停现场采样。这篇论文发现:那套流水线要解的数学题,其实存在闭式解。把最优策略的解析形式反代回 Bradley-Terry 偏好模型,算不动的配分函数恰好消掉,训裁判的损失就地变成了训语言模型的损失——语言模型相对参考模型的对数概率比,本身就是一个奖励模型(论文副标题的梗:你的语言模型偷偷是个奖励模型)。于是奖励模型不用训、强化学习不用跑,偏好对齐蒸成一个普通的二元交叉熵。实测:受控实验里 DPO 的「奖励–KL 前沿」全面压过 PPO,连开卷看真实奖励的 PPO-GT 都输;摘要任务上 GPT-4 判胜率约 61%,超过 PPO 最佳的 57%,还更抗采样温度的折腾。论文拿了 NeurIPS 2023 杰出论文亚军;Zephyr、Tulu 等开源模型靠它以小博大,DPO 成了开源对齐的默认动词。但故事有反转:2024 年起的多项实证发现,难任务上在线强化学习仍有更高的天花板——简单赢了性价比,没有赢下一切。

上篇回顾 · 先答一题上一篇讲思维链。先别往下翻,试着答:思维链提示和标准 few-shot 提示,唯一的差别是什么?……答案:差别只在示范例子里——答案前面多了一段人手写的推理过程,〈题目,答案〉变成〈题目,推理,答案〉。模型照样学样,先把中间步骤写出来再作答,小学数学成绩三倍跳涨;参数一个没动,动的只是问法。到这里,阶段四已经讲了两课:P15 让模型愿意听话,P16 让它把思路摊开。今天回到对齐主线,把 P15 那套昂贵的调教流水线,从数学上拆薄。

01靶子:RLHF 赢了产品,输了工程

DPO dpo-p02.png
论文原文 · 第 2 页:Figure 1——全文的招牌对照。左边是 RLHF 老三样:先拿偏好数据训一个奖励模型(label rewards),再用强化学习让模型对着它刷分(sample completions ↔ reinforcement learning 那个循环箭头),训练全程要不停地从模型里现场采样。右边是 DPO:同一份偏好数据进来,直接套一个最大似然的分类损失,一步走到最终模型——没有奖励模型,没有强化学习循环,没有训练中采样。两条路要去的地方相同,右边少了一整套机械。

先把靶子立起来。P15 讲过 InstructGPT 的三步:第一步 SFT,请人写示范、教模型照着答;第二步把人类「A 比 B 好」的排序压进一个奖励模型(reward model,一个学会了人类口味、会给回答打分的裁判网络);第三步 PPO(一种强化学习算法),让模型对着裁判反复刷分,同时用一根 KL 缰绳(惩罚项,不许它为讨好裁判跑离原来的自己太远)拴住。ChatGPT 之后,这套流水线成了行业标配。

标配,不等于好用。论文开篇就把话挑明:RLHF 是一套「复杂且常常不稳定」的程序。工程上它有三笔账:第一笔,模型账——PPO 阶段桌上要同时摆着策略模型、参考模型、奖励模型,外加 PPO 自己的价值网络,四份模型一起吃显存;第二笔,采样账——强化学习是「边生成边学」的,训练循环里要不停地从模型现场采样成段的回答,这是整条流水线最烧钱的动作之一;第三笔,稳定账——超参敏感、奖励要做归一化、训崩了得回头重调,稍不留神模型就学会钻裁判的空子刷高分。Karpathy 后来在 X 上把这层窗户纸捅破,说 RLHF「只勉强算强化学习」:奖励模型不过是给人类口味做的一次「氛围打分」,对着它猛优化,模型迟早学会作弊。

把三笔账放在一起,一个朴素的疑问就冒出来了:偏好数据里的原始信号,明明只是一堆「这个回答比那个好」的二选一;为了消化这么简单的信号,真的需要「先训一个裁判、再跑一整套强化学习」这么重的机械吗?

大多数人把这当成宿命。斯坦福的几位博士生——Rafailov、Sharma、Mitchell(导师是 Chelsea Finn、Christopher Manning、Stefano Ermon)——把它当成了一道还没解完的数学题。

02换元魔术:同一道题,原来有闭式解

DPO dpo-p04.png
论文原文 · 第 4 页:全文的心脏,一页装下整条换元链。式 (4):KL 约束下的最优策略存在解析形式,但分母上的配分函数 Z(x) 要对「所有可能的回答」求和,根本算不动;式 (5):把式 (4) 反过来写,用策略表达奖励函数——Z(x) 还在,先带着;式 (6):把式 (5) 代进 Bradley-Terry 偏好模型,两个回答的奖励一相减,算不动的 Z(x) 恰好消掉;式 (7):最终的 DPO 损失,一个普通的二元交叉熵。整篇论文最贵的东西,就是这一页纸上的四步代数。

DPO 的全部魔术都发生在纸上,动手前先看清起点:它没有换目标。要解的还是 RLHF 第三步那道原题——在 KL 缰绳的约束下,最大化奖励模型给出的期望奖励。DPO 与 PPO 的分歧不在「要什么」,只在「怎么拿到」。

第一步,翻旧账。这道「KL 约束下的奖励最大化」在数学上是道老题,最优解早有解析形式(上图式 4):最优策略正比于「参考模型的概率 × 奖励的指数」。换句话说,只要你有一个奖励函数,对应的最优模型直接写得出来,根本不用强化学习去一步步爬。那为什么没人这么干?因为公式分母上蹲着一个配分函数 Z(x)——一个归一化项,要对「这个问题所有可能的回答」求和。语言的回答空间是天文数字,Z(x) 算不动。解析解看得见、摸不着,PPO 就是绕开它的笨办法。

第二步,也是全文的灵光:换元。既然式 (4) 把「策略」写成了「奖励」的函数,那把它反过来写(式 5),就把「奖励」写成了「策略」的函数:奖励 = β·log(策略概率 ÷ 参考模型概率),再加一项含 Z(x) 的尾巴。Z(x) 还在,先带着。

第三步,让 Z(x) 自己消失。回想 P15:奖励模型是拿 Bradley-Terry 模型(1952 年为给体育比赛排名发明的统计模型)训的,它只关心一件事——两个回答的奖励差决定「A 赢 B」的概率。差,是相减。把式 (5) 代进去,两个回答共享的那条 Z(x) 尾巴,一减,恰好消掉(式 6)。此刻奇迹已经发生:人类偏好的概率,被完全用「语言模型自己的概率」表达出来了,中间不再需要任何独立的奖励函数。

第四步,收网。既然偏好概率能用策略直接写出,那原本用来训奖励模型的最大似然损失,就地变成了训语言模型的损失(式 7):让模型抬高被偏好回答的对数概率比、压低被嫌弃回答的对数概率比——一个普通的二元交叉熵,机器学习里最家常的分类损失,logistic 回归级别的简单。四步代数走完,回头看流水线:裁判不用训了,因为语言模型相对参考模型的对数概率比,本身就是一个奖励模型——这就是论文副标题那句梗,「你的语言模型偷偷是个奖励模型」;强化学习不用跑了,因为最优解从一开始就写在纸上。

03解剖:一个损失函数,装下三步的全部零件

DPO dpo-p05.png
论文原文 · 第 5 页:解剖 DPO 的一步更新。顶上的梯度公式自带三条注解:抬高被偏好回答 y_w 的概率、压低被嫌弃回答 y_l 的概率——前面还乘着一个动态权重:隐式奖励把两个回答排得越错,这条样本的梯度越大。这个权重不是装饰,论文试过去掉它的朴素版本,模型直接退化。下半页 5.1 节的标题,就是论文的副标题:Your Language Model Is Secretly a Reward Model。

公式蒸得再薄,P15 那些来之不易的零件一个都没丢,只是换了藏身之处。把 DPO 的一步梯度更新拆开看(上图顶部的公式,论文自带三条注解):它做的事非常直白——抬高被偏好回答的概率,压低被嫌弃回答的概率。但直白的动作前面乘着一个不直白的动态权重:隐式奖励(就是那个对数概率比)把两个回答排得越错——把差的排在好的前面排得越离谱——这条样本的梯度就越大,改得就越狠。

这个权重不是装饰。论文试过去掉它的朴素版本(只管抬一个压一个,人人平等),模型直接退化——附录里那个叫 unlikelihood 的对照方法,在温度 1.0 下已经生成不出有意义的回答。凭直觉硬凑的「抬好压差」会翻车,从目标函数里推导出来的版本自带保险丝——这是「解出来的」和「猜出来的」之间的差距。

再看那根 KL 缰绳去哪了:它化进了系数 β 里。β 越大,隐式奖励对偏离参考模型越敏感,模型被拴得越紧;β 越小,缰绳越松。P15 里那根需要在强化学习循环里小心维护的缰绳,在这里只是损失函数里的一个常数。

最后看全流程瘦身成了什么样:拿一份偏好数据(完全可以直接用公开数据集,不必自己请标注员);把参考模型设成 SFT 模型(手头没有,就先在被偏好的那半边答案上微调一把,让模型至少「见过」这个分布);然后——就没有然后了。跑一个分类训练,结束。不训裁判、不现场采样、不调强化学习的超参。论文的实验甚至几乎没调过 β。对照 P15 的三步:写示范,还在;训裁判,免了,模型自己就是;跑 PPO,免了,最优解本来就写在纸上。

04放榜一:同一根缰绳,DPO 勒得更省

DPO dpo-p07.png
论文原文 · 第 7 页:Figure 2,第一份成绩单。左图:情感控制任务的「奖励–KL 前沿」,同样的 KL 预算下 DPO 拿到的奖励全面更高——连能开卷看真实奖励函数的 PPO-GT 都被压在下面,这张图衡量的正是优化质量本身。右图:TL;DR 摘要任务、GPT-4 当裁判的胜率——DPO 最高约 61%,超过 PPO 最佳的 57%;横轴采样温度从 0 拉到 1,DPO 的曲线稳稳当当,PPO 在高温下掉回底座模型的水平。

数学等价是纸面上的事,纸面等价不保证训练顺利——所以先考一场「受控实验」。任务是情感控制:给 IMDB 影评开头,让模型(GPT-2-large)把后文写得更正面。这个任务的妙处在于,偏好是拿一个现成的情感分类器造的,真实的奖励函数已知——于是可以精确度量每种方法「花了多少 KL 预算、换回多少奖励」,画出一条「奖励–KL 前沿」。这是对优化质量本身的裸考。

结果(上图左):22 组训练跑下来,DPO 的前沿全面压在所有对手上方——同样的 KL 预算,换回的奖励更多。最扎眼的一笔是:连 PPO-GT 都输了。PPO-GT 是开卷考生,直接拿真实奖励函数来优化,不存在「裁判不准」的借口;它还是被 DPO 压在下面。这一笔说明 DPO 赢的不只是「省去了裁判误差」,而是这条优化路径本身走得更直。

第二场上强度:Reddit TL;DR 摘要任务(TL;DR 是英文网络缩写「太长不读」,这个数据集专门收 Reddit 长帖和人写的摘要),底座 GPT-J 6B,用 GPT-4 当裁判、和数据集里人写的参考摘要比胜率。放榜:DPO 约 61%,超过 PPO 最佳的 57%——而且论文特意注明,DPO 的 β 几乎没调,这数字可能还是保守的。更有工程含金量的是鲁棒性那条曲线:采样温度从 0 拉到 1,DPO 的胜率基本纹丝不动,PPO 在高温下一路滑回底座模型的水平。挑剔的读者可以追问一句:GPT-4 判的算数吗?请人来真判——DPO(温度 0.25)的摘要被人类评委以 58% 的比率判赢 PPO(温度 0,它的最佳状态)。

05放榜二:对话、换考场,与裁判的裁判

DPO dpo-p08.png
论文原文 · 第 8 页:Figure 3,第二份成绩单。左图:Anthropic-HH 单轮对话胜率,基线是数据集里人类已经选出的优答(50% 虚线)——DPO 是唯一显著越过这条线的高效方法,与昂贵的 Best of 128(每个问题采样 128 个回答、拿奖励模型挑最好)打平或更好。右图:训练过程中的胜率演化——DPO 收敛得快,且两种采样温度下都稳定。

第三场换成对齐的主战场:单轮对话,用 Anthropic 的 HH 数据集(17 万条人机对话,每条带一对回答和人类的偏好标签——P15 讲过的那类偏好数据,这里直接复用公开版)。底座 Pythia-2.8B。基线画得很狠:不和别的方法比,直接和数据集里人类已经选出的优答比胜率——50% 线就是「和人类挑出来的答案打平」。

放榜(上图):DPO 是唯一显著越过 50% 线的高效方法,和 Best of 128 打平或更好。Best of 128 值得多说一句:它是「每个问题采样 128 个回答、让奖励模型挑最好的一个」——效果扎实,但每次回答都要 128 倍的计算,纯属「性能天花板参照物」,没法当产品用。DPO 用一次采样的成本,摸到了 128 次采样的天花板。而作者从公开渠道找来的 PPO 对话模型,没有找到任何一个「提示词 + 温度」组合能胜过底座模型。

还剩两个疑点,论文自己补了刀。疑点一:离线学出来的策略,换个考场还行吗?DPO 全程没从模型里采过样,全靠一份固定的偏好数据「刷题」,按强化学习的行话说是纯离线方法——直觉上它对没见过的分布应该更脆。把在 Reddit 摘要上训的 DPO 和 PPO 直接拉去考 CNN/DailyMail 新闻摘要(完全不同的文体),GPT-4 判胜率:DPO 0.36 对 PPO 0.26(温度 0),换个考场反而赢得更多。初步证据:离线不必然输泛化。疑点二:满篇 GPT-4 判的胜率,裁判本身可信吗?这就是下一张图的事——真人研究显示,人类与 GPT-4 的判罚一致率,跟人类彼此之间的一致率相当(67–86% 对 65–87%)。裁判的裁判,签了字。

06后日谈:开源的默认动词,与没有全面胜利的胜利

DPO dpo-p10.png
论文原文 · 第 10 页:裁判的裁判,与作者的问题清单。上半页 Table 2:全文胜率多由 GPT-4 判定,这里用真人研究验证裁判本身——人类与 GPT-4 的判罚一致率(67–86%),跟人类彼此之间的一致率(65–87%)相当,GPT-4 是个合格的代理裁判。下半页是讨论与局限:DPO 在分布外如何泛化、奖励过度优化在这里长什么样、6B 之上能不能继续放大——作者亲手留下的问题清单,两年内被社区逐条作答。

先讲论文自己的诚实。讨论一节,作者把没答完的题写成清单(上图下半页):DPO 在分布外泛化的系统性证据还不足;奖励的过度优化(对着一个不完美的偏好代理猛踩油门,最后学坏——P15 的老病)在 DPO 的形态下长什么样,尚不清楚;实验最大只做到 6B 参数,再放大十倍百倍会怎样,没人知道。这份清单,接下来两年被整个社区当作业逐条做完。

先是荣誉。NeurIPS 2023 把杰出论文亚军(Outstanding Paper Runner-up)颁给了它——评审给的理由朴素得像本文标题:它有望「显著影响未来语言模型的训练方式」。几个博士生的一页代数,对上大厂整条强化学习流水线,这个故事本身就足够传播。

然后是采用,主力在开源社区。2023 年底,HuggingFace 的 H4 团队用 DPO 调出 Zephyr-7B:一个 70 亿参数的模型,在对话基准 MT-Bench 上拿 7.34 分,压过 700 亿参数的 Llama-2-Chat(6.86)——以小博大,训练成本却是「几块 GPU 几个小时」的量级,对齐第一次成了车库团队也玩得起的事。艾伦研究所(AllenAI)的 Tulu 2 接着把 DPO 推到 70B 规模,证明这条路能放大。此后 Llama 3、Stable LM 2 等一长串开源模型的对齐配方里都有它,衍生变体(IPO、KTO、SimPO……)自成一个小家族。发布一年半后,「做对齐」在开源世界的默认动词,从 RLHF 变成了 DPO。

但故事的 B 面同样值得记住。2024 年 ICML 上一篇标题火药味十足的论文《Is DPO Superior to PPO?》给出了反方证据:在最难的任务上(比如竞赛级代码生成),精心调校的 PPO 全面胜出;DPO 那种「从固定数据里学」的离线姿态,容易被分布外的回答钻空子。此后的多项实证也指向同一个方向:在线方法(边生成边学,实时拿反馈)的天花板更高,前沿实验室的旗舰模型至今仍偏爱在线强化学习或混合配方。今天回头看,比较公允的收法是:DPO 赢下了性价比——用百分之一的工程复杂度拿到九成的效果,让偏好对齐飞入寻常百姓家;但它没有赢下天花板。简单是美德,不是魔法。

放进系列时间线收个尾。P15 用人类偏好教会模型听话,但那套流水线只有大厂玩得起;本篇把它蒸成一个损失函数,人人可用。可有个更深的问题,两篇都没碰:裁判背后终究是——P15 是 40 个标注员的口味,本篇是公开偏好数据集里匿名标注者的口味。对齐到谁?规则在哪写着?2022 年底,Anthropic 给出了一个激进的答案:把「人类逐条打分」换成一部白纸黑字的宪法,让 AI 依照宪法给 AI 当裁判——人类从打分员,退位成立法者。下一篇 P18《Constitutional AI》,讲对齐规则第一次被公开写成条文的那篇论文。

读完自测:先别往下翻,试着答

主动回忆一遍才记得住。三问,想好再看答案:

答案1. 砍掉了「训奖励模型」和「跑强化学习」。前者能砍,是因为换元后发现语言模型相对参考模型的对数概率比本身就是一个奖励模型,裁判不必另请;后者能砍,是因为 KL 约束下的最优策略存在闭式解,不需要用强化学习一步步爬。2. 障碍是配分函数 Z(x)——解析解的分母要对所有可能的回答求和,算不动。DPO 的绕法:把解析式反解成「用策略表达奖励」,再代进只关心「两个回答奖励之差」的 Bradley-Terry 模型——一相减,两个回答共享的 Z(x) 恰好消掉。3. 它按「隐式奖励把两个回答排得多错」给每条样本的梯度加权:排得越离谱,改得越狠。去掉它、只朴素地抬高好答案压低坏答案,模型会直接退化——论文的对照实验里,这种朴素版在温度 1.0 下已经生成不出有意义的回答。

一句话带走,和下一步

只记一句:DPO 发现 RLHF 要解的目标函数存在闭式解——语言模型相对参考模型的对数概率比本身就是一个奖励模型,于是训裁判、跑强化学习两步全部省掉,偏好对齐蒸成一个二元交叉熵;它在受控实验里连开卷的 PPO-GT 都压过、摘要任务上 61% 胜率超过 PPO 的 57%,拿下 NeurIPS 2023 杰出论文亚军,成为开源对齐的默认动词——但难任务上在线强化学习的天花板更高,简单赢了性价比,没有赢下一切。

启后:DPO 把「怎么学偏好」蒸到了极简,可「偏好从哪来、对齐到谁」的问题原封未动——裁判背后仍是一群匿名标注员的口味。下一篇 P18《Constitutional AI》,讲 Anthropic 的激进实验:把对齐规则写成一部白纸黑字的宪法,让 AI 依照宪法给 AI 当裁判(RLAIF),人类从打分员退位成立法者。

想再深入一点原论文:arXiv 2305.18290(《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》,Rafailov et al., Stanford, NeurIPS 2023)。关键前作:本系列 P15 拆过的 InstructGPT(Ouyang et al. 2022,arXiv 2203.02155,RLHF 三步流水线的定稿之作)与 Bradley & Terry 1952(偏好概率模型的源头)。延伸阅读:以小博大的实战样本 Zephyr(Tunstall et al. 2023,arXiv 2310.16944)、反方证据《Is DPO Superior to PPO for LLM Alignment?》(Xu et al., ICML 2024,arXiv 2404.10719)。最优二手解读:Nathan Lambert 的 Interconnects 博客对 DPO 与 RLHF 论战的系列追踪(interconnects.ai)。/ 互动钩子:你要是给自己的模型做对齐,会选便宜稳当的 DPO,还是天花板更高但难伺候的在线强化学习?评论区聊聊你的账怎么算。

← 返回 AI 圣经目录