文章类型技术长文 所属专栏Agent 算法 预计阅读87 分钟 文档状态已发布
返回

第 10 篇:DPO 变体横向比较——IPO、KTO、ORPO 与 SimPO

以 DPO 为基线,对比 IPO、KTO、ORPO 与 SimPO 的数据形态、Reference 依赖、损失函数、长度归一化与适用边界。

开始阅读全文17309 字 · 87 分钟 查看系列目录Agent 算法
关键词 AgentDPOIPOKTOORPOSimPO偏好优化
栏目 AgentAlgorithms;专栏 Agent 算法;标签 Agent、DPO、IPO、KTO、ORPO、SimPO、偏好优化

DPO 把一类 KL 正则化偏好学习问题改写成了可直接反向传播的离线损失,但“省掉 Reward Model 和在线强化学习”并不等于问题已经结束。标准 DPO 仍依赖成对偏好、固定 Reference Model、序列对数概率之和以及 Bradley–Terry 偏好模型;在有限数据和参数化神经网络中,它还会暴露出经验偏好过拟合、长度相关捷径、Reference 敏感性和超参数耦合等问题。

IPO、KTO、ORPO 与 SimPO 并不是沿同一方向对 DPO 做四次小修补:

  • IPO 改变了偏好优化所对应的理论目标,并用有限目标间隔替代 DPO 的单调 Log-sigmoid;
  • KTO 改变了反馈单位,用单条回答的 Desirable / Undesirable 标签替代必须配对的 Winner / Loser;
  • ORPO 把 Chosen 的 SFT 目标与基于 Odds Ratio 的偏好项合并为单阶段训练;
  • SimPO 用长度归一化的 Policy Average Log Probability 直接构造 Reference-free Reward,并加入显式目标间隔。

因此,不能只问“哪个 DPO 变体最好”。更准确的问题是:现有数据是什么形态、起点模型是否已经完成指令学习、是否能够承担 Reference 计算、希望用什么方式约束策略漂移,以及实验是否控制了完整流水线而非只控制偏好阶段。

本文以 2023 年标准 DPO 为基线,按照原始 IPO、KTO、ORPO 与 SimPO 的论文定义进行公式级比较。文中的“Reference-free”只表示训练损失不显式读取固定 Reference Log Probability,不表示模型没有初始化先验、没有数据约束,也不表示训练后无需检查相对初始模型的漂移。[1–5]


1. 为什么会出现 DPO 变体#

1.1 DPO 的核心假设#

标准 DPO 的推导同时依赖两个模型化步骤。

第一步是 KL-regularized Reward Maximization:

maxπ  Exρ,  yπ(x)[r(x,y)]βExρ[DKL(π(x)πref(x))],(1)\max_{\pi}\; \mathbb E_{x\sim\rho,\;y\sim\pi(\cdot\mid x)} \left[r(x,y)\right] -\beta\, \mathbb E_{x\sim\rho} \left[ D_{\mathrm{KL}} \bigl(\pi(\cdot\mid x)\Vert\pi_{\mathrm{ref}}(\cdot\mid x)\bigr) \right], \tag{1}

其中 πref\pi_{\mathrm{ref}} 是固定 Reference Policy,β>0\beta>0 是 KL Penalty 的系数。对每个 Prompt 求解可得人口最优策略:

π(yx)=1Z(x)πref(yx)exp(r(x,y)β).(2)\pi^*(y\mid x) =\frac{1}{Z(x)} \pi_{\mathrm{ref}}(y\mid x) \exp\left(\frac{r(x,y)}{\beta}\right). \tag{2}

第二步是假设成对偏好服从 Bradley–Terry(BT)模型:

P(ywylx)=σ(r(x,yw)r(x,yl)).(3)P(y_w\succ y_l\mid x) =\sigma\bigl(r(x,y_w)-r(x,y_l)\bigr). \tag{3}

把式(2)反解得到的 Policy/Reference Log-ratio 代入式(3),同一 Prompt 的配分函数 Z(x)Z(x) 抵消,便得到 DPO Loss。[1][6]

这套推导隐含或显式要求:

  • 偏好可以由一个标量效用差和指定 Link Function 表达;
  • Reference 在所讨论的回答上具有支持;
  • 数据中的 Pairwise 标签足以代表目标偏好分布;
  • 离线偏好对覆盖了需要学习的回答区域;
  • 参数化模型和有限优化可以逼近人口目标;
  • 序列 Log Probability、Mask 和 Chat Template 被一致实现。

变体的差异,本质上是选择保留哪些假设、替换哪些假设,以及用什么工程约束弥补被移除的理论锚点。

1.2 Reference Model 带来的成本#

DPO 的 Reference Model 不参与反向传播,但仍要为 Chosen 和 Rejected 计算:

logπref(ywx),logπref(ylx).\log\pi_{\mathrm{ref}}(y_w\mid x),\qquad \log\pi_{\mathrm{ref}}(y_l\mid x).

如果 Policy 与 Reference 都以完整模型常驻 GPU,Reference 会带来三类开销:

  1. 权重显存:需要保存一份冻结参数;优化器状态和梯度只属于 Policy,但大模型权重本身仍然昂贵。
  2. 前向计算:每个偏好回答既要被 Policy 评分,也要被 Reference 评分。
  3. 系统复杂度:分布式切分、量化方式、Tokenizer、Chat Template、EOS 与截断规则必须完全对齐。

但“需要 Reference”不等于“每一步都必须同时常驻第二份完整模型”。当训练数据固定时,可以预计算 Reference Log Probability;使用 PEFT 时,在满足权重关系的前提下,也可能通过禁用 Policy Adapter、切换 Reference Adapter 或卸载 Reference 来降低显存。预计算只是把 Reference 成本从每个训练 Step 移到一次离线评分,并没有改变目标函数。[12]

ORPO 与 SimPO 直接从损失中移除 Reference;KTO 的标准形式仍然需要 Reference,且原始 KL Reference Point 估计还可能增加一次错配序列评分;IPO 与 DPO 一样依赖 Reference。只按“是否有第二个模型对象”比较速度,会遗漏缓存、Adapter 共享、Batch 拼接与 I/O 的影响。

1.3 Pairwise 数据的采集限制#

DPO、IPO、ORPO 与 SimPO 的标准输入都是:

(x,yw,yl),ywyl.(x,y_w,y_l),\qquad y_w\succ y_l.

采集一条 Pairwise 标签通常要先对同一 Prompt 生成至少两个候选,再让标注者同时阅读、比较并决定哪一个更好。它有两个优势:

  • 标注者不必建立跨 Prompt 的绝对评分尺度;
  • 比较可以消除一部分个人打分基线差异。

但它也有明显限制:

  • 两个候选都很好或都很差时,“必须二选一”会掩盖绝对质量;
  • 候选差异过大时只产生 Easy Pair,训练信号很快饱和;
  • 候选差异过小时标注噪声和 Tie 增多;
  • 完整排序 KK 个候选的阅读和认知成本更高;
  • 已有生产日志常只有点赞、点踩、接受、重试或删除等 Unary Feedback,无法天然恢复为同 Prompt 偏好对。

KTO 接收:

(x,y,c),c{D,U},(x,y,c),\qquad c\in\{\mathrm{D},\mathrm{U}\},

分别表示 Desirable 与 Undesirable。它可以直接利用单条好坏标签,但代价是必须定义一个绝对分类边界:同一回答究竟是“可接受”还是“不可接受”。Unary 并不天然比 Pairwise 更无噪声,只是把标注难点从“二者谁更好”换成“是否跨过质量阈值”。[3]

1.4 长度偏差、过拟合与超参数敏感性#

标准 DPO 使用回答 Token Log Probability 的求和:

sθ(x,y)=t=1ylogπθ(ytx,y<t).(4)s_\theta(x,y) =\sum_{t=1}^{|y|} \log\pi_\theta(y_t\mid x,y_{<t}). \tag{4}

序列越长,式(4)通常越负。DPO 使用 Policy 与 Reference 的差值,能够抵消一部分共同的长度趋势,但这种抵消依赖两个模型在各 Token 上的相对变化,并不等价于显式长度归一化。数据中的 Chosen/Rejected 长度相关性、Reference 的长度偏好和截断方式仍可能成为捷径。[5][23]

DPO 的单样本损失为:

DPO(h)=logσ(βh),(5)\ell_{\mathrm{DPO}}(h) =-\log\sigma(\beta h), \tag{5}

其中 hh 是 Chosen 相对 Rejected 的 Reference-adjusted Log-ratio Margin。对于确定性标签,式(5)的下确界为 0,只在 h+h\rightarrow+\infty 时逼近;它不存在有限极小点或有限最佳间隔。IPO 论文指出,在有限样本中经验偏好概率很容易变成 0/10/1,DPO 对其逆 Link 会产生无界奖励差,从而削弱原本希望由 KL 系数表达的正则化。[2]

此外,以下参数不能孤立解释:

  • DPO 的 β\beta 同时进入 Logit 缩放,并源自理论 KL 系数;
  • IPO 的正则化系数决定有限目标间隔;
  • KTO 的 β\beta 控制 Value Function 饱和,λD,λU\lambda_D,\lambda_U 控制两类权重;
  • ORPO 用 λ\lambda 平衡 SFT 与 Odds Ratio Preference;
  • SimPO 的 β\beta 缩放平均 Log Probability 差,γ\gamma 设置目标 Reward Margin。

同名的 β\beta 在不同论文里并不具有完全相同的语义,也不应共享同一数值搜索范围。

1.5 IPO、KTO、ORPO 与 SimPO 分别解决什么问题#

方法首要出发点关键修改没有解决的部分
DPO简化 Reward Model + RL 链路Policy/Reference Log-ratio 的 Pairwise Log-sigmoidPairwise、Reference、离线覆盖、长度与经验过拟合
IPO避免确定性经验偏好导致无界间隔Identity Ψ\Psi + 有限目标间隔的平方损失仍需 Pairwise 和 Reference;统一间隔可能欠拟合偏好强度
KTO使用非配对二元反馈Desirable/Undesirable 两分支 + KL Reference Point标准形式仍需 Reference;绝对标签阈值和类不平衡仍困难
ORPO合并 SFT 与偏好阶段Chosen NLL + Odds Ratio Preference仍需 Pairwise;无固定 Reference 锚;两项梯度可能冲突
SimPO对齐生成时的长度归一化评分并移除 ReferenceAverage Log Probability + Target Reward Margin仍需 Pairwise;Reference-free 漂移和 Margin 敏感性

这张表中的“解决”表示改变目标结构,不表示原论文已经证明在所有模型、数据和任务上普遍优于 DPO。每种方法都把一种归纳偏置换成了另一种归纳偏置。


2. 建立统一比较框架#

2.1 数据形态:Pairwise 与 Unary Feedback#

为了避免把数据数量和监督信息量混在一起,先定义两种样本。

Pairwise Preference:

Dpair={(xi,yw,i,yl,i)}i=1N.(6)\mathcal D_{\mathrm{pair}} =\{(x_i,y_{w,i},y_{l,i})\}_{i=1}^{N}. \tag{6}

每条样本说明同 Prompt 下 ywy_wyly_l 更受偏好,不说明两者的绝对质量。DPO、IPO、ORPO 和 SimPO 直接消费这种数据。

Unary Feedback:

Dunary={(xi,yi,ci)}i=1M,ci{D,U}.(7)\mathcal D_{\mathrm{unary}} =\{(x_i,y_i,c_i)\}_{i=1}^{M}, \quad c_i\in\{\mathrm D,\mathrm U\}. \tag{7}

KTO 直接消费这种数据。一条 Pairwise 样本可以机械拆成:

(x,yw,D),(x,yl,U),(8)(x,y_w,\mathrm D),\qquad (x,y_l,\mathrm U), \tag{8}

但式(8)额外假设 Chosen 绝对可取、Rejected 绝对不可取。若原始 Pair 是“较好 vs 很好”或“很差 vs 较差”,该转换会制造标签错误。KTO 原论文明确称其为一种为简化而作的朴素假设。[3]

Anthropic HH-RLHF、UltraFeedback 等常用公开语料主要以 Pairwise 或可二值化排序形式发布;它们适合做同源算法比较,却不能替代对原生 Unary 生产反馈的验证。[10][11]

因此,至少应区分两种实验:

  • 同 Pair 信息实验:把同一偏好对拆给 KTO,比较损失的归纳偏置;
  • 原生反馈实验:分别按 Pairwise 与 Unary 协议采集数据,比较真实标注成本和可扩展性。

2.2 是否需要 Reference Model#

设固定参考策略为 πref\pi_{\mathrm{ref}},常见但非强制的选择是偏好训练起点:

πθ(0)=πref.(9)\pi_\theta^{(0)}=\pi_{\mathrm{ref}}. \tag{9}

