目录

读 Selective DPO:偏好数据为什么不是越难越好

数据没有标错,也可能因为超过当前模型能力而伤害对齐

偏好对齐里有一个很自然的直觉:只要 chosen 和 rejected 没有标错,数据越多越好;难样本甚至应该更有训练价值。

Selective DPO 挑战了这个直觉。它提出,偏好数据是否有用,不只取决于标签质量,也取决于样本难度是否落在当前模型的能力范围内。

论文的核心主张是:

偏好样本具有稳定的难度差异;过难样本会因为超过模型容量而伤害对齐,而且“过难”的阈值随模型能力变化。

难样本为什么不等于坏数据

偏好样本通常包含 prompt、preferred response 和 rejected response。DPO 希望模型提高 chosen 相对 rejected 的隐式奖励差。

一条样本可能很难,原因却有很多:

  • chosen 与 rejected 的质量差异非常细微;
  • 任务需要数学、多语言或专业知识;
  • 响应风格和训练分布不同;
  • 标签本身存在噪声。

其中只有最后一类明确属于数据错误。前几类样本即使标签正确,也可能要求模型完成它当前还不会的区分。

Selective DPO 的重点不是“把错标数据清掉”,而是区分两个问题:

  1. 这条偏好标签是否正确?
  2. 当前模型是否有能力从这条偏好中学到稳定信号?

论文通过翻转困难样本标签等实验说明,过难样本不能简单等同于错标。真正的问题是数据难度和模型能力不匹配。

怎样证明样本真的有稳定难度

作者首先定义 learned step:一个 held-out 样本在训练到第几步之后,模型才开始稳定地区分 chosen 和 rejected。

如果难度只是随机噪声,那么不同随机种子、训练子集和模型上的学习顺序应该很不稳定。论文观察到,许多样本在不同运行中仍以相近顺序被学会。这说明偏好数据存在相对稳定的难度结构。

learned step 的问题是计算贵:要在训练过程中反复评估 held-out 样本。作者因此寻找更便宜的代理,最后使用 validation loss。

具体做法是:

  1. 把训练集随机拆成互补的两部分;
  2. 在一部分上用 DPO 训练参考对齐模型;
  3. 用参考模型计算另一部分 held-out 样本的 validation loss;
  4. 多次拆分和训练,取每条样本的平均 validation loss;
  5. loss 越高,样本被认为越难。

论文报告,四组模型上 validation loss 与 learned step 排名的 Spearman 相关系数约为 0.92–0.93,并且两种指标识别出的困难样本集合高度重合。

这里的 validation loss 不是用最终要训练的模型在同一批训练样本上自评。它依赖互补分割和 held-out 评估,目的是减少直接记忆和数据呈现顺序的影响。

Selective DPO 实际做了什么

算法本身并不复杂,可以分成三步:

1. 训练难度评估模型

论文重复进行数据拆分,在各子集上训练多个 DPO reference models。这里的 reference models 用于估计样本难度,不是 DPO 目标中控制 KL 的原始 SFT reference model。

2. 按 validation loss 排序

每条样本由没有见过它的参考模型评估多次,取平均 validation loss,形成从易到难的排序。

3. 只在能力范围内的数据上对齐

选择 loss 较低的一定比例样本,再执行普通 DPO。论文的主要实验常选择较容易的 50% 数据,并从易到难呈现。

因此它没有修改 DPO loss,也没有设计新的偏好优化器。它把主要改动放在进入 DPO 之前的数据选择阶段。

真正有效的是课程排序,还是删除困难样本

论文比较了三种设置:随机使用全部数据、按难度从易到难使用全部数据、只选择较容易数据再训练。

结果显示,主要收益来自排除最困难的样本,而不是单纯改变呈现顺序。容易样本即使随机打乱,也能获得与课程排序接近的改善。

这一区别很重要。论文支持的不是泛化版本的“curriculum learning 一定有效”,而是更具体的结论:在这些 DPO 设置中,模型能力之外的偏好样本会产生负贡献,过滤比排序更关键。

模型越大,能吃下的数据越难

如果困难样本只是普遍低质,那么不同模型应该在相似位置达到最佳点。论文用 Qwen-2.5 3B、7B 和 14B 做对比,发现模型越大,最佳训练数据比例越高。

在 Argilla-dpo-mix-7k 的实验中,论文报告的 sweet spot 从 3B 模型约 64% 上升到 14B 模型约 81%。这支持“难度相对于模型容量定义”的解释:同一条样本对小模型可能过难,对大模型却可能有益。

所以 Selective DPO 不能产生一份永久有效的“坏数据黑名单”。更换底座模型、训练阶段或数据分布后,难度需要重新估计。

实验结果应该怎样读

论文在多个模型和偏好数据集上验证,并在 AlpacaEval 2 上报告相对标准 DPO 提高 9–16 个百分点的 win rate,同时比较了 Arena-Hard 和 MT-Bench。

这些结果说明数据选择可以超过一些直接修改 DPO 算法的方案,但有三条口径必须保留:

第一,筛选并不免费。论文为了稳定估计 validation loss,训练了多个参考模型;在其主要配置中,六个参考模型被认为是效果和成本的折中。

第二,筛选比例是超参数。论文指出它取决于模型容量和数据难度分布,实践中仍需验证集或外部评估器调节。

第三,普通 win rate 容易受到回答长度影响。论文自己也观察到 Selective DPO 可能偏向更长响应,length-controlled 指标上的优势没有始终同样大。

它可能牺牲什么

过滤困难数据会提高当前对齐指标,却可能丢掉某些专门能力。论文附录报告,Mistral-7B 的 GSM8K 表现出现下降;一个解释是数学样本更容易落入高 validation loss 区域,筛选时被排除。

这暴露了 Selective DPO 的核心权衡:

“当前模型学不动”不等于“这项能力不重要”。

如果目标产品需要数学、多语言或专业任务,就不能只按总体 difficulty 一刀切。更合理的做法可能是分领域估计难度、保留关键能力配额,或先提升模型能力再逐步纳入更难数据。

对实际训练的启发

Selective DPO 最值得借走的不是完整流水线,而是三条判断原则:

  1. 偏好数据的价值取决于模型状态,不能只做一次静态质量判断;
  2. clean data 仍可能因为难度不匹配而产生负训练信号;
  3. 数据过滤必须同时检查总体对齐指标和被过滤领域的能力回退。

在算力有限时,可以先用较少 reference runs 验证 validation loss 排名是否稳定,再决定是否采用完整筛选流程。若只是机械保留最容易的一半,而不检查模型规模、领域覆盖和 length bias,就只复制了论文的表面操作,没有复制它的因果逻辑。

结语

Selective DPO 的算法改动很轻,但它提出的问题很重要:对齐训练的瓶颈不一定是 loss 不够复杂,也可能是模型被要求从超出当前能力的偏好对中学习。

“更多高质量数据”只有在模型能理解这些数据时才成立。真正需要匹配的是三件事:标签质量、样本难度和模型容量。

参考链接