大型语言模型 (LLM) 令人印象深刻,但原始的预训练模型就像未经雕琢的璞玉。它们可以预测下一个 token,但往往难以遵循指令或遵守人类的安全标准。为了解决这个问题,我们通常依赖一个多阶段的训练流程: 预训练、监督微调 (SFT) ,以及最后的偏好对齐 (使用 RLHF 或 DPO 等方法) 。
虽然这个流程很有效,但它复杂、资源密集且脆弱。
在这篇文章中,我们将深入探讨来自 KAIST AI 的一篇论文,它挑战了这一现状。这篇论文名为 “ORPO: Monolithic Preference Optimization without Reference Model” (ORPO: 无参考模型的单体式偏好优化) ,介绍了一种将监督微调和偏好对齐合并为单一高效过程的方法。如果你是 NLP 或机器学习的学生,理解 ORPO 将为你提供一个迷人的视角,让你了解我们如何能以更低成本、更快速,且出人意料地更有效的方式实现模型对齐。
标准对齐流程 (及其缺陷)
要理解 ORPO 的重要性,我们首先需要看看大多数现代 LLM (如 ChatGPT 或 Llama-2-Chat) 是如何构建的。这个过程通常如下所示:
- 监督微调 (SFT) : 模型在高质量的“指令-回复”对上进行训练,学习如何格式化答案并遵循命令。
- 偏好对齐: 使用“偏好数据” (包含一对回答,其中一个是“选中/优选”的,另一个是“拒绝/劣质”的) 进一步微调模型。
第 2 步的行业标准方法是 RLHF (基于人类反馈的强化学习) 和 DPO (直接偏好优化) 。

如上图 2 所示,RLHF 和 DPO 通常都需要一个参考模型。
- RLHF 需要训练一个独立的奖励模型 (Reward Model) ,然后使用 PPO (近端策略优化) 来更新策略。这以不稳定和对超参数敏感而闻名。
- DPO 虽然消除了对独立奖励模型的需求,但仍然需要一个参考模型 (通常是 SFT 模型) ,以确保新模型不会偏离原始分布太远。
这种依赖性造成了计算瓶颈。你通常需要足够的显存来同时容纳两个版本的模型 (活跃策略模型和冻结的参考模型) ,或者必须执行多次前向传播,导致计算成本翻倍。
监督微调背后隐藏的问题
在作者介绍 ORPO 之前,他们首先指出了我们执行监督微调 (SFT) 方式中存在的一个关键理论弱点。
在 SFT 中,我们使用 交叉熵损失 (Cross-Entropy Loss) 来训练模型。目标是最大化“参考” (正确) 答案的似然概率。损失函数如下所示:

这个方程告诉模型: “让这个特定的 token 序列出现的可能性变大。”然而,它并没有告诉模型: “让其他糟糕的序列出现的可能性变小。”
研究人员进行了一项先导研究,以此观察在 SFT 期间实际发生了什么。他们选取了一个模型 (OPT-350M) ,并仅在偏好数据集中的“选中” (好) 回答上对其进行微调。然后,他们追踪了模型分配给“拒绝” (坏) 回答的概率。

图 3 的结果发人深省。随着模型学会“选中”的回答 (绿线) ,“拒绝”回答的概率 (橙线) 也随之上升。
因为 SFT 损失只推高目标 token 的概率,模型实际上学会了*领域 (Domain) * (例如,如何构建对话) ,但它并没有学会区分高质量的回答和有毒或产生幻觉的回答。它本质上是在说: “我认得这种文本风格,”而不在乎内容是好是坏。
ORPO 登场: 优势比偏好优化
作者提出了一个解决方案,直接修改 SFT 阶段本身。与其先做 SFT 再做对齐,为什么不在 SFT 期间 就对“坏”的风格进行惩罚呢?
这就是 ORPO 。 它是一种单体式 (monolithic) 方法,意味着它在一个训练模块中完成。它不需要参考模型,也不需要独立的奖励模型。
直觉: 几率 (Odds) 与概率 (Probability)
要理解 ORPO,我们需要回顾统计学中的一个基本概念: 几率 (Odds) 。
在概率论中,如果给定上下文 \(x\) 事件 \(y\) 发生的概率是 \(P(y|x)\),那么几率定义为该事件发生的概率除以它不发生的概率。

如果模型认为一个序列有 0.8 (80%) 的概率,那么几率就是 \(0.8 / 0.2 = 4\)。这意味着模型生成该序列的可能性是不生成该序列的 4 倍。
ORPO 关注的是选中回答 (\(y_w\)) 和拒绝回答 (\(y_l\)) 之间的 优势比 (Odds Ratio, OR) 。

这个比率告诉我们,相较于被拒绝的回答,被选中的回答可能性要高出多少。如果优势比很高,说明模型强烈偏好好的答案。如果它很低 (接近 1) ,说明模型漠不关心。
目标函数
ORPO 的魔力在于它的损失函数。它结合了标准的 SFT 损失和一个新的“优势比”惩罚项。