五种方法可分为:

方法标准损失是否读取 πref\pi_{\mathrm{ref}}Reference 的作用
DPO构造隐式奖励与相对变化基线
IPO定义相对 Log-ratio Gap,并通过有限目标间隔保持正则化
KTO构造单样本 Log-ratio Reward 与 KL Reference Point
ORPO由 Chosen NLL、初始化和 Odds Ratio 项提供隐式约束
SimPO由初始化、数据、学习率、平均 Log Probability 与 Margin 提供隐式约束

Reference-free 只描述 Loss 的输入。ORPO 与 SimPO 仍从一个已有 Checkpoint 初始化,参数更新仍受数据分布、有限 Step、优化器、Weight Decay、Adapter 容量和 Early Stopping 约束。为公平评估,即便训练不用 Reference,也应在训练后相对共同起点计算 KL 或其他漂移指标。

2.3 是否需要独立 SFT 阶段#

“是否需要 Reference”和“是否需要 SFT”是两条独立轴。

  • DPO:原始流程通常从 SFT Policy 初始化,并复制为 Reference。Loss 本身可以作用于其他初始化,但弱 Base Model 往往缺少稳定的指令格式和目标域能力。
  • IPO:与 DPO 共享 Pairwise + Reference 训练结构,实践中通常也从 SFT/Instruction Checkpoint 开始。
  • KTO:原论文的标准形式常以 SFT 模型为 Reference,但实验显示,当预训练或指令模型已经足够强时可以跳过单独 SFT;这是一项有条件的经验结论,不是 KTO Loss 自动完成 SFT。[3]
  • ORPO:目标中显式包含 Chosen NLL,设计目的就是把 Domain Adaptation/SFT 与 Preference Alignment 合并为一次训练。
  • SimPO:Loss 不包含独立 Chosen NLL。原论文的 Base 设置先做 SFT,再做 SimPO;Instruct 设置则直接从现有指令模型开始。[5]

因此,若从同一个已经指令化的 Checkpoint 出发,ORPO 的“单阶段优势”会被部分提前消耗;若从同一个 Base Model 出发而只比较偏好阶段,DPO/IPO/SimPO 又会因缺少 SFT 而处于不符合其常见使用方式的劣势。公平实验需要同时报告“对齐阶段公平”和“完整流水线公平”。

2.4 序列对数概率求和与长度归一化平均#

定义回答 Token 数为 TyT_y,只在有效 Response Mask 上求和:

sθ(x,y)=t=1Tylogπθ(ytx,y<t).(10)s_\theta(x,y) =\sum_{t=1}^{T_y} \log\pi_\theta(y_t\mid x,y_{<t}). \tag{10}

再定义平均 Log Probability:

sˉθ(x,y)=sθ(x,y)Ty.(11)\bar s_\theta(x,y) =\frac{s_\theta(x,y)}{T_y}. \tag{11}

两者含义不同:

  • sθs_\theta 是整个序列概率的对数;
  • sˉθ\bar s_\theta 是每个有效回答 Token 的平均对数概率;
  • exp(sˉθ)\exp(\bar s_\theta) 是目标 Token 概率的几何平均,而不是完整序列事件概率。

标准 DPO、原始 IPO 与 KTO 使用未显式长度归一化的序列 Log-ratio;ORPO 论文先用平均 Log-likelihood 定义 Pθ(yx)=exp(sˉθ)P_\theta(y\mid x)=\exp(\bar s_\theta),再构造 Odds;SimPO 直接使用 sˉθ\bar s_\theta 作为隐式 Reward 的基础。[3–5]

这里按 IPO 原论文使用 Sequence Log-prob Sum。部分 TRL/CPO 版本曾对 IPO 使用 Completion Average Log-prob;复现时必须固定库版本并检查实际聚合方式,不能仅凭 Loss 名称判断。[12]

长度归一化不是“消除一切长度偏差”。它改变的是每个 Token 对序列分数的权重:求和会累积更多负项,平均则让长短回答具有相同的总序列权重。生成长度还受 EOS 概率、解码参数、训练数据长度分布、内容密度和评价器偏好影响。

2.5 Margin、正则化与偏好强度#

至少要区分四类“间隔”:

  1. 观测间隔:标注者认为两答案差多少;标准二元 Pairwise 标签通常不记录。
  2. 模型分数间隔:如 hθh_\thetasˉwsˉl\bar s_w-\bar s_l
  3. 目标间隔:IPO 的 1/(2τ)1/(2\tau)、SimPO 的 γ\gamma
  4. Reference 隐式间隔:DPO 的 Reference Log Probability 差会改变 Policy 原始概率差需要移动的方向和幅度。

还要区分:

  • 显式分布锚:损失直接依赖 πref\pi_{\mathrm{ref}}
  • 有限 Margin 锚:损失在某个有限间隔附近最小;
  • 行为克隆锚:Chosen NLL 持续拉高示范答案似然;
  • 优化过程锚:小学习率、有限 Epoch、Weight Decay、LoRA Rank 与 Early Stopping。

这些约束不可互换。一个 Reference-free 方法可以有很强的 Chosen NLL;一个 Reference-based 方法也可能在错误 Reference 或过强经验偏好下产生不理想策略。


3. DPO 作为比较基线#

同一 Log Probability 空间中的五种目标

3.1 DPO 标准损失回顾#

对一条 Pairwise 样本,定义:

aθ(x,y)=logπθ(yx)πref(yx)=sθ(x,y)sref(x,y).(12)a_\theta(x,y) =\log\frac{\pi_\theta(y\mid x)} {\pi_{\mathrm{ref}}(y\mid x)} =s_\theta(x,y)-s_{\mathrm{ref}}(x,y). \tag{12}

Chosen 与 Rejected 的 Reference-adjusted Margin 为:

hθ=aθ(x,yw)aθ(x,yl).(13)h_\theta =a_\theta(x,y_w)-a_\theta(x,y_l). \tag{13}

标准 DPO Loss:

LDPO=E(x,yw,yl)Dpair[logσ(βhθ)].(14)\mathcal L_{\mathrm{DPO}} =-\mathbb E_{(x,y_w,y_l)\sim\mathcal D_{\mathrm{pair}}} \left[ \log\sigma(\beta h_\theta) \right]. \tag{14}

这里的 πθ(yx)\pi_\theta(y\mid x) 是回答序列概率,Prompt Token 不进入 Loss,EOS 是否进入必须在所有方法中统一。工程实现常把 Chosen 与 Rejected 拼成 2B2B 条序列完成一次 Policy 前向,再对 Reference 做同样处理。

3.2 Policy/Reference Log-ratio#

把式(13)展开:

hθ=[sθ(x,yw)sθ(x,yl)][sref(x,yw)sref(x,yl)].(15)\begin{aligned} h_\theta =& \bigl[s_\theta(x,y_w)-s_\theta(x,y_l)\bigr]\\ &- \bigl[s_{\mathrm{ref}}(x,y_w)-s_{\mathrm{ref}}(x,y_l)\bigr]. \end{aligned} \tag{15}

因此 DPO 不直接要求:

sθ(x,yw)>sθ(x,yl).s_\theta(x,y_w)>s_\theta(x,y_l).

它要求的是 Policy 相对 Reference 对 Chosen/Rejected 的差异进一步向偏好方向移动。若 Reference 已经强烈偏好 Chosen,Policy 可以在仍然满足较高隐式 Reward Margin 的同时,对两个回答的绝对 Log Probability 发生复杂变化。

参数共享与 Softmax 归一化还意味着:最小化 DPO Loss 的梯度方向包含“提高 Chosen 相对分数”和“降低 Rejected 相对分数”,但一次更新后并不保证 Chosen 的绝对序列概率必然上升。Likelihood Displacement 正是需要单独监控的失效模式之一。[22]

3.3 β\beta 与隐式 KL 约束#

在式(1)的理论人口目标中,β\beta 是 KL Penalty 系数:

  • β\beta 越大,最优策略越接近 Reference;
  • β\beta 越小,同等奖励差引起的策略变化越大。

在实际 DPO Loss 中,β\beta 又直接缩放分类 Logit。单样本对 hh 的导数为:

DPOh=βσ(βh).(16)\frac{\partial\ell_{\mathrm{DPO}}}{\partial h} =-\beta\sigma(-\beta h). \tag{16}

初始 h=0h=0 时,导数为 β/2-\beta/2;增大 β\beta 会放大初始局部梯度,却也使正间隔样本更快进入饱和区。最终漂移还与学习率、Epoch、Batch、模型容量和数据噪声耦合,不能把有限训练中的 β\beta 当成一个保证实现某个 KL 数值的控制器。

此外,DPO 训练时通常不显式计算完整:

DKL(πθπref).D_{\mathrm{KL}}(\pi_\theta\Vert\pi_{\mathrm{ref}}).

Reference Log-ratio 是从理论换元进入 Pairwise Loss 的;它不是每个 Batch 上对 Policy 分布完整积分得到的硬 KL 预算。

3.4 DPO 的计算与数据要求#

每条 Pairwise 样本逻辑上需要四个序列分数:

模型ChosenRejected需要梯度
Policy πθ\pi_\thetasθ,ws_{\theta,w}sθ,ls_{\theta,l}
Reference πref\pi_{\mathrm{ref}}sref,ws_{\mathrm{ref},w}sref,ls_{\mathrm{ref},l}

若 Reference Log Probability 已预计算,训练 Step 只需 Policy 为两条回答评分;若未缓存,则还要运行冻结 Reference。逻辑序列数不等于框架 API 的 Forward Call 数:Chosen/Rejected 可以 Batch 拼接,一次 Forward Call 处理两倍序列;Reference 也可独立分块以降低峰值显存。

DPO 的数据要求包括:

  • 同一 Prompt 下的 Chosen/Rejected;
  • 统一 Chat Template 与截断;
  • 有效 Response Token Mask;
  • 训练起点与 Reference 的明确版本;
  • 尽可能匹配目标 Policy 区域的候选回答。

只保存最终 Policy 权重而不保存 Reference 版本、预计算 Log-prob、Tokenizer 与数据血缘,会使实验难以复现。

3.5 后续变体的统一记号#

后文使用以下统一记号:

sθ,j=sθ(x,yj),sˉθ,j=sθ(x,yj)Tj,aθ,j=sθ,jsref,j,hθ=aθ,waθ,l,gθ=sˉθ,wsˉθ,l,(17)\begin{aligned} s_{\theta,j} &=s_\theta(x,y_j),\\ \bar s_{\theta,j} &=\frac{s_\theta(x,y_j)}{T_j},\\ a_{\theta,j} &=s_{\theta,j}-s_{\mathrm{ref},j},\\ h_\theta &=a_{\theta,w}-a_{\theta,l},\\ g_\theta &=\bar s_{\theta,w}-\bar s_{\theta,l}, \end{aligned} \tag{17}

其中 j{w,l}j\in\{w,l\}

对 ORPO 再定义:

pθ,j=exp(sˉθ,j),oθ,j=pθ,j1pθ,j.(18)p_{\theta,j} =\exp(\bar s_{\theta,j}),\qquad o_{\theta,j} =\frac{p_{\theta,j}}{1-p_{\theta,j}}. \tag{18}

pθ,jp_{\theta,j} 是目标 Token 概率的几何平均。为了忠实于 ORPO 论文记法,后文称其为“序列评分概率”,但不把它误写为整个回答事件的原始概率 exp(sθ,j)\exp(s_{\theta,j})


4. IPO:缓解偏好概率假设与过拟合#

DPO 与 IPO 的损失梯度几何

4.1 Identity Preference Optimization 的出发点#

IPO 出自更一般的 Ψ\PsiPO 理论框架。该工作指出,传统 RLHF 与 DPO 常把 Pairwise Preference 先等价成 Pointwise Reward,再优化该 Reward;DPO 跳过了显式 Reward Model 的泛化近似,但仍依赖从偏好概率到标量 Reward 的特定映射。[2]

本文沿用社区中常见的 “Identity Preference Optimization” 称呼以匹配章节标题;原论文更严格的写法是 “IPO: Ψ\PsiPO with Identity Mapping”,并未在正文中把 IPO 正式展开为一个固定全称。

对于经验数据,一对回答经常只被观察一次,经验胜率便是 1100。在 Bradley–Terry 模型中:

σ1(1)=+,σ1(0)=.\sigma^{-1}(1)=+\infty,\qquad \sigma^{-1}(0)=-\infty.

DPO 等价使用 Logit Link Ψ(p)=logp1p\Psi(p)=\log\frac{p}{1-p}。当经验偏好确定时,这个映射无界,理想 Policy 会把 Loser 概率推向零,KL 正则强度无法按预期保持有限控制。

IPO 的核心不是在 DPO Loss 后“再加一个正则项”,而是把 Ψ\Psi 选成 Identity:

