直接偏好优化不再局限于聊天机器人
速览
直接偏好优化(DPO)最初用于对齐聊天机器人行为,现在研究者正将其应用到其他领域,如推荐系统、文本生成等。这一扩展意味着DPO作为一种高效的偏好学习算法,有望替代传统RLHF方法,降低训练成本并提升模型对齐能力。该趋势可能加速AI在更多垂直行业的落地。
AI 深度解读
背景
今年 4 月,我们发布了 DharmaOCR(可在 Hugging Face 获取),一个专门的结构化 OCR 模型,同时发表了详细描述其方法论和基准测试的论文,证明了其卓越的质量和成本效率。该论文在结构化文档提取任务(巴西葡萄牙语文本的 OCR)上对领先的视觉语言模型家族(包括开源和商业模型)进行了基准测试。报告的指标中包括文本退化率(text degeneration rate):模型产生重复循环而非转录内容的频率。
在测试的开源家族中,原始退化率从低于 1% 到超过 33% 不等。监督式微调(SFT)降低了大多数模型的退化率——但很少能降低到生产可接受的水平。这一模式指向一个结构性限制:SFT 优化的是正确输出,但并未明确惩罚退化。仅靠任务聚焦的微调似乎存在一个上限,无法进一步减少这种失败模式(参见 Text Degeneration 文章)。
在监督式微调之后,对相同文档、使用相同模型应用了第二个训练阶段——结果每个测试家族的文本退化率都降低了。无一例外。平均降低幅度:59.4%。最佳情况:87.6%。
图 1:DPO 相对于 SFT 降低了每个测试家族的退化率——平均降低 59.4%,峰值 87.6%(Nanonets-OCR2–3B:从 1.61% 降至 0.20%)。方向不变,仅幅度不同。
这第二个阶段就是直接偏好优化(Direct Preference Optimization, DPO)。几乎所有已发表的 DPO 应用都面向聊天对齐——使用人类对有用性或无害性的判断训练的模型(例如 Rafailov et al., 2023)。而 OCR 完全没有这种主观性:任务是客观的,没有对话上下文。然而,这里有一个清晰的偏好信号:正确的转录被选择,退化循环被拒绝。DharmaOCR 利用这种二元性构建了 DPO 训练集,测试该技术并非用于对齐,而是作为直接缓解特定失败模式的工具。
训练信号来自模型自身——具体来说,来自它产生失败时的输出。一个失败模式如何变成训练信号,这是一个关于失败本身结构性的问题,而非关于模型本身。
核心内容
循环在微调后依然存在
为什么 SFT 在退化问题上存在上限仍然是一个开放性问题——但主要猜想指向损失粒度(loss granularity)。SFT 逐 token 训练:每个预测都孤立地评估,重复循环从未作为完成级别的失败受到惩罚。DPO 反转了这种逻辑。训练信号是整个输出(被选择或被拒绝),这意味着一个退化的完成可以被明确标记为错误结果,而不仅仅是一系列局部概率较高的 token。
当训练目标最大化观测序列的似然时,它将概率质量集中在这些序列所占据的分布空间区域。在推理过程中,模型一旦进入这些高概率吸引子区域(attractor regions),会在下一步赋予相同 token 更高的概率——这进一步提高了概率,从而维持循环直到序列达到最大 token 限制。文本退化是这种几何结构(geometry)的输出:一种自强化重复循环,自回归模型无法在没有外部干预的情况下退出(Holtzman et al., 2020)。这并非纯粹的解码伪影。吸引子涉及训练目标、学习到的分布以及推理过程中概率质量的集中方式——这是一个系统级故障,而非局限于任何单一组件的故障。
这种故障的几何结构在 token 层面可见。
图 2:当一个 token 支配其自身的条件分布时,每次采样步骤都会加深吸引子。解码器从这个几何结构中进行采样,但并不决定它。
推理层干预——如重复惩罚、温度调整、提前中止逻辑——作用于采样步骤。它们控制症状,但不触及产生症状的分布。吸引子持续存在。
监督式微调将分布移近任务领域。对于结构化生成管线,这意味着在目标语言中以所需输出格式对领域特定文档进行训练。模型获得了长序列、受限语法和领域词汇的流畅性。但 SFT 并没有直接攻击退化。其目标——最大化观测序列的似然——没有惩罚重复循环的项。失败模式完全超出了训练信号优化的范围。
DharmaOCR 基准测试中的一个模型家族展示了一个意外模式:原始退化率为 0.60%,SFT 后上升至 3.23%,随后 DPO 阶段将其降至 1.41%。这是一个单独的数据点——是例外而非规律——将其视为机制的证据会夸大证据。但它确实说明 SFT 并不能可靠地减少退化。能力和抗退化性可以独立变化。
这种区别在结构上很重要。SFT 和 DPO 并非可以互换的训练阶段(只是强度不同)。SFT 缩短了模型先验分布与任务领域之间的距离。但它并不把退化作为目标——它对失败模式的影响是附带性的,基准测试结果表明这种影响并不一致。产生退化的吸引子不是模型与任务接近程度的问题——而是模型现在占据的分布空间形状的问题。
要解决这种几何结构,需要一个专门构建的训练信号,引导模型远离自身的失败模式。对于没有人类偏好标签、没有传统“有用 vs 有害”区分、非对话的结构化任务,构建这个信号是一个设计决策。
设计决策:退化输出作为拒绝对
DharmaOCR 管线对 DPO 方法的贡献是具体的:它使用 SFT 模型自身的退化输出作为拒绝样本——不是作为需要去除的噪音,而是作为优化所需的负面训练信号。
DPO 需要偏好对:对于相同的输入,有一个被选择的输出和一个被拒绝的输出,质量差异足够明显,优化可以从中学习。在聊天对齐中,人类标注员产生这些判断——将回答评为或多或少有帮助、准确或安全。结构化生成任务没有等效的标注来源。OCR 管线要么产生正确的转录,要么不产生。质量差异存在,但并非由人类偏好排名产生——而是由任务自身的正确性标准产生。
DharmaOCR 管线识别出结构化生成任务已经产生的偏好信号:SFT 模型在推理中产生的输出范围。一个能够执行结构化任务的模型也必然能以典型方式失败。这些失败——进入退化吸引子的输出——不是需要过滤的噪音。它们是可用的最具信息量的负面信号。
论文在 23,726 个训练文档上实现了这一点,使用 SFT 模型对每个文档生成多个候选响应,并用自动 LLM 评判器(LLM judge)对每个响应打分。管线如下所示。
图 3:关键的设计决策不在于管线的结构——而在于管线保留了什么:显示文本退化的输出被故意标记为拒绝样本,而不是作为低质量噪音过滤掉。
传统做法是当退化输出出现在训练数据中时将其移除。它们是低质量信号;过滤产生更干净的数据集。DharmaOCR 的方法反转了这种逻辑:它故意保留退化输出,并将其编码为偏好的反面——不仅作为需要纠正的错误,而且作为优化算法可以明确学习的信号。这种反转——不是移除失败,而是将其结构化地嵌入训练信号中——构成了该方法的核心。
关键要点
- DPO 在结构化任务中的有效性:DPO 作为 SFT 后的第二个训练阶段,在每一项测试的模型家族中都降低了文本退化率,平均降低 59.4%,最高降低 87.6%。效果方向一致,仅幅度不同。
- SFT 的局限性:SFT 逐 token 优化,不直接惩罚序列级别的重复循环。即使增加训练数据或加大训练强度,SFT 也无法可靠消除退化,因为退化是分布空间中吸引子(attractor)的几何结构问题,而非模型与任务接近程度的问题。
- 退化是系统级故障:文本退化并非单纯的解码伪影,它源于训练目标、学习到的分布以及推理过程中概率质量集中的相互作用。推理层的干预(重复惩罚、温度调整)只缓解症状,不改变分布。
- 模型自身失败作为训练信号:DharmaOCR 的关键创新在于,它使用 SFT 模型在推理时产生的退化输出(而非过滤掉的噪音)作为 DPO 的拒绝样本。这为没有人类偏好标签的结构化任务提供了一种可行的偏好信号构造方法。
- 错误输出是信息量最大的负面信号:模型产生退化输出并非无用的低质量数据,而是揭示模型分布空间中吸引子位置的直接证据。将这些失败结构化地编码进训练信号,比简单地移除它们更有价值。
- DPO 与 SFT 的角色不可互换:SFT 使分布更接近任务领域,但抗退化能力可以独立变化(如一个模型家族 SFT 后退化率反而上升)。DPO