在这里,\(\mathcal{L}_{SFT}\) 使模型更擅长生成连贯的文本 (领域适应) 。新的项 \(\mathcal{L}_{OR}\) 则负责创建对齐。
优势比损失 (\(\mathcal{L}_{OR}\)) 旨在最大化选中回答和拒绝回答之间的差距。它使用了一个对数 Sigmoid 函数:

当我们最小化这个损失时,我们实际上是在强迫优势比增加。这有效地告诉模型: “在你学习如何说话 (SFT) 的同时,必须严格优先考虑被选中的答案,而不是被拒绝的答案。”
为什么是优势比而不是概率比?
你可能会想,为什么作者使用优势比 (\(\frac{odds_w}{odds_l}\)) 而不是像 DPO 等其他方法那样使用简单的概率比 (\(\frac{P_w}{P_l}\)) 。
答案在于 数值稳定性和梯度行为 。
作者分析了梯度 (用于更新模型权重的信号) 。他们发现使用概率比会产生非常尖锐、极端的惩罚。如果模型给被拒绝的回答分配了高概率,概率比损失会非常激进地“打压”该概率。

如图 8 (左) 所示,使用概率比会迫使被拒绝项的对数概率迅速暴跌 (接近 -8 或更低) 。虽然这听起来不错,但在 SFT 的背景下,这是破坏性的。它对模型的抑制过于强烈,以至于模型忘记了语言的基本结构 (即破坏了领域适应) 。
优势比 (图 8,右) 则更温和。它提供了一种“平滑”的惩罚。它降低了拒绝回答的可能性以实现对齐,但又不会过度到破坏模型生成连贯文本的能力。
作者还可视化了这些比率的理论分布:

相比于概率比 (蓝/橙) 的尖峰,优势比 (绿) 为损失函数提供了更宽、更可用的动态范围。
它真的有效吗?
为了证明 ORPO 的有效性,研究人员在 UltraFeedback 数据集上微调了 Phi-2 (2.7B)、Llama-2 (7B) 和 Mistral (7B) 等模型。他们将这些模型与标准基线 (SFT, SFT+DPO, SFT+RLHF) 进行了比较。
AlpacaEval 表现
最令人印象深刻的结果之一来自 AlpacaEval 2.0 基准测试,该测试衡量模型遵循指令的能力,并与强大的参考模型 (如 GPT-4) 进行比较。

在图 1 中,请看蓝色柱状图。 Mistral-ORPO-beta (7B) 实现了 12.20% 的胜率。这高于 Zephyr-beta (一个流行的 DPO 对齐模型) ,甚至超过了 Llama-2-Chat (13B) , 后者的参数量几乎是它的两倍。
这一结果仅通过一个 epoch 的训练就实现了,将 SFT 和对齐合并在了一次通过中。
多轮对话 (MT-Bench)
单轮指令是一回事,但模型能进行多轮对话吗?作者在 MT-Bench 上测试了 ORPO。

图 4 中的雷达图显示,经过 ORPO 微调的 Mistral 模型 (7B) 具有很强的竞争力,在推理、提取和 STEM 等类别中与更大的模型匹敌甚至将其击败。
奖励分布分析
一个“对齐”的模型应该生成奖励模型评分较高的回答。作者绘制了不同训练方法在 UltraFeedback 测试集上的奖励分布图。

在图 5 中,观察分布的位置。
- 蓝色 (SFT): 偏向左侧 (奖励较低) 。
- 绿色 (RLHF): 向右移动,但注意那些奇怪的缺口?这表明存在不稳定性或“奖励破解 (reward hacking) ”问题,即模型生成垃圾内容来欺骗奖励模型。
- 红色 (ORPO): 分布平滑且向右移动得最远 (奖励最高) 。
这直观地证实了 ORPO 能够持续生成高质量的回答,且没有 RLHF 中常见的不稳定性。
为什么 ORPO 对未来很重要
ORPO 的意义不仅仅在于排行榜上的高分。它代表了效率的转变。
- 显存效率: 因为 ORPO 不需要参考模型,你不需要同时将两个 LLM 加载到显存中。这使得在消费级硬件上对大模型进行对齐成为可能,而 DPO 或 RLHF 在这些硬件上可能会卡死。
- 训练速度: 通过合并 SFT 和对齐,你消除了一整个流程阶段。
- 简单性: RLHF (PPO) 的超参数调整由以困难著称。ORPO 基本上只引入了一个主要的超参数: \(\lambda\) (优势比损失的权重) ,这使得它更容易实现。
结语
研究论文 “ORPO: Monolithic Preference Optimization without Reference Model” 提供了一个令人信服的论点,即我们将模型对齐过度复杂化了。通过理解监督微调会增加所有相似文本 (无论好坏) 的概率,作者确定了对齐偏差的根本原因。
他们的解决方案——在 SFT 过程中直接应用优势比惩罚——优雅地解决了这个问题。它强迫模型同时学习领域知识和人类偏好。对于希望训练自己 LLM 的学生和研究人员来说,ORPO 提供了一个强大的、资源友好的替代方案,足以替代笨重的强化学习机制。
我们很可能会在未来看到更多“单体式”训练方法,因为社区正朝着更高效的方式迈进,致力于让我们的人工智能助手变得有用、无害且诚实。
](https://deep-paper.org/en/paper/2403.07691/images/cover.png)