Ψ(p)=p.\Psi(p)=p.

由于偏好概率位于 [0,1][0,1],对应效用信号有界,最终得到一个具有有限目标间隔的回归问题。

4.2 从非参数偏好建模到 IPO 目标#

μ(x)\mu(\cdot\mid x) 是收集比较候选的行为分布,真实偏好概率为:

p(yyx).p^*(y\succ y'\mid x).

Ψ\PsiPO 直接优化相对于随机对手 yμy'\sim\mu 的偏好效用:

maxπEx,  yπ,  yμ[Ψ(p(yyx))]τExρ[DKL ⁣(π(x)πref(x))].(19)\max_{\pi} \mathbb E_{x,\;y\sim\pi,\;y'\sim\mu} \left[ \Psi\bigl(p^*(y\succ y'\mid x)\bigr) \right] -\tau\, \mathbb E_{x\sim\rho} \left[ D_{\mathrm{KL}}\!\left( \pi(\cdot\mid x)\Vert\pi_{\mathrm{ref}}(\cdot\mid x) \right) \right]. \tag{19}

Ψ\Psi 为 Identity,单个回答的效用是其击败 μ\mu 中随机回答的概率,而不是先假设存在一个 Bradley–Terry Pointwise Reward。原论文把正则化系数记作 τ\tau;许多工程库把同一参数命名为 beta。本文在 IPO 小节保留 τ\tau,避免与 DPO 和 SimPO 的 β\beta 误作同值比较。[2][12]

原论文关于 Policy-space 解的结论还要求候选行为分布与 Reference 在比较动作上具有相容支持;实践中通常由共同 Full-support 的语言模型分布满足。该条件不意味着神经网络参数化后的目标具有凸性。

定义:

