<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>DPO on 辰远</title>
        <link>/tags/dpo/</link>
        <description>Recent content in DPO on 辰远</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>Lee</copyright>
        <lastBuildDate>Sat, 26 Sep 2026 09:08:47 +0800</lastBuildDate><atom:link href="/tags/dpo/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>DPO：奖励模型去哪了</title>
            <link>/p/dpo-hidden-reward/</link>
            <pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate>
            <guid>/p/dpo-hidden-reward/</guid>
            <description>&lt;img src=&#34;/p/dpo-hidden-reward/cover.jpg&#34; alt=&#34;Featured image of post DPO：奖励模型去哪了&#34; /&gt;&lt;p&gt;经典 RLHF 像一条三段式生产线：收集成对偏好，训练一个输出标量的奖励模型，再用 PPO 让语言模型追逐这个分数，同时用 KL 惩罚拴住它。DPO 却说，第二段和第三段都可以拿掉，剩下一个看起来像二分类的损失就够了。&lt;/p&gt;&#xA;&lt;p&gt;这很容易被压缩成一句不准确的话：DPO“不需要奖励模型”。更精确的说法是，&lt;strong&gt;DPO 不训练一个独立、可调用的奖励网络，却仍然假设人类偏好来自潜在奖励；它把这个奖励改写成策略相对参考模型的对数概率变化。&lt;/strong&gt; 奖励模型没有凭空消失，而是从一项显式资产变成了语言模型内部的一种坐标系。&lt;/p&gt;&#xA;&lt;p&gt;这次改写为何成立、每个 batch 到底算了什么，以及简化后的代价在哪里，是理解 DPO 的三把钥匙。&lt;/p&gt;&#xA;&lt;h2 id=&#34;它删掉的是训练阶段不是偏好假设&#34;&gt;它删掉的是训练阶段，不是偏好假设&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;给定提示 $x$，标注者在两个回答里选择更好的 $y_w$，另一个记为 $y_l$。传统奖励模型通常采用 Bradley–Terry 假设：偏好概率只取决于两个潜在奖励之差，&lt;/p&gt;&#xA;$$&#xA;p(y_w \succ y_l\mid x)=\sigma\big(r(x,y_w)-r(x,y_l)\big).&#xA;$$&lt;p&gt;先用这个式子拟合奖励网络，再求解一个带 KL 约束的策略优化问题：&lt;/p&gt;&#xA;$$&#xA;\max_\pi\;\mathbb E_{y\sim\pi}[r(x,y)]-&#xA;\beta D_{\mathrm{KL}}\!\left(\pi(\cdot\mid x)\,\|\,\pi_{\mathrm{ref}}(\cdot\mid x)\right).&#xA;$$&lt;p&gt;第一项鼓励高奖励回答，第二项阻止策略离参考模型太远。这个约束并非装饰：奖励模型只在有限数据分布附近可靠，策略若专门钻它的空子，分数可能继续上涨，回答质量却下降。&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;/p/dpo-hidden-reward/pipeline.svg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;图 1：传统 RLHF 先拟合奖励再用 PPO 优化；DPO 直接用偏好对更新策略&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;DPO 的关键不是发明另一种偏好标签，而是观察上述优化问题的最优策略具有闭式形式：&lt;/p&gt;&#xA;$$&#xA;\pi_r(y\mid x)=\frac{1}{Z(x)}\pi_{\mathrm{ref}}(y\mid x)&#xA;\exp\!\left(\frac{r(x,y)}{\beta}\right).&#xA;$$&lt;p&gt;把它反解，就能用策略表示奖励：&lt;/p&gt;&#xA;$$&#xA;r(x,y)=\beta\log\frac{\pi_r(y\mid x)}{\pi_{\mathrm{ref}}(y\mid x)}+\beta\log Z(x).&#xA;$$&lt;p&gt;麻烦的配分函数 $Z(x)$ 只依赖同一个提示 $x$。代回 Bradley–Terry 模型时，两个回答的奖励相减，$\beta\log Z(x)$ 恰好抵消。于是无需先恢复奖励的绝对值，也能直接拟合“人更可能选哪一个回答”。这不是近似技巧，而是一次变量替换。&lt;/p&gt;&#xA;&lt;h2 id=&#34;一个偏好对只需要四个对数概率&#34;&gt;一个偏好对，只需要四个对数概率&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;DPO 对每个样本 $(x,y_w,y_l)$ 计算四个序列级对数概率：当前策略与参考模型各自对 chosen、rejected 回答的概率。定义&lt;/p&gt;&#xA;$$&#xA;a_w=\log\pi_\theta(y_w\mid x)-\log\pi_{\mathrm{ref}}(y_w\mid x),&#xA;$$$$&#xA;a_l=\log\pi_\theta(y_l\mid x)-\log\pi_{\mathrm{ref}}(y_l\mid x).&#xA;$$&lt;p&gt;这里的 $a$ 可以理解为“当前策略相对出发点，给这个回答增加了多少支持”。DPO 最小化&lt;/p&gt;&#xA;$$&#xA;\mathcal L_{\mathrm{DPO}}=-\log\sigma\big(\beta(a_w-a_l)\big).&#xA;$$&lt;figure&gt;&lt;img src=&#34;/p/dpo-hidden-reward/four-logprobs.svg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;图 2：DPO 用 policy/reference × chosen/rejected 的四个对数概率构造一个相对优势差&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;这个式子有三个容易忽略的细节。&lt;/p&gt;&#xA;&lt;p&gt;第一，它优化的不是“chosen 的概率必须变大”这一条孤立规则，而是 &lt;strong&gt;chosen 相对 reference 的提升要超过 rejected 相对 reference 的提升&lt;/strong&gt;。即使两个回答的绝对概率都因参数共享而下降，只要相对差朝正确方向扩大，损失仍会改善。&lt;/p&gt;&#xA;&lt;p&gt;第二，reference 不是一份普通的旧 checkpoint 标签。它定义了隐式奖励的零点，也承担 KL 锚的角色。原论文在有 SFT 模型时用它初始化 reference 和待训练策略；没有匹配的 SFT 模型时，则先对 preferred completions 做最大似然微调，以减轻偏好数据与 reference 的分布错位。&lt;/p&gt;&#xA;&lt;p&gt;第三，$\beta$ 控制偏离 reference 的代价，但不同实现对参数含义与缩放的表述可能不同，不能把数值跨代码库机械搬运。论文官方参考实现里，核心计算确实只有：先求 policy 的 chosen/rejected log-ratio，再减去 reference 的对应 log-ratio，最后送入 &lt;code&gt;logsigmoid&lt;/code&gt;。不过“损失短”不等于训练只需一份模型：朴素实现仍要对 policy 和冻结的 reference 做前向计算，显存、并行和序列截断依然是工程问题。&lt;/p&gt;&#xA;&lt;h2 id=&#34;简单来自离线也受限于离线&#34;&gt;简单来自“离线”，也受限于“离线”&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;DPO 训练期间不需要一边生成新回答、一边让奖励模型打分，再维护 PPO 的 actor、critic 与 rollout 循环。固定的 $(x,y_w,y_l)$ 数据集可以像监督学习一样反复训练，这降低了系统复杂度，也让实验更容易复现。&lt;/p&gt;&#xA;&lt;p&gt;原论文在三个任务上验证了这点：受控情感生成、Reddit TL;DR 摘要和 Anthropic Helpful and Harmless 单轮对话。实验模型最大到 6B；在其 GPT-4 评估的摘要设置中，DPO 的最佳报告值约为 61% 胜率，PPO 约为 57%，且 DPO 对采样温度更稳健。论文还报告在人类头对头评估中，DPO 样本有 58% 的比较胜过 PPO 样本。&lt;/p&gt;&#xA;&lt;p&gt;这些结果支持“在论文设置下，DPO 能以更简单的优化达到有竞争力的偏好对齐”，却不支持“DPO 在所有规模、所有偏好数据上都优于在线 RL”。它使用固定数据，看不到当前策略新产生的失败；如果训练把策略推到数据覆盖之外，监督信号不会自动跟上。偏好对来自谁、由哪个模型生成、标注标准是否一致，都会成为算法的一部分。&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;/p/dpo-hidden-reward/tradeoffs.svg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;图 3：DPO 消除了显式奖励与在线 PPO 环，却保留 reference 计算，并把风险集中到偏好数据与分布外推&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;因此，把 DPO 与 PPO 理解成单纯的“新算法淘汰旧算法”并不合适。更有用的区分是：DPO 是固定偏好数据上的直接策略拟合；在线 RL 则能让当前策略持续探索、获得新反馈。前者适合数据已经准备好、希望训练管线简单稳定的场景；后者更复杂，却能针对模型正在犯的新错误继续收集信号。&lt;/p&gt;&#xA;&lt;h2 id=&#34;隐式奖励照样会被钻空子&#34;&gt;隐式奖励照样会被钻空子&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;没有独立奖励网络，不代表没有 reward hacking。只要偏好数据含有捷径，DPO 就会放大能提高胜率的特征。&lt;/p&gt;&#xA;&lt;p&gt;一个清楚的例子是长度。Rafailov 等作者的后续研究分析 Anthropic HH 与 TL;DR 数据，发现 preferred 回答只有轻微偏长，但未正则化 DPO 生成的回答平均可变成约两倍长，并跑到反馈数据的长度分布之外。论文将其解释为对长度相关偏好的分布外外推，并提出长度正则项；在控制长度后，报告的胜率最高改善 20%。&lt;/p&gt;&#xA;&lt;p&gt;这里应避免另一个过度结论：长回答不等于坏回答。问题在于，模型可能把“通常更完整”学成“只要更长就更可能赢”，而自动评审本身也可能偏爱冗长。此时 raw win rate 同时测量内容质量、长度偏见和评审器偏见，不能单独充当真相。&lt;/p&gt;&#xA;&lt;p&gt;DPO 的二元偏好模型还有更基本的压缩：它只知道 $y_w$ 胜过 $y_l$，不知道胜多少，也不知道两者是否都很差。标注噪声、提示分布变化、答案风格与事实正确性的纠缠，都不会因公式优雅而消失。实际系统仍需要保留独立评测：长度校正、人类抽检、事实性与安全测试，以及对策略偏离 reference 程度的监控。&lt;/p&gt;&#xA;&lt;h2 id=&#34;真正的贡献是找到了正确的坐标&#34;&gt;真正的贡献，是找到了正确的坐标&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;DPO 最值得记住的，不是“用一个 loss 替代一整套 RLHF”这句口号，而是它找到了一种坐标变换：在 KL 正则化的偏好优化中，奖励差可以写成策略相对 reference 的 log-ratio 差；Bradley–Terry 只关心差值，所以未知的归一化项会消失。&lt;/p&gt;&#xA;&lt;p&gt;这个视角让一条昂贵管线缩短了，也揭示了一个更普遍的设计原则：有时中间模型只是求解最终对象的一种参数化。如果能把约束直接写进最终对象，就可能减少训练阶段而不改变目标假设。&lt;/p&gt;&#xA;&lt;p&gt;但被删掉的模块不会带走它原本承载的所有问题。偏好仍可能有偏，reference 仍决定“不要走太远”相对于哪里，离线数据仍划定可学习边界，评测仍可能被表面特征欺骗。DPO 让优化更直接；它没有让“人到底喜欢什么、为什么喜欢”这个问题变简单。&lt;/p&gt;&#xA;&lt;h2 id=&#34;参考资料&#34;&gt;参考资料&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;Rafailov et al., &lt;a class=&#34;link&#34; href=&#34;https://papers.neurips.cc/paper_files/paper/2023/hash/a85b405ed65c6477a4fe8302b5e06ce7-Abstract-Conference.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;Direct Preference Optimization: Your Language Model Is Secretly a Reward Model&lt;/a&gt;, NeurIPS 2023.&lt;/li&gt;&#xA;&lt;li&gt;Rafailov et al., &lt;a class=&#34;link&#34; href=&#34;https://arxiv.org/abs/2305.18290&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;DPO paper and appendices&lt;/a&gt;, 2023.&lt;/li&gt;&#xA;&lt;li&gt;Mitchell et al., &lt;a class=&#34;link&#34; href=&#34;https://github.com/eric-mitchell/direct-preference-optimization&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;DPO official reference implementation&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Park et al., &lt;a class=&#34;link&#34; href=&#34;https://aclanthology.org/2024.findings-acl.297/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xD;&#xA;    &gt;Disentangling Length from Quality in Direct Preference Optimization&lt;/a&gt;, Findings of ACL 2024.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;</description>
        </item></channel>
</rss>