hπ(y,y,x)=logπ(yx)πref(yx)π(yx)πref(yx).(20)h_\pi(y,y',x) = \log \frac{ \pi(y\mid x)\pi_{\mathrm{ref}}(y'\mid x) }{ \pi(y'\mid x)\pi_{\mathrm{ref}}(y\mid x) }. \tag{20}

对 Chosen/Rejected,式(20)正是统一记号中的 hθh_\theta

4.3 平方损失与目标间隔#

IPO 原论文从对称采样损失推导出,忽略不影响最优点的正比例系数后:

LIPO=E(x,yw,yl)[(hθ12τ)2].(21)\mathcal L_{\mathrm{IPO}} = \mathbb E_{(x,y_w,y_l)} \left[ \left( h_\theta-\frac{1}{2\tau} \right)^2 \right]. \tag{21}

原文还可写成:

τ(hθ12τ)2,(22)\tau \left( h_\theta-\frac{1}{2\tau} \right)^2, \tag{22}

外部正因子 τ\tau 不改变固定 τ\tau 下的最优间隔,但会改变与学习率共同作用的梯度尺度。

式(21)的最小点是:

hθ=12τ.(23)h_\theta^*=\frac{1}{2\tau}. \tag{23}

因此:

  • τ\tau 越大,目标间隔越小,Policy 越接近 Reference;
  • τ\tau 越小,目标间隔越大,偏好更新更激进;
  • 即使训练标签是确定性的,目标也不是 ++\infty

需要准确表述:IPO 的目标间隔有限,并不意味着平方损失本身有界。若 hθh_\theta 远离目标,平方损失仍会变大。

4.4 IPO 与 DPO 的梯度行为对比#

对统一间隔 hh

DPOh=βσ(βh),(24)\frac{\partial\ell_{\mathrm{DPO}}}{\partial h} =-\beta\sigma(-\beta h), \tag{24}IPOh=2(h12τ).(25)\frac{\partial\ell_{\mathrm{IPO}}}{\partial h} =2\left(h-\frac{1}{2\tau}\right). \tag{25}

二者行为不同:

区域DPOIPO
h<0h<0强烈推动 hh 增大推动 hh 朝有限目标增大
0<h<1/(2τ)0<h<1/(2\tau)继续推动 hh 增大推动 hh 增大
h>1/(2τ)h>1/(2\tau)仍推动 hh 增大,只是逐渐饱和梯度反向,主动把 hh 拉回目标
有限最优点

IPO 因而不是简单的“更弱 DPO”。它允许一个已经超出目标的偏好间隔被缩小,即使该样本标签仍然是 Chosen 胜过 Rejected。这种回拉正是稳定来源,也可能在真实偏好极强时造成欠拟合。

对 Policy 参数的梯度仍通过:

θhθ=θsθ,wθsθ,l(26)\nabla_\theta h_\theta = \nabla_\theta s_{\theta,w} -\nabla_\theta s_{\theta,l} \tag{26}

传播;Reference 仅提供常数,不接收梯度。

4.5 IPO 的适用场景与局限#

IPO 更适合以下情形:

  • 每个 Pair 只标一次,经验标签近似确定性;
  • DPO 训练继续降低 Loss,但生成质量、KL 或通用能力开始恶化;
  • 希望把 Policy/Reference Gap 锚定在有限范围;
  • 数据量有限,Early Stopping 选择不稳定;
  • 仍希望保留 Reference-based 的训练结构。

其局限包括:

  1. 仍需 Pairwise 与 Reference:它没有解决标注形态和 Reference 成本。
  2. 统一目标间隔:标准式(21)不区分“略好”和“压倒性更好”。
  3. 平方损失对离群 Gap 敏感:实现错误、异常长度或数值下溢会产生大梯度。
  4. 理论采样条件:从 Population Objective 到简化 Empirical Loss 利用了成对候选来自共同比较分布及对称构造;实际偏好数据的采样偏差仍需关注。
  5. 参数命名混乱:论文的 τ\tau 在库中常叫 beta,复制 DPO 的数值并不代表正则强度等价。

IPO 论文对自由有限动作 Logit 参数化给出的凸性/唯一性结论,也不能直接外推为神经网络参数 θ\theta 上的凸优化保证。IPO 解决的是 DPO 的一种理论过拟合机制,不是对所有噪声、分布外覆盖和模型退化的通用保险。


5. KTO:使用非配对好坏反馈#

KTO 单样本分支与 Reference Point

5.1 Desirable 与 Undesirable 单样本标签#

KTO 的标准数据单元不是偏好三元组,而是:

(x,y,c),c{D,U}.(27)(x,y,c),\qquad c\in\{\mathrm D,\mathrm U\}. \tag{27}

其语义是:

  • c=Dc=\mathrm D:回答 yy 对 Prompt xx 是 Desirable;
  • c=Uc=\mathrm U:回答 yy 对 Prompt xx 是 Undesirable。

同一 Mini-batch 中的正负回答不需要共享 Prompt,也不要求知道某个 Desirable 回答具体击败了哪个 Undesirable 回答。这使 KTO 能利用点赞/点踩、接受/拒绝、重试、审核通过/不通过等生产反馈。

但 Unary 标签必须有明确的标注口径。例如:

  • “无事实错误”是否足以成为 Desirable,还是还必须完整、有帮助?
  • 用户重试是因为答案错误、太长、格式不对,还是用户改变了问题?
  • 安全拒绝在有害请求上是 Desirable,在无害请求上是否仍然如此?

如果阈值随用户、任务或时间漂移,KTO 会把不同的绝对标准压进同一个二元标签。应保留标注来源、任务类型和置信度,并在 Prompt Group 层面切分训练/验证集。

5.2 前景理论视角#

KTO 的全称是 Kahneman–Tversky Optimization。它借用前景理论中的三个概念来设计 Loss:[3][7]

  1. Reference Point:人对结果的感受取决于相对某个基线的收益或损失;
  2. Diminishing Sensitivity:离 Reference Point 越远,边际感受逐渐饱和;
  3. Loss/Gain Weighting:Desirable 与 Undesirable 可以使用不同权重。

KTO 论文并没有直接使用经典前景理论中的幂函数,因为其指数会带来数值不稳定;它改用 Sigmoid Value Function。设单回答的 Policy/Reference Log-ratio 为:

aθ(x,y)=logπθ(yx)πref(yx).(28)a_\theta(x,y) = \log\frac{\pi_\theta(y\mid x)} {\pi_{\mathrm{ref}}(y\mid x)}. \tag{28}

与 DPO 不同,KTO 不需要另一个同 Prompt 回答来构造样本内差值。理论上,它把 aθ(x,y)a_\theta(x,y) 与 Prompt-specific 的 z0(x)z_0(x) 比较;工程实现再用共享的 Micro-batch 估计 z^0,B\hat z_{0,\mathcal B} 近似它。

这里的“前景理论”应理解为 Loss 的归纳偏置来源,而不是声称一个统一 Sigmoid 已完整拟合真实人类认知。KTO 论文也强调不存在对所有设置普遍最优的 Human-aware Loss。

5.3 Reference Point 与 KL 基线#

标准 KTO 定义:

z0(x)=DKL(πθ(x)πref(x)).(29)z_0(x) = D_{\mathrm{KL}} \left( \pi_\theta(\cdot\mid x) \Vert \pi_{\mathrm{ref}}(\cdot\mid x) \right). \tag{29}

于是单回答相对 Reference Point 的收益为:

uθ(x,y)=aθ(x,y)z0(x).(30)u_\theta(x,y) =a_\theta(x,y)-z_0(x). \tag{30}

式(29)的 z0(x)z_0(x) 是理论上随 Prompt 变化的 KL Reference Point。完整计算需要从当前 Policy 采样并对回答空间求期望,离线训练中代价很高。原始 KTO 使用同一 Micro-batch 的错配回答构造一个供整批样本共享、方便但有偏的标量估计。若 B={(xi,yi)}i=1m\mathcal B=\{(x_i,y_i)\}_{i=1}^{m},且 j=(i+1)modmj=(i+1)\bmod m

z^0,B=max(0,  1mi=1mlogπθ(yjxi)πref(yjxi)).(31)\hat z_{0,\mathcal B} = \max\left( 0,\; \frac{1}{m} \sum_{i=1}^{m} \log \frac{ \pi_\theta(y_j\mid x_i) }{ \pi_{\mathrm{ref}}(y_j\mid x_i) } \right). \tag{31}

也就是把别的样本回答 yjy_j 接到当前 Prompt xix_i 后评分。该估计有三个关键工程性质:

  • 需要额外的错配序列前向评分;
  • 通过 max(0,)\max(0,\cdot) 限制为非负,会引入偏差;
  • 训练时对共享的 z^0,B\hat z_{0,\mathcal B} 使用 Stop-gradient,不通过它反向传播。

KTO 论文还指出:若同一批 Desirable 数据已经用于 SFT,且 SFT 模型就是 Reference,z^0,B\hat z_{0,\mathcal B} 可能很快接近零;某些设置可把它置零以省计算。但这是一种条件化简,不应把标准 KTO 写成“天然不需要 Reference”。论文中的无 Reference KTO 是消融变体,表现弱于标准形式。[3]

工程复现还应固定实现版本。作者的 HALOs 代码与 TRL 的 KTO Trainer 都支持标准 KTO,但缓存、PEFT 和 Batch 估计细节可能随版本变化。[13][16]

5.4 KTO 损失的分支结构#

令:

u=aθ(x,y)sg(z^0,B),(32)u=a_\theta(x,y)-\operatorname{sg}(\hat z_{0,\mathcal B}), \tag{32}

其中 sg\operatorname{sg} 表示 Stop-gradient。KTO 单样本损失可展开为:

KTO(x,y,c)={λDσ(βu),c=D,λUσ(βu),c=U.(33)\ell_{\mathrm{KTO}}(x,y,c) = \begin{cases} \lambda_D\,\sigma(-\beta u), & c=\mathrm D,\\[4pt] \lambda_U\,\sigma(\beta u), & c=\mathrm U. \end{cases} \tag{33}

这与原论文的

LKTO=E[λyv(x,y)]\mathcal L_{\mathrm{KTO}} =\mathbb E[\lambda_y-v(x,y)]

完全等价,其中 Desirable 分支的 v=λDσ(βu)v=\lambda_D\sigma(\beta u),Undesirable 分支的 v=λUσ(βu)v=\lambda_U\sigma(-\beta u)

aθa_\theta 的导数为:

aθ={βλDσ(βu)σ(βu),c=D,βλUσ(βu)σ(βu),c=U.(34)\frac{\partial\ell}{\partial a_\theta} = \begin{cases} -\beta\lambda_D \sigma(\beta u)\sigma(-\beta u), & c=\mathrm D,\\[4pt] \phantom{-}\beta\lambda_U \sigma(\beta u)\sigma(-\beta u), & c=\mathrm U. \end{cases} \tag{34}

所以最小化 Loss 会:

  • 提高 Desirable 回答的 Policy/Reference Log-ratio;
  • 降低 Undesirable 回答的 Policy/Reference Log-ratio;
  • 在远离 Reference Point 后逐渐饱和;
  • 通过 λD,λU\lambda_D,\lambda_U 调整正负类贡献。

β\beta 在 KTO 中控制 Value Function 的饱和和风险敏感性。它与 DPO 的 β\beta 有相似的“变化幅度”效应,但理论来源不同;不能把同一个数值直接解释为相同 KL 强度。

5.5 KTO 与 Pairwise Preference Learning 的边界#

KTO 的优势不是“用一半数据达到 Pairwise 的全部信息”。Unary 和 Pairwise 回答的是不同问题:

问题PairwiseUnary
监督语义yay_a 是否优于 yby_byy 是否跨过可接受阈值
是否需要同 Prompt 对手
两个都好/都坏仍可给相对顺序,但绝对质量未知可给相同标签
标注基线局部比较需要绝对口径
典型方法DPO / IPO / ORPO / SimPOKTO

NN 条 Pairwise 数据拆出 2N2N 条 Unary Row 时,Row 数会翻倍,但两种表示仍包含同样的 2N2N 个目标回答;在各回答只曝光一次的口径下,唯一回答数与目标 Response Token 数并不会翻倍。KTO 也没有因此获得 2N2N 个独立人工判断。报告数据规模时应同时写:

  • 原始 Prompt 数;
  • 原始人工判断数;
  • 唯一回答数;
  • 展开后的训练 Row 数;
  • 有效 Response Token 数。

KTO 适合原生二元反馈丰富、Pairing 困难或类别极不平衡的场景。若任务核心是“两个都合格时选更优者”,Pairwise 方法保留了更直接的相对信息。二者不是单纯的强弱替代。


6. ORPO:合并指令学习与偏好学习#

ORPO 联合 SFT 与 Odds Ratio

6.1 Reference-free 设计动机#

ORPO 的出发点是:普通 SFT 只最大化 Chosen Token 的似然,却没有显式惩罚同一 Prompt 下的 Rejected 风格。由于两种回答共享主题、词汇和格式,只用 Chosen 做 SFT 时,Rejected 的 Log Probability 也可能随 Domain Adaptation 一起上升。[4]

ORPO 因而把两个目标放在同一次训练中:

  1. 用 Chosen NLL 完成指令学习或目标域适配;
  2. 用 Odds Ratio Preference 项区分 Chosen 与 Rejected。

它不需要固定 Reference Model,也不需要“先 SFT 一轮、再启动一个偏好 Trainer”的独立第二阶段。准确说法是:

ORPO 把 SFT 写进了偏好目标,而不是证明 SFT 不再重要。

若起点已经是成熟 Instruct Model,Chosen NLL 仍会继续提供行为克隆信号;若起点是 Base Model,它承担的 Domain Adaptation 作用更明显。

6.2 SFT Negative Log-likelihood 项#

使用统一的平均 Log Probability:

sˉθ,w=1Twt=1Twlogπθ(yw,tx,yw,<t).(35)\bar s_{\theta,w} =\frac{1}{T_w} \sum_{t=1}^{T_w} \log\pi_\theta(y_{w,t}\mid x,y_{w,<t}). \tag{35}

ORPO 的 Chosen SFT 项可写为:

LSFT=sˉθ,w.(36)\mathcal L_{\mathrm{SFT}} =-\bar s_{\theta,w}. \tag{36}

Per-sequence Mean 与“先汇总整个 Batch 的有效 Token、再做 Global-token Mean”是两个不同目标:后者会按长度加权样本,并改变 SFT 项相对 OR 项的有效 λO\lambda_O。复现式(36)应先对每条回答求平均,再对 Batch 求平均;若采用 Global-token Mean,应明确标为实现变体并重新搜索 λO\lambda_O。还需要避免三类实现偏差:

  • 把 Prompt Token 也纳入 Chosen NLL;
  • Chosen 与 Rejected 使用不同截断上限;
  • Pairwise Preference 项按序列平均,而 SFT 项按 Batch Row 平均,却没有记录 Reduction 差异。

ORPO 的 Chosen NLL 意味着,即使 Preference 项已经对一个 Easy Pair 饱和,模型仍会继续学习复现 Chosen。

6.3 Odds Ratio Preference 项#

ORPO 先定义几何平均 Token 概率:

pθ,j=exp(sˉθ,j),j{w,l}.(37)p_{\theta,j} =\exp(\bar s_{\theta,j}), \qquad j\in\{w,l\}. \tag{37}

再定义 Odds:

oθ,j=pθ,j1pθ,j,(38)o_{\theta,j} =\frac{p_{\theta,j}}{1-p_{\theta,j}}, \tag{38}

以及 Chosen 对 Rejected 的 Log Odds Ratio:

ΔOR=logoθ,wlogoθ,l.(39)\Delta_{\mathrm{OR}} =\log o_{\theta,w} -\log o_{\theta,l}. \tag{39}

Preference Loss 为:

LOR=logσ(ΔOR).(40)\mathcal L_{\mathrm{OR}} =-\log\sigma(\Delta_{\mathrm{OR}}). \tag{40}

由于:

logoθ=sˉθlog(1exp(sˉθ)),(41)\log o_\theta =\bar s_\theta-\log(1-\exp(\bar s_\theta)), \tag{41}

实现时应使用数值稳定的 log1mexp 一类运算,不能先在低精度中直接计算 1exp(sˉ)1-\exp(\bar s)

还要注意概念边界:exp(sˉ)\exp(\bar s) 是每 Token 目标概率的几何平均。ORPO 论文把它用于序列 Odds 构造,但它不是“生成完整字符串 yy 而不是其他所有字符串”的严格事件概率。因此,Odds Ratio 是一种有效的序列评分变换和归纳偏置,不应被过度解释成完整语言分布上的精确二项事件 Odds。

6.4 联合目标与权重系数#

ORPO 总损失为:

LORPO=E(x,yw,yl)[LSFT+λLOR].(42)\mathcal L_{\mathrm{ORPO}} = \mathbb E_{(x,y_w,y_l)} \left[ \mathcal L_{\mathrm{SFT}} +\lambda\mathcal L_{\mathrm{OR}} \right]. \tag{42}

λ>0\lambda>0 平衡两类更新:

  • λ\lambda 太小:训练接近 Chosen-only SFT,Rejected 区分不足;
  • λ\lambda 太大:Preference 梯度可能压过 Domain Adaptation,损害流畅性或通用能力;
  • 合理 λ\lambda:Chosen NLL 提供绝对似然锚,Odds Ratio 提供相对偏好。

原始 ORPO 没有 DPO 式 β\beta,也没有 SimPO 式显式 γ\gamma。不同代码库可能把 ORPO 权重字段命名为 betaalphalambda;配置字段名不等于论文中的 DPO 温度或 KL 系数,必须以实现公式为准。[14][17]

Preference 项对平均 Log Probability 的梯度包含:

logoθsˉθ=11pθ.(43)\frac{\partial\log o_\theta}{\partial\bar s_\theta} =\frac{1}{1-p_\theta}. \tag{43}

它会根据 pθp_\theta 非线性放大 Chosen/Rejected 的对比梯度,而 Chosen 还额外接收 NLL 梯度。

6.5 单阶段训练的收益与风险#

ORPO 的主要收益是:

  • 无需 Reference 前向和权重显存;
  • 无需维护独立 SFT 与 Preference Checkpoint 交接;
  • 同一 Pair 同时提供 Chosen 模仿和 Rejected 区分;
  • 可以从 Base Model 开始进行 Preference-aware Instruction Tuning;
  • 与标准因果语言模型训练框架、LoRA 和 QLoRA 兼容。

风险包括:

  1. 目标耦合:SFT 与 Preference 不再能分别选择数据、Epoch 和停止点。
  2. Chosen 质量要求更高:Chosen NLL 会绝对模仿其中的事实错误、模板噪声和冗长风格。
  3. 无固定分布锚:初始化提供先验,但 Loss 不直接惩罚偏离某个 Reference。
  4. Reduction 敏感:序列平均、Token 平均和 Batch 平均的组合会改变 λ\lambda 的实际尺度。
  5. Odds 数值与梯度非线性pp 接近边界时需稳定实现,且不同难度 Pair 的权重可能变化很大。

因此,ORPO 的单阶段不能只按“少一个阶段”评价。若它使用的 Chosen Token 数远多于 DPO 的 SFT+DPO 基线,或总训练 FLOPs 不相等,结果同时混合了目标设计和额外行为克隆预算。


7. SimPO:长度归一化与目标间隔#

SimPO 长度归一化与 Soft Margin

7.1 Reference-free 偏好优化#

SimPO 认为,DPO 的隐式 Reward 可选择如下 Canonical Representative:

rDPO(x,y)=βlogπθ(yx)πref(yx)(44)r_{\mathrm{DPO}}(x,y) =\beta \log\frac{\pi_\theta(y\mid x)} {\pi_{\mathrm{ref}}(y\mid x)} \tag{44}

更一般的解析形式还包含只依赖 Prompt 的加性项 +βlogZ(x)+\beta\log Z(x);它在同 Prompt 偏好差中抵消,因此式(44)足以作为代表元。该 Reward 与推理时只由 Policy 自身进行生成的评分方式存在差异。DPO Reward 排序正确,不保证 Policy 自身的 Average Log Probability 也按同样顺序排列。

SimPO 直接定义:

rSimPO(x,y)=βTylogπθ(yx)=βsˉθ(x,y).(45)r_{\mathrm{SimPO}}(x,y) = \frac{\beta}{T_y} \log\pi_\theta(y\mid x) =\beta\bar s_\theta(x,y). \tag{45}

它完全从训练 Loss 中移除 Reference,因此:

  • 不需要 Reference 权重常驻;
  • 不需要 Reference Log-prob 前向或缓存;
  • 隐式 Reward 与 Policy 自身 Average Log Probability 同序。

但 SimPO 不是从任意 Base Model 直接完成全部对齐的 Loss。原论文 Base 实验先做 SFT,Instruct 实验从现有指令模型开始;Reference-free 描述的是偏好阶段。[5]

7.2 Average Log Probability#

SimPO 使用:

sˉθ(x,y)=1Tyt=1Tylogπθ(ytx,y<t).(46)\bar s_\theta(x,y) =\frac{1}{T_y} \sum_{t=1}^{T_y} \log\pi_\theta(y_t\mid x,y_{<t}). \tag{46}

与序列求和相比,每个回答对 Pairwise 分数的总尺度不再随 Token 数线性增长。对某个 Token Log Probability 的直接导数带有:

sˉθlogπθ,t=1Ty.(47)\frac{\partial\bar s_\theta}{\partial\log\pi_{\theta,t}} =\frac{1}{T_y}. \tag{47}

这意味着:

  • 长回答的每个 Token 获得更小的直接权重;
  • 整条长回答与短回答在序列评分层面各占一个平均值;
  • 单纯增加低质量 Token 不会因为“多累加几项”直接提高 Reward。

Average Log Probability 并不等同于实际解码器的唯一排序标准。Sampling、Temperature、Top-pp、EOS 与 Prefix 条件共同决定生成分布;Beam Search 还可能使用不同 Length Penalty。SimPO 所谓“与生成对齐”,应理解为 Reward 只依赖 Policy 自身且采用常用长度归一化似然指标,而不是证明它与所有解码算法完全等价。

7.3 Target Reward Margin#

SimPO 在 Bradley–Terry Logit 中加入 γ>0\gamma>0

P(ywylx)=σ(rSimPO(x,yw)rSimPO(x,yl)γ).(48)P(y_w\succ y_l\mid x) = \sigma\left( r_{\mathrm{SimPO}}(x,y_w) -r_{\mathrm{SimPO}}(x,y_l) -\gamma \right). \tag{48}

代入式(45):

LSimPO=E[logσ(βgθγ)],(49)\mathcal L_{\mathrm{SimPO}} =-\mathbb E \left[ \log\sigma \left( \beta g_\theta-\gamma \right) \right], \tag{49}

其中:

gθ=sˉθ,wsˉθ,l.g_\theta =\bar s_{\theta,w}-\bar s_{\theta,l}.

γ\gamma 位于 Reward/Logit 空间。把判别边界写成 Average Log Probability Gap:

gθ>γβ.(50)g_\theta>\frac{\gamma}{\beta}. \tag{50}

因此官方 SimPO 仓库后来使用 gamma_beta_ratio 表示 γ/β\gamma/\beta,复制配置时必须确认字段存的是论文 γ\gamma 还是比值。[15]

“Target Margin”也不是 IPO 式有限最优点。SimPO 的 Log-sigmoid 在 βgγ+\beta g-\gamma\rightarrow+\infty 时继续下降;γ\gamma 只是把进入高置信区所需的间隔向右移动。IPO 超过目标会反向拉回,SimPO 超过 γ/β\gamma/\beta 后仍继续鼓励增大间隔,只是梯度逐渐饱和。

7.4 SimPO 损失与 DPO 损失对照#

两者都使用 Pairwise Log-sigmoid:

LDPO=Elogσ(β[(sθ,wsref,w)(sθ,lsref,l)]),(51)\mathcal L_{\mathrm{DPO}} =-\mathbb E\log\sigma \left( \beta[ (s_{\theta,w}-s_{\mathrm{ref},w}) -(s_{\theta,l}-s_{\mathrm{ref},l}) ] \right), \tag{51}LSimPO=Elogσ(β[sˉθ,wsˉθ,l]γ).(52)\mathcal L_{\mathrm{SimPO}} =-\mathbb E\log\sigma \left( \beta[ \bar s_{\theta,w}-\bar s_{\theta,l} ] -\gamma \right). \tag{52}

核心差异:

维度DPOSimPO
序列分数Policy/Reference Log-ratio 的求和Policy Average Log Probability
Reference需要不需要
长度处理Log-ratio 隐式抵消部分趋势显式除以回答长度
显式 Margin无固定 γ\gammaγ\gamma
分布锚固定 Reference初始化、数据和优化过程
标准 Loss 的有限最优 Gap

SimPO 论文进一步指出,DPO 的 Reference 项可形成样本相关的隐式间隔,因此简单地把 Average Log Probability 和 γ\gamma 移植到 DPO 上不保证普遍收益。方法组件不是可随意独立叠加的“技巧包”。[5]

7.5 长度偏差改善与潜在代价#

SimPO 原论文消融中,移除 Length Normalization 会产生更长、重复且低质量的回答;加入 Average Log Probability 后,训练分数与长度的相关性下降,并在其测试设置中没有显著增加生成长度。[5]

但“改善”应保留实验边界:

  • 数据若偏好冗长 Chosen,模型仍会学习冗长风格;
  • Judge 若偏好长答案,普通 Win Rate 仍会奖励长度;
  • 平均化会让每个长回答 Token 的直接梯度权重变小;
  • 一句关键错误与多个普通正确 Token 如何权衡,仍由自回归似然决定;
  • γ\gamma 太大可能迫使模型牺牲 Chosen 绝对 Log Probability,论文观察到生成质量先升后降,极端时会退化;
  • Reference-free 没有显式阻止通用能力或安全行为漂移。

所以评估 SimPO 必须同时报告普通 Win Rate、Length-controlled Win Rate、生成长度分布、重复率、Common-anchor KL、Chosen/Rejected Average Log Probability 和能力回归,不能只看训练 Reward Accuracy。


8. 四类方法的公式级横向比较#

本章标题中的“四类方法”指四个 DPO 变体;公式表实际包含 DPO 基线 + IPO、KTO、ORPO、SimPO,共五种目标。为了避免同名参数造成误解,以下使用方法下标:

βD,τI,βK,λO,(βS,γS).(53)\beta_D,\quad \tau_I,\quad \beta_K,\quad \lambda_O,\quad (\beta_S,\gamma_S). \tag{53}

8.1 优化目标统一展开#

在式(17)的统一记号下,五种损失为:

DPO:

LD=Elogσ(βDhθ)(54)\boxed{ \mathcal L_D =-\mathbb E\log\sigma(\beta_D h_\theta) } \tag{54}

IPO:

LI=E(hθ12τI)2(55)\boxed{ \mathcal L_I =\mathbb E \left( h_\theta-\frac{1}{2\tau_I} \right)^2 } \tag{55}

式(55)省略了原论文不改变最优点的外部正因子 τI\tau_I

KTO:

LK=E{λDσ[βK(aθsg(z^0,B))],c=D,λUσ[βK(aθsg(z^0,B))],c=U.(56)\boxed{ \mathcal L_K = \mathbb E \begin{cases} \lambda_D\sigma[-\beta_K(a_\theta-\operatorname{sg}(\hat z_{0,\mathcal B}))], &c=\mathrm D,\\ \lambda_U\sigma[\phantom{-}\beta_K(a_\theta-\operatorname{sg}(\hat z_{0,\mathcal B}))], &c=\mathrm U. \end{cases} } \tag{56}

ORPO:

LO=E[sˉθ,wλOlogσ(logoθ,wlogoθ,l)](57)\boxed{ \mathcal L_O = \mathbb E \left[ -\bar s_{\theta,w} -\lambda_O \log\sigma \left( \log o_{\theta,w}-\log o_{\theta,l} \right) \right] } \tag{57}

其中:

oθ,j=exp(sˉθ,j)1exp(sˉθ,j).o_{\theta,j} = \frac{\exp(\bar s_{\theta,j})} {1-\exp(\bar s_{\theta,j})}.

SimPO:

LS=Elogσ[βS(sˉθ,wsˉθ,l)γS](58)\boxed{ \mathcal L_S =-\mathbb E \log\sigma \left[ \beta_S (\bar s_{\theta,w}-\bar s_{\theta,l}) -\gamma_S \right] } \tag{58}

一段统一的概念伪代码如下:

输入 Pairwise: x, y_w, y_l
输入 Unary: x, y, label
计算 Policy Response Token Log-prob
if DPO:
再计算或读取 Reference(y_w, y_l)
loss = -logsigmoid(beta_D * reference_adjusted_gap)
elif IPO:
再计算或读取 Reference(y_w, y_l)
loss = (reference_adjusted_gap - 1 / (2 * tau_I))^2
elif KTO:
再计算或读取 Reference(y)
用错配 Batch 估计 stop_gradient(z0)
loss = desirable_branch 或 undesirable_branch
elif ORPO:
loss = chosen_NLL + lambda_O * log_odds_preference
elif SimPO:
loss = -logsigmoid(beta_S * average_logp_gap - gamma_S)
只更新 Policy 参数

这五个 Loss 的原始数值不在同一尺度。用“验证集 Loss 最低”横向选方法没有意义;应在各自方法内部用于收敛诊断,再用共同生成指标比较。

8.2 正负样本的梯度方向#

定义 DPO/IPO 的共享参数方向:

vθ=θsθ,wθsθ,l.(59)v_\theta = \nabla_\theta s_{\theta,w} -\nabla_\theta s_{\theta,l}. \tag{59}

DPO:

θD=βDσ(βDhθ)vθ.(60)\nabla_\theta\ell_D =-\beta_D \sigma(-\beta_Dh_\theta) v_\theta. \tag{60}

IPO 若使用原论文外部缩放:

θIpaper=(2τIhθ1)vθ.(61)\nabla_\theta\ell_I^{\mathrm{paper}} = (2\tau_Ih_\theta-1)v_\theta. \tag{61}

若实现省略外部 τI\tau_I,梯度变为 2(hθ1/(2τI))vθ2(h_\theta-1/(2\tau_I))v_\theta。两者最优点相同,梯度尺度不同。

KTO 对单回答方向:

θK={wDθsθ(x,y),c=D,wUθsθ(x,y),c=U,(62)\nabla_\theta\ell_K = \begin{cases} -w_D\nabla_\theta s_\theta(x,y), &c=\mathrm D,\\ \phantom{-}w_U\nabla_\theta s_\theta(x,y), &c=\mathrm U, \end{cases} \tag{62}

其中:

wc=βKλcσ(βKu)σ(βKu)>0.(63)w_c =\beta_K\lambda_c \sigma(\beta_Ku)\sigma(-\beta_Ku)>0. \tag{63}

ORPO 令:

dO=logoθ,wlogoθ,l,wO=σ(dO).d_O =\log o_{\theta,w}-\log o_{\theta,l}, \qquad w_O=\sigma(-d_O).

则 Preference 项对平均 Log Probability 的偏导为:

ORsˉθ,w=wO1pθ,w,ORsˉθ,l=wO1pθ,l.(64)\frac{\partial\ell_{\mathrm{OR}}} {\partial\bar s_{\theta,w}} =-\frac{w_O}{1-p_{\theta,w}}, \qquad \frac{\partial\ell_{\mathrm{OR}}} {\partial\bar s_{\theta,l}} =\frac{w_O}{1-p_{\theta,l}}. \tag{64}

Chosen 还额外接收:

SFTsˉθ,w=1.(65)\frac{\partial\ell_{\mathrm{SFT}}} {\partial\bar s_{\theta,w}}=-1. \tag{65}

SimPO 令:

dS=βSgθγS,wS=σ(dS).d_S=\beta_Sg_\theta-\gamma_S, \qquad w_S=\sigma(-d_S).

则每个有效回答 Token 的直接系数为:

Slogπθ(yw,t)=βSwSTw,(66)\frac{\partial\ell_S} {\partial\log\pi_\theta(y_{w,t}\mid\cdot)} =-\frac{\beta_Sw_S}{T_w}, \tag{66}Slogπθ(yl,t)=βSwSTl.(67)\frac{\partial\ell_S} {\partial\log\pi_\theta(y_{l,t}\mid\cdot)} =\frac{\beta_Sw_S}{T_l}. \tag{67}

这些偏导说明 Loss 层希望怎样改变序列分数,不构成训练后绝对概率的逐样本保证。神经网络参数共享、Softmax 归一化、Batch 内梯度冲突和优化器动量都可能让 Chosen 与 Rejected 的绝对 Log Probability 同升或同降。可靠实验应直接记录二者,而不是从公式箭头推断结果。

8.3 Reference 约束的实现方式#

五种方法的约束结构可以概括为:

方法显式 Reference有限 Gap 目标Chosen NLL主要约束来源
DPOReference-adjusted Pairwise Logit
IPOReference + 1/(2τI)1/(2\tau_I)
KTO无 Pairwise Gap单样本 Log-ratio + KL Reference Point
ORPOChosen 行为克隆 + Odds Preference
SimPO仅软判别 Margin初始化 + Average Log-prob + γS\gamma_S + 优化过程

DPO/IPO 的 Reference 以每条样本的 Log-ratio 进入;KTO 除单样本 Log-ratio 外,还把 Policy-to-Reference KL 放在 Value Function 的 Reference Point 中。三者都不向 Reference 回传梯度。

ORPO 的 NLL 是一种数据锚,而不是分布锚:它只要求 Chosen 被模仿,不能约束未出现在数据中的回答空间。SimPO 连显式 NLL 也没有,更依赖高质量初始化、覆盖充分的偏好数据、小学习率和停止策略。

所以“Reference-free 方法 KL 更大”不是必然定理,“Reference-based 方法一定更安全”也不是。两者都要用共同 Anchor 做事后测量。

8.4 Margin 与温度参数#

参数进入位置主要语义增大时的直接效应
DPO βD\beta_Dσ(βDh)\sigma(\beta_Dh)源自 KL 系数,同时缩放分类 Logit更快饱和;人口最优更靠近 Reference,但有限训练与 LR 耦合
IPO τI\tau_I1/(2τI)1/(2\tau_I)KL 正则系数与有限目标 Gap目标 Gap 变小
KTO βK\beta_Kσ[βK(az0)]\sigma[\beta_K(a-z_0)]Value Function 曲率、风险敏感性和饱和速度离 Reference Point 更快饱和
ORPO λO\lambda_OLSFT+λOLORL_{\mathrm{SFT}}+\lambda_OL_{\mathrm{OR}}两项 Loss 的混合权重Preference 项相对更强
SimPO βS\beta_SβSgγS\beta_Sg-\gamma_SAverage Log-prob Reward Scale改变梯度尺度与有效边界
SimPO γS\gamma_SβSgγS\beta_Sg-\gamma_S软目标 Reward Margin需要更大 gg 才进入同等置信区

几个常见错误可以据此排除:

  • DPO 的 βD\beta_D 不是一个有限 Target Margin;
  • IPO 的目标是 1/(2τI)1/(2\tau_I),不是 1/τI1/\tau_I
  • KTO 的 βK\beta_K 不能直接称为 KL Penalty 系数;
  • ORPO 的 λO\lambda_O 不是温度;
  • SimPO 的有效 Average Log-prob 边界是 γS/βS\gamma_S/\beta_S
  • SimPO 的 γS\gamma_S 不是 Hinge 式硬约束,也不会让 Loss 在边界后归零。

不同方法不能共享一个 {0.05,0.1,0.2}\{0.05,0.1,0.2\} 的“beta 公平网格”。公平的是给每种方法相同的搜索资源和验证协议,而不是强迫语义不同的参数取相同数字。

8.5 长度归一化策略#

方法标准序列聚合长度作用
DPOsθsrefs_\theta-s_{\mathrm{ref}},两者均为 Token Log-prob 求和Reference Ratio 可隐式抵消部分长度趋势
IPO与 DPO 相同有限 Gap 不等于长度归一化
KTO单回答序列 Log-ratio 求和KL Reference Point 可调节总体变化,但无显式除长
ORPOsˉ=s/T\bar s=s/T,再取 p=esˉp=e^{\bar s} 和 Odds显式每回答平均
SimPOsˉ=s/T\bar s=s/T显式每回答平均

本文的 IPO 行按原论文的 Sequence Sum 填写;若所用库版本把 IPO 改成 Completion Average,该实现应单列为变体,不能与表中原始 IPO 混报。

所有长度 TT 都应只计算有效 Completion Token:

  • 不含 Prompt;
  • 不含 Padding;
  • EOS 是否包含必须在所有方法中一致;
  • 因 Max Length 截断而消失的 Token 不得继续计入分母;
  • 若一个回答被截断而另一个完整,Pairwise 标签语义已经改变,应标记或过滤。

长度归一化也会改变梯度预算。对相同 Token,总分法的直接序列系数不含 1/T1/T,平均法包含 1/T1/T。如果按 DataLoader Row 数而非有效 Token 数对齐训练,长短分布不同的方法会得到不同的实际监督量。


9. 数据与训练成本比较#

9.1 数据标注形式和采集难度#

维度PairwiseUnary
标准方法DPO、IPO、ORPO、SimPOKTO
每次判断阅读候选数通常至少 21
是否需要绝对阈值较弱
是否能表达细微相对优劣不能直接表达
两者都好/都坏容易被强制排序掩盖可赋相同标签
生产日志复用需找到同 Prompt 对手点赞/拒绝等更自然
Hard Negative 构造关键不要求显式配对

标注“难度”不是固定常数。Pairwise 每条判断阅读更多内容,但 Unary 要建立并维持跨样本一致的可接受标准。若同一回答需多名标注者校准绝对标签,Unary 的实际成本未必更低。

建议为两种协议都记录:

  • 标注时长;
  • Token 阅读量;
  • Tie/Skip 比例;
  • 标注者一致性;
  • 标签置信度;
  • 任务和语言分层;
  • 候选生成模型与版本。

只有 Row 数没有这些信息,无法说明某个方法“数据效率更高”。

9.2 前向计算次数#

先按逻辑序列评分比较,再讨论物理 Forward Call:

方法每个 Pair 或等价两条 Unary 的 Policy 目标评分Reference 目标评分额外评分反向传播
DPO220Policy 的 2 条回答
IPO220Policy 的 2 条回答
KTO22错配 Policy 2 + 错配 Reference 2仅目标 Policy;z^0,B\hat z_{0,\mathcal B} Stop-gradient
ORPO200Policy 的 2 条回答
SimPO200Policy 的 2 条回答

一对数据拆为 KTO 的两条 Unary Row 后,目标回答仍是原来的两条;不能因为 Row 数翻倍就说 KTO 读取了两倍独立信息,也不能把“两条 Row”误计成“两次人工判断”。标准 KTO 对这两个回答逻辑上需要 Policy 4 次评分与 Reference 4 次评分:各 2 次目标评分,另各 2 次错配评分;错配 Policy 只用于 z^0,B\hat z_{0,\mathcal B},不参与反向传播。若在满足论文讨论条件时设置 z^0,B=0\hat z_{0,\mathcal B}=0,额外成本才会下降。

物理实现中:

  • Chosen/Rejected 可拼成 2B2B 序列做一次 Policy Forward;
  • Reference 可再做一次 2B2Bno_grad Forward;
  • KTO 错配序列可组成另一个 Batch;
  • 显存不足时可分块,Forward Call 增多但总有效 Token FLOPs 近似不变;
  • Padding 比例、Sequence Packing 和 Attention 实现会显著影响真实吞吐。

因此实验应报告:

有效前向 Token 数,有效反向 Token 数,GPU-hours,Samples/s,Tokens/s.\text{有效前向 Token 数},\quad \text{有效反向 Token 数},\quad \text{GPU-hours},\quad \text{Samples/s},\quad \text{Tokens/s}.

9.3 Reference Model 的显存开销#

Reference-based 方法通常需要额外权重显存,但不应写成“显存严格翻倍”。

对全参数训练:

  • Policy 有权重、梯度、优化器状态和训练 Activation;
  • Reference 只有冻结权重及临时前向张量;
  • 优化器状态往往比一份 Reference 权重更大;
  • Reference 可分块、卸载、量化或预计算。

对 Reference Log-prob 预计算:

  • 训练 Step 不再加载 Reference;
  • 代价转为一次离线前向、数据存储和版本绑定;
  • DPO/IPO 的目标 Reference Log-prob 可以直接缓存;
  • KTO 的目标 Reference Log-prob 同样可缓存,但错配 Reference 只有在数据顺序与错配映射固定时才能缓存;当前 Policy 的错配评分始终要重算;
  • 改变 Reference Checkpoint、Tokenizer、Chat Template、截断、Response Mask、精度、Row ID,或 KTO 的错配映射、分片、World Size、Local Batch 后必须重算或重新验证;
  • 缓存值应至少使用足够精度存储,并在 FP32 中累加序列 Log Probability。

缓存必须带完整 Fingerprint,不能只保存一个浮点数组。把 Reference 量化会改变实际的 πref\pi_{\mathrm{ref}},因此它是一项会改变目标的实验配置,而不是无损的系统优化。

对 PEFT:

  • 若 Policy 是“冻结 Base + 新训练 Adapter”,且 Reference 恰好等于禁用该 Adapter 后的 Base,可共享 Backbone;
  • 若 Reference 自身包含必须保留的 SFT Adapter,则要保存/切换 Reference Adapter,或预计算其 Log-prob;
  • 不能在不满足权重等价关系时,随意把“Adapter off”当作 Reference。

Reference-free 的 ORPO/SimPO 通常更省权重和前向,但具体节省比例依赖优化器、Activation Checkpointing、Sequence Length、Quantization 和并行策略。SimPO 论文中的特定硬件测量不能外推成固定百分比。[5]

9.4 SFT 与偏好训练的阶段数量#

从 Base Model 出发的典型流水线为:

方法典型流水线偏好 Loss 是否包含 SFT
DPOBase \rightarrow SFT \rightarrow DPO
IPOBase \rightarrow SFT/Instruction \rightarrow IPO
KTOBase \rightarrow 可选 SFT \rightarrow KTO
ORPOBase \rightarrow ORPO
SimPOBase \rightarrow SFT \rightarrow SimPO

如果直接使用公开 Instruct Checkpoint,“独立 SFT 阶段”已经由上游完成,只是计算成本不可见。此时可以比较偏好阶段的增量成本,但不能据此声称某方法端到端只需要一步。

ORPO 的单阶段优势应在完整流水线实验中验证:

  • 相同 Base;
  • 相同可用 Chosen/Rejected 原始数据;
  • 相同或明确报告的总有效 Token;
  • SFT + Preference 的总 GPU-hours;
  • 相同最终选择规则。

否则,ORPO 可能因为额外的 Chosen NLL Token Budget 获益,或反过来因为单阶段无法分别调度两类数据而受损。

9.5 LoRA/QLoRA 兼容性#

五种方法最终都对语言模型 Log Probability 反向传播,因此在目标函数层面都兼容 LoRA;在实现支持正确时,也可与 QLoRA 组合。[18][19]

LoRA 的主要收益:

  • 只训练低秩 Adapter;
  • 大幅减少可训练梯度和优化器状态;
  • 便于保存多个方法/超参数的独立 Adapter;
  • Reference-based 方法在特定权重关系下可共享冻结 Backbone。

QLoRA 的额外收益:

  • 以低比特存储冻结 Backbone;
  • 进一步降低权重显存;
  • 训练 Adapter 时仍保留高精度计算路径。

它们不会自动减少:

  • 两条回答的 Attention/MLP Activation;
  • Reference 或错配序列的前向 FLOPs;
  • 长上下文带来的二次 Attention 成本;
  • 目标 Token Log-prob 的数值累加要求。

实践中应把完整词表 Logits 的计算与存储分开看。可以使用融合或分块的目标 Token Log-prob 提取,避免把整个 [B,L,V][B,L,V] Logits 长期保留为 FP32;但最终的 [B,L][B,L] 目标 Token Log-prob、序列求和、Odds 和 Loss 最好在 FP32 中计算,以降低长序列下溢和差值消去风险。

做方法对比时,还要固定 LoRA Rank、Alpha、Target Modules、Adapter Dropout 与可训练参数量;QLoRA 需额外固定量化格式、Double Quantization 和 Compute Dtype。若实验从 SFT Adapter 出发,应明确是继续训练、复制、合并还是堆叠 Adapter。否则不同方法拥有的有效容量和初始化并不相同。


10. 公平实验与评估设计#

10.1 统一底座、数据与初始化#

一个实验协议无法同时回答“哪个偏好 Loss 更好”和“哪个完整流水线更省”。建议至少设置两条主赛道。

协议 A:Preference Objective-only

  • 所有方法从完全相同的 SFT/Instruct Checkpoint 开始;
  • DPO、IPO、ORPO、SimPO 使用相同 Pairwise 数据;
  • KTO 把同一 Pair 拆成两条 Unary,并把该结果明确标记为 Pseudo-unary KTO
  • 统一 Tokenizer、Chat Template、Max Prompt Length、Max Response Length;
  • 统一回答集合、有效训练 Token 曝光与更新机会,并单独报告各方法计算成本;
  • Reference-based 方法使用同一个冻结 SFT Anchor。

该协议只比较 Pseudo-unary 数据上的目标函数行为:Pairwise Winner 不一定绝对合格,Loser 也不一定绝对不合格,因此不能据此得出原生 KTO 的质量结论。它不能体现 KTO 的原生 Unary 采集优势,也会弱化 ORPO 从 Base Model 合并 SFT 的系统收益。

协议 B:End-to-end Pipeline

  • 从同一个 Base Checkpoint 开始;
  • DPO/IPO/SimPO 采用 SFT \rightarrow Preference 的推荐流水线;
  • KTO 同时报告 SFT \rightarrow KTO 与在强 Base/Pretrained 设置下直接 KTO;
  • ORPO 采用 Base \rightarrow ORPO 单阶段;
  • 分别运行等数据曝光轨与等计算/标注预算轨,不声称同时严格固定 Token 与 GPU-hours;
  • 报告中间 SFT Checkpoint 和最终 Checkpoint 的指标。

该协议回答完整成本—质量问题,但方法差异同时包含流水线和 Loss。

若要验证 KTO 的数据价值,还应增加 协议 C:Native Feedback Acquisition:在同一 Prompt/回答池上分别采集真实 Unary 与 Pairwise 标签,记录标注时长和一致性。把 Pairwise 机械拆开只能比较优化目标,不能证明 Unary 生产链更便宜。

所有划分应按 Prompt Group 完成。相同 Prompt 的不同候选、改写或多轮分支不得跨越 Train/Validation/Test,避免模型在验证集上见过同一问题语义和模板。

10.2 统一 Token Budget 与计算预算#

“每种方法训练 1 Epoch”通常不公平:

  • KTO 拆对后 Row 数翻倍;
  • ORPO 每一步包含 Chosen NLL;
  • KTO 的 z^0,B\hat z_{0,\mathcal B} 有额外错配前向;
  • Reference-based 方法可能预计算,也可能在线评分;
  • 不同 Length Reduction 导致每条 Row 的有效监督量不同。

不存在一个配置能同时严格固定训练 Token、更新次数、FLOPs 和 GPU-hours。公平比较应至少分成两条轨道:

  • 等数据曝光轨:固定唯一回答、非 Padding Token 曝光与更新机会,允许计算成本不同,报告最终质量和实际成本;
  • 等计算/标注预算轨:固定总 GPU-hours 或实测 FLOPs,以及人工标注预算,允许 Step 与 Token 曝光不同,报告质量—GPU-hours/FLOPs 曲线。

两条轨道都要同时控制或报告以下四类预算。

标注预算

Njudgment,Nunique response,annotator-read tokens,annotation hours.N_{\mathrm{judgment}},\quad N_{\mathrm{unique\ response}},\quad \text{annotator-read tokens},\quad \text{annotation hours}.

训练数据预算

Nprompt tokens,Nresponse tokens,Nunique pairs/unary.N_{\mathrm{prompt\ tokens}},\quad N_{\mathrm{response\ tokens}},\quad N_{\mathrm{unique\ pairs/unary}}.

计算预算

non-padding/padded tokens,L2,profiled FLOPs including recompute,GPU-hours,peak memory.\text{non-padding/padded tokens},\quad \sum L^2,\quad \text{profiled FLOPs including recompute},\quad \text{GPU-hours},\quad \text{peak memory}.

搜索预算

Ntrial,GPU-hours per method,validation calls.N_{\mathrm{trial}},\quad \text{GPU-hours per method},\quad \text{validation calls}.

若协议固定总计算而不是固定 Step,应把 Reference 预计算成本纳入总账。若缓存能被多个 Trial 复用,可同时报告首个 Trial 成本与摊销成本。

Token 数不是 FLOPs 的无损代理:Attention 随长度非线性增长,Padding、Kernel、并行切分和 Activation Checkpointing 的重计算都会改变成本。实验应固定硬件、精度、Kernel、并行策略和 Checkpointing,并同时报告长度分桶或 L2\sum L^2、实测吞吐与 GPU-hours。

KTO 还必须固定实际执行估计的每 Rank Local Micro-batch下限,除非实现显式 All-gather 后再构造错配。Gradient Accumulation 只能扩大有效 Batch,不能让单次 z^0,B\hat z_{0,\mathcal B} 估计看到更多样本;应保证 Local Micro-batch Size >1>1iji\neq j,并尽量错配到不同 Prompt。还要固定数据顺序、Sampler Seed、World Size、每设备 Batch 和错配映射,否则 z^0,B\hat z_{0,\mathcal B} 本身随系统配置改变。

10.3 超参数搜索范围#

下面是基于原论文与官方实现的起始候选,不是跨模型通用最优值。先按训练方式分别搜索共同 LR 网格:

  • Full Fine-tuning:{1,3,5}×107, 106, 2×106\{1,3,5\}\times10^{-7},\ 10^{-6},\ 2\times10^{-6}
  • LoRA/QLoRA:5×106, 105, 2×105, 5×1055\times10^{-6},\ 10^{-5},\ 2\times10^{-5},\ 5\times10^{-5}

Adapter 网格通常更高,但仍要根据模型规模、Global Batch 与数据量调整。方法特有参数可从下表起步:

方法重点参数可作为起点的离散候选
DPOβD\beta_D0.01、0.05、0.1、0.2、0.5
IPOτI\tau_I0.05、0.1、0.2、0.5;根据是否保留外部 τI\tau_I 重调 LR
KTOβK,λD,λU\beta_K,\lambda_D,\lambda_UβK\beta_K:0.01、0.05、0.1、0.5;按类比例搜索权重
ORPOλO\lambda_O0.05、0.1、0.5、1.0;同时监控 Chosen NLL 与 OR Loss
SimPOβS,γS/βS\beta_S,\gamma_S/\beta_SβS\beta_S:1、2、2.5、5、10;γS/βS\gamma_S/\beta_S:0、0.2、0.5、0.8、1.0

KTO 原论文建议根据 Desirable/Undesirable 数量 nD,nUn_D,n_U 选择权重,使:

λDnDλUnU[1,43](68)\frac{\lambda_Dn_D}{\lambda_Un_U} \in\left[1,\frac{4}{3}\right] \tag{68}

作为起点,而不是只按逆类别频率机械平衡。[3]

SimPO 官方复现强调 Learning Rate、βS\beta_S 和 Margin 需要联合调节;过大 LR 可能产生重复和不连贯输出。[15] IPO 是否保留原论文外部 τI\tau_I 也会改变梯度尺度;DPO 作者的参考实现采用无外部缩放形式。[30]

除方法特有参数外,Optimizer、Scheduler、Warmup、Local/Global Batch、Gradient Clip、Dropout、精度、Max Length 与评估间隔必须固定或纳入共同搜索。Full Fine-tuning 与 PEFT 分开建赛道;PEFT 赛道再固定 §9.5 所列 Adapter 配置。

更公平的做法是同时给每种方法相同搜索 GPU-hours、相同验证调用次数和可比覆盖,而不只是相同 Trial 数。例如:

  1. 先用 4 个 LR 做短程筛选;
  2. 在前 2 个 LR 上搜索方法特有参数;
  3. 对前 2 个配置用 3 个随机种子完整训练;
  4. 只使用预注册的验证指标选 Checkpoint。

不能为一个方法查 30 组配置、另一个方法只跑默认值,再把差异归因于算法;也不能让一个方法用昂贵长程 Trial、另一个方法只用短程 Trial,却只报告 Trial 数相同。

10.4 Win Rate、KL、长度与能力指标#

一个完整 Scorecard 至少包含五层。

1. 生成偏好

  • 对共同测试 Prompt 统一解码配置;
  • 与共同 Baseline 进行盲评 Pairwise Win/Tie/Loss;
  • 随机交换 A/B 顺序并做 Position Consistency 检查;
  • 同时报告人类、规则和外部 Judge 的适用部分;
  • 报告普通 Win Rate 与 Length-controlled Win Rate。[20][21]

若把学习型 Reward Model 用作大规模外部 Judge,应先单独验证其偏好分类能力、分布外鲁棒性和偏置;RewardBench 一类基准可提供诊断,但不能替代目标任务上的人类核验。[29]

2. 共同 Anchor 漂移

令所有方法的共同起点为 π0\pi_0。只有当回答按被评分的同一个原始 Policy πθ\pi_\theta 做祖先采样,并且 EOS、支持集与终止约定一致时,才能用 yπθy\sim\pi_\theta 估计序列级 Forward KL:

D^KL=1Ni=1Nt[logπθ(yi,txi,yi,<t)logπ0(yi,txi,yi,<t)].(69)\widehat D_{\mathrm{KL}} = \frac{1}{N} \sum_{i=1}^{N} \sum_{t} \left[ \log\pi_\theta(y_{i,t}\mid x_i,y_{i,<t}) -\log\pi_0(y_{i,t}\mid x_i,y_{i,<t}) \right]. \tag{69}

式(69)的求和应包含 EOS,只覆盖 Response Mask;同时报告样本量与 Prompt-level 置信区间。Sequence Sum 是 KL 的 Monte Carlo 估计,而每条轨迹先除以长度得到的 Per-token Mean 只是长度归一化 Drift Score,不是严格 KL。

Greedy、Temperature、Top-pp、Top-kk 或 Repetition Penalty 会产生采样分布 qπθq\neq\pi_\theta。此时:

  • 若能记录 qq 的真实条件概率,应计算 Eq[logqlogπ0]\mathbb E_q[\log q-\log\pi_0],并称为 DKL(qπ0)D_{\mathrm{KL}}(q\Vert\pi_0)
  • 若仍计算 logπθlogπ0\log\pi_\theta-\log\pi_0,只能称为 Off-policy Log-ratio Diagnostic;
  • 不要用训练集 Chosen 上的 Log-ratio 冒充完整 Policy KL。

3. 方法内部偏好诊断

  • DPO/IPO:hθ>0h_\theta>0 比例、Gap 分布、Chosen/Rejected 绝对 Log Probability;
  • KTO:Desirable/Undesirable 分层 Loss、以 u=az^0,Bu=a-\hat z_{0,\mathcal B} 为分数的 AUC/排序分离度、分数分布与 z^0,B\hat z_{0,\mathcal B}
  • ORPO:Chosen NLL、ΔOR>0\Delta_{\mathrm{OR}}>0 比例、两项梯度范数;
  • SimPO:gθ>0g_\theta>0 的 Reward Accuracy、满足 gθ>γS/βSg_\theta>\gamma_S/\beta_S 的比例。

这些分数的定义不同,只能做方法内部诊断,不能把 DPO Reward Accuracy 与 KTO AUC 当成同一个主指标。KTO 的 Sigmoid 是 Utility 变换,不是由 Proper Scoring Rule 拟合出的 P(c=Dx,y)P(c=\mathrm D\mid x,y);如需 ECE/Brier 等概率校准指标,应先在独立验证集拟合后验校准器,并明确称为 Post-hoc Feedback-label Calibration。

4. 长度与风格

  • Response Token 长度的均值、中位数、分位数和完整分布;
  • 长度分层 Win Rate;
  • 重复 nn-gram、循环、模板化短语;
  • 拒答率、列表率、标题率和格式遵循;
  • 截断率、EOS 率与长上下文表现。

5. 能力与安全回归

  • 领域任务正确率、代码执行通过率或规则 Verifier;
  • 通用知识、推理、多轮一致性;
  • 无害请求过度拒绝与有害请求安全率;
  • 多语言、分布外 Prompt 与对抗格式;
  • 起点模型到最终模型的逐项差值,而不只报告最终绝对分。

“Judge Win Rate 上升但正确率下降”与“Reward Accuracy 上升但生成退化”都可能发生。模型选择必须预先定义多指标门槛。

10.5 消融实验与统计显著性#

建议的核心消融如下:

方法必做消融
DPOβD\beta_D、Reference 选择、长度分层
IPOτI\tau_I、是否保留外部缩放、DPO 对照、不同标签重复度
KTOz^0,B\hat z_{0,\mathcal B} vs 0、λD/λU\lambda_D/\lambda_U、原生 Unary vs 拆 Pair、Micro-batch
ORPOλO=0\lambda_O=0 的 SFT 基线、移除 SFT 项、Probability Ratio vs Odds Ratio
SimPO无 Length Normalization、γS=0\gamma_S=0、不同 γS/βS\gamma_S/\beta_S、事后 KL

Reference 在线评分与缓存应先做数值一致性检查,它是系统实现对照,不是算法消融。移除 IPO 外部缩放或 SimPO Length Normalization 会改变 Loss 与梯度尺度;若要比较方法机制,应重新搜索 LR 与相关 β/γ/τ\beta/\gamma/\tau,否则只能标为“固定配置消融”。

完整对照还应包括:

  • SFT-only;
  • 不做任何训练的起点;
  • 标准 DPO;
  • 在同计算预算下的最佳 Checkpoint,而非最后 Checkpoint;
  • 至少 3 个训练随机种子;
  • 固定测试 Prompt 和解码 Seed 集合。

统计上,Win Rate 是同一 Prompt 上的配对观测。Prompt-level Paired Bootstrap 只覆盖测试 Prompt、生成与 Judge 波动,不能代表训练随机性;训练 Seed 应单独报告,或使用“训练 Seed—Prompt”层次 Bootstrap/混合效应模型。若每个 Prompt 只有二元胜负,也可报告配对检验。多方法、多指标比较应做多重比较校正。

对 LLM Judge,还应:

  • 交换答案顺序;
  • 对同一样本重复评审或使用多个 Judge;
  • 把重复生成、双顺序和重复 Judge 的观测按 Prompt Group 聚类;
  • 把 Tie 单独保留;
  • 报告 Judge 与人类小样本一致性;
  • 不在测试集反复调 Prompt;
  • 将评测模板、Judge 版本和日期固定。

所有方法还应使用相同 Checkpoint 评估次数、间隔和选择规则,测试集只在最终配置上评估。只有“一个 Seed、一个 Judge、一个 Win Rate 点估计”不足以支持方法优越性结论。


11. 失效模式与方法选择#

11.1 噪声偏好下的稳定性#

不同 Loss 对噪声的反应不同。

DPO

  • 错标 Hard Pair 会持续推动错误间隔增大;
  • Easy Pair 梯度饱和,训练权重自然下降;
  • 确定性经验标签可能对应无界理想 Gap;
  • 可使用 Label Smoothing、Robust DPO 或数据置信度权重,但这已改变标准 DPO。[25]

IPO

  • 有限目标防止单条确定性标签要求无限 Gap;
  • 超过目标后会反向拉回;
  • 平方损失会放大远离目标的异常 Gap;
  • 重复且随机的标签可在期望中表达偏好频率,但单条 Winner-ordered Row 本身没有显式强度字段。

KTO

  • Sigmoid Value 在远离 Reference Point 时饱和,可能抑制极端噪声影响;
  • 错误的绝对 Desirable/Undesirable 标签仍会推向错误方向;
  • z^0,B\hat z_{0,\mathcal B} 的 Batch 估计噪声会同时影响一批样本;
  • 类别权重不当会让多数类主导。

ORPO

  • 错误 Chosen 会被 NLL 绝对模仿,而不只是相对偏好;
  • 错误 Rejected 会被 Odds 项压低;
  • λO\lambda_O 越大,Pairwise 噪声的影响可能越强;
  • 高质量 Chosen 数据是单阶段收益成立的重要前提。

SimPO

  • γS\gamma_S 会要求更强间隔,可能放大错标 Pair 的压力;
  • Length Normalization 不能识别事实性噪声;
  • 无 Reference 锚时,噪声覆盖不足可能导致更大分布外漂移;
  • Log-sigmoid 仍会对错误顺序持续施压,直到饱和。

没有一种方法只凭 Loss 形式就自动“抗噪”。重复标注、置信度、Tie、数据审计和验证集仍然是第一道防线。

11.2 数据不平衡与偏好强度失真#

KTO 的类不平衡最直观。若 nUnDn_U\gg n_D,未经加权的 Loss 可能主要学习压低 Undesirable;若过度提高 λD\lambda_D,又可能抬高少量 Desirable 模板并损害覆盖。除式(68)外,应报告每类:

  • 数量与有效 Token;
  • 任务/语言分布;
  • 平均长度;
  • 标签来源;
  • Loss、AUC 和生成影响。

Pairwise 方法也有隐蔽不平衡:

  • 某些 Prompt 产生更多候选对;
  • 一个强 Winner 与多个 Loser 组合会被重复计权;
  • Easy/Hard Pair 比例不均;
  • Chosen 比 Rejected 系统性更长;
  • 某个生成模型的风格占据多数。

二元标签通常丢失偏好强度。可选方案包括:

  • 保存多标注者胜率或置信度;
  • 把 Tie 明确建模而非强行打破;
  • 对同 Prompt 的 Pair 做 Group Weight;
  • 按难度和来源分层采样;
  • 对 KTO 使用分层 Unary 阈值或权重;
  • 用独立消融验证强度权重,而不是默认“分数越大越可信”。

偏好强度字段本身也可能未校准。不同 Judge 的 8 分与 6 分差不能直接和另一个 Judge 的同样差值等价。

11.3 Reference-free 不等于无约束#

ORPO 和 SimPO 没有显式 Reference,但至少仍受以下约束:

Initialization+Data Support+Finite Steps+Learning Rate+Optimizer+Model Capacity+Early Stop.(70)\text{Initialization} +\text{Data Support} +\text{Finite Steps} +\text{Learning Rate} +\text{Optimizer} +\text{Model Capacity} +\text{Early Stop}. \tag{70}

ORPO 还受到 Chosen NLL 的强数据锚;SimPO 受到 Average Log Probability 和 Margin 结构约束。LoRA Rank 较低时,参数可达子空间本身也是约束。

反过来,Reference-based 也不等于“已被安全约束”:

  • Reference 可能能力弱、风格有偏或安全行为不完整;
  • 错误 Reference 版本会改变每条 Pair 的相对 Gap;
  • Reference 与数据生成 Policy 严重失配时,离线覆盖问题仍在;
  • 标准 DPO/IPO/KTO 没有硬 KL 上限;
  • 只在训练 Pair 上约束 Log-ratio,不能覆盖所有生成区域。[24]

因此,所有方法都应相对同一 π0\pi_0 报告事后 KL、能力回归和安全回归。Reference-free 是计算图属性,不是风险认证。

11.4 Pairwise 数据与 Unary 数据的选择#

可以用以下决策表做第一轮筛选:

现有条件优先候选原因必须保留的对照
原生点赞/点踩、接受/拒绝很多,难以构造同 Prompt PairKTO直接使用 UnarySFT、拆 Pair/原生 Unary 消融
高质量 Pairwise 数据、成熟 SFT 起点、Reference 成本可接受DPO最清晰的标准基线与成熟实现SFT-only
DPO 在有限数据上 Gap 持续扩大、Early Stop 敏感IPO有限 Reference-relative TargetDPO
从 Base 做指令化,Chosen 质量高,希望合并阶段ORPO内置 Chosen NLL + Preference同总预算 SFT+DPO
已有强 Instruct 起点,Reference 成本突出,长度差异明显SimPOReference-free + Average Log-probDPO 与 γ=0\gamma=0

选择前还要回答:

  1. Chosen 是否绝对值得模仿?若否,ORPO 的 NLL 风险更高。
  2. Unary 标签是否真的有统一阈值?若否,KTO 需要分层或重新标注。
  3. Reference 是否可信且可复现?若否,DPO/IPO/KTO 的锚点可能成为偏差来源。
  4. 长度差异来自质量还是标注偏好?若不清楚,先做长度分层审计。
  5. 是否需要从当前 Policy 探索新回答?若是,单次离线训练可能不是正确范式。

最稳妥的实验顺序通常是:先建立 SFT 与标准 DPO 两个可靠基线,再根据数据形态和已观察失效模式加入对应变体,而不是一次把所有方法堆进训练表。

11.5 DPO 变体与 Online DPO、RLHF、DAPO 的边界#

本文五种方法默认都是离线偏好优化目标:训练数据已固定,优化阶段不要求当前 Policy 重新生成回答。

Online DPO

通常包含:

当前 Policy 采样候选
人类 / LLM Judge / Reward Model / Rule 给出偏好
DPO-style Loss 更新
重新采样

它改变的是数据随 Policy 演化的闭环。反馈 Oracle 可以是人、Judge、Reward Model 或规则,DPO Loss 本身仍不必训练显式 Reward Model。若使用旧 Checkpoint 候选、Replay Buffer 或多 Epoch 重复数据,更准确的描述可能是 Iterative 或 Approximately On-policy。[26][27]

RLHF

是“从人类反馈学习”的更宽方法类别,不等于 PPO。经典 PPO-RLHF 使用学习型 Reward Model 给当前 Policy Rollout 打分,再通过 Policy Gradient 与 KL Penalty 更新;也可以有其他在线或离线优化器。[8][9]

DPO、IPO、KTO、ORPO 和 SimPO 可以属于广义的人类/AI 反馈对齐,但它们的标准形式没有:

  • Rollout Advantage;
  • Critic/Value Model;
  • Old Policy Importance Ratio;
  • PPO Clip;
  • 环境交互式探索。

DAPO

在当前长推理强化学习语境中通常指:

Decoupled Clip and Dynamic sAmpling Policy Optimization

它是基于成组在线 Rollout、可验证奖励、Policy Gradient、非对称 Clip、Dynamic Sampling 和 Token-level Loss 的 RL 系统,谱系更接近 GRPO/PPO-RLVR,而不是 DPO 的 Pairwise Classification 变体。[28]

因此:

维度本文离线偏好目标Online DPOPPO-RLHFDAPO
数据固定 Pairwise/Unary随 Policy 更新的 Pair当前 Policy Rollout当前 Policy 成组 Rollout
反馈已有偏好/好坏标签在线 Oracle 偏好学习型 RM Reward常为规则 Verifier Reward
梯度序列 Log-prob 监督式 LossDPO-stylePolicy Gradient + CriticGroup/Token Policy Gradient
Critic不需要通常不需要通常需要典型实现不依赖传统 Critic
探索有数据闭环

缩写还可能重名。技术文章和实验表必须首次出现时写出全称,不能因为 DAPO 中含有 “DPO” 字母就认定它是 Direct Preference Optimization 的直接后继。


结语#

DPO、IPO、KTO、ORPO 与 SimPO 的差异,不是五个相似 Loss 的排列组合,而是五种不同的建模选择:

  • DPO 用 Reference-relative Pairwise Log-sigmoid 建立标准直接偏好基线;
  • IPO 把 Ψ\Psi 设为 Identity,用有限目标 Gap 保留确定性经验偏好下的正则作用;
  • KTO 把监督单位改为 Unary,并用 KL Reference Point 区分相对收益与损失;
  • ORPO 用 Chosen NLL 和 Odds Ratio 把指令学习与偏好学习合并;
  • SimPO 用 Policy Average Log Probability 和软目标 Margin 移除 Reference。

没有一种选择同时免费获得低标注成本、低显存、强分布锚、无长度偏差、抗噪和在线探索。方法选择应从数据形态与失效模式出发,而不是从最新算法名出发。

一句话概括:

DPO 变体真正改变的不是“更喜欢 Chosen”这一方向,而是用什么数据定义偏好、用什么分数衡量变化、把策略锚在哪里,以及间隔应该无限增大、有限回归还是在软边界后逐渐饱和。


参考资料#

[1] Rafailov, R. et al. Direct Preference Optimization: Your Language Model is Secretly a Reward Model. NeurIPS 2023. https://proceedings.neurips.cc/paper_files/paper/2023/hash/a85b405ed65c6477a4fe8302b5e06ce7-Abstract-Conference.html

[2] Gheshlaghi Azar, M. et al. A General Theoretical Paradigm to Understand Learning from Human Preferences. AISTATS 2024. https://proceedings.mlr.press/v238/gheshlaghi-azar24a.html

[3] Ethayarajh, K. et al. KTO: Model Alignment as Prospect Theoretic Optimization. ICML 2024. https://proceedings.mlr.press/v235/ethayarajh24a.html

[4] Hong, J.; Lee, N.; Thorne, J. ORPO: Monolithic Preference Optimization without Reference Model. EMNLP 2024. https://aclanthology.org/2024.emnlp-main.626/

[5] Meng, Y.; Xia, M.; Chen, D. SimPO: Simple Preference Optimization with a Reference-Free Reward. NeurIPS 2024. https://proceedings.neurips.cc/paper_files/paper/2024/hash/e099c1c9699814af0be873a175361713-Abstract-Conference.html

[6] Bradley, R. A.; Terry, M. E. Rank Analysis of Incomplete Block Designs: I. The Method of Paired Comparisons. Biometrika, 1952. https://doi.org/10.2307/2334029

[7] Tversky, A.; Kahneman, D. Advances in Prospect Theory: Cumulative Representation of Uncertainty. Journal of Risk and Uncertainty, 1992. https://doi.org/10.1007/BF00122574

[8] Ouyang, L. et al. Training Language Models to Follow Instructions with Human Feedback. NeurIPS 2022. https://arxiv.org/abs/2203.02155

[9] Schulman, J. et al. Proximal Policy Optimization Algorithms. 2017. https://arxiv.org/abs/1707.06347

[10] Bai, Y. et al. Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback. 2022. https://arxiv.org/abs/2204.05862

[11] Cui, G. et al. UltraFeedback: Boosting Language Models with Scaled AI Feedback. 2023. https://arxiv.org/abs/2310.01377

[12] Hugging Face TRL. DPO Trainer Documentation. Accessed 2026-07-30. https://huggingface.co/docs/trl/dpo_trainer

[13] Hugging Face TRL. KTO Trainer Documentation. Accessed 2026-07-30. https://huggingface.co/docs/trl/kto_trainer

[14] Hugging Face TRL. ORPO Trainer Documentation. Accessed 2026-07-30. https://huggingface.co/docs/trl/orpo_trainer

[15] Princeton NLP. SimPO Official Implementation. Accessed 2026-07-30; production experiments should pin a Commit. https://github.com/princeton-nlp/SimPO

[16] Contextual AI. HALOs: Official KTO Implementation. Accessed 2026-07-30; production experiments should pin a Commit. https://github.com/ContextualAI/HALOs

[17] XFactLab. ORPO Official Implementation. Accessed 2026-07-30; production experiments should pin a Commit. https://github.com/xfactlab/orpo

[18] Hu, E. J. et al. LoRA: Low-Rank Adaptation of Large Language Models. ICLR 2022. https://arxiv.org/abs/2106.09685

[19] Dettmers, T. et al. QLoRA: Efficient Finetuning of Quantized LLMs. NeurIPS 2023. https://arxiv.org/abs/2305.14314

[20] Dubois, Y. et al. Length-Controlled AlpacaEval: A Simple Way to Debias Automatic Evaluators. COLM 2024. https://arxiv.org/abs/2404.04475

[21] Zheng, L. et al. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS Datasets and Benchmarks 2023. https://arxiv.org/abs/2306.05685

[22] Razin, N. et al. Unintentional Unalignment: Likelihood Displacement in Direct Preference Optimization. ICLR 2025. https://arxiv.org/abs/2410.08847

[23] Park, R. et al. Disentangling Length from Quality in Direct Preference Optimization. Findings of ACL 2024. https://arxiv.org/abs/2403.19159

[24] Liu, Y.; Liu, P.; Cohan, A. Understanding Reference Policies in Direct Preference Optimization. Findings of NAACL 2025. https://arxiv.org/abs/2407.13709

[25] Chowdhury, S. R.; Kini, A.; Natarajan, N. Provably Robust DPO: Aligning Language Models with Noisy Feedback. ICML 2024. https://arxiv.org/abs/2403.00409

[26] Guo, S. et al. Direct Language Model Alignment from Online AI Feedback. 2024. https://arxiv.org/abs/2402.04792

[27] Hugging Face TRL. Online DPO Trainer Documentation. Accessed 2026-07-30. https://huggingface.co/docs/trl/en/online_dpo_trainer

[28] Yu, Q. et al. DAPO: An Open-Source LLM Reinforcement Learning System at Scale. NeurIPS 2025. https://arxiv.org/abs/2503.14476

[29] Lambert, N. et al. RewardBench: Evaluating Reward Models for Language Modeling. Findings of NAACL 2025. https://aclanthology.org/2025.findings-naacl.96/

[30] Mitchell, E. et al. DPO Reference Implementation. Accessed 2026-07-30; production experiments should pin a Commit. https://github.com/eric-mitchell/direct-preference-optimization

第 10 篇:DPO 变体横向比较——IPO、KTO、ORPO 与 SimPO
https://jupiter-ws.cn/posts/agent-algorithms/10-dpo-variants-comparison/
作者
Jupiter
发布于
2026-07-24
许可协议
CC BY-NC-SA 4.0