ORPO算法:融合监督微调和偏好对齐的新型微调技术
ORPO (Odds Ratio Preference Optimization) 算法是一种全新的微调技术,它将传统的监督式微调 (SFT) 和偏好对齐阶段合并成一个单一的过程,显著减少了训练所需的计算资源和时间。实证结果表明,ORPO 在各种模型大小和基准测试中都优于其他对齐方法,例如 DPO (Direct Preference Optimization)。
ORPO 算法的背景
指令微调和偏好对齐是使大型语言模型 (LLM) 适应特定任务的基本技术。传统上,这涉及一个多阶段过程:
- 监督式微调 (SFT):使模型适应目标领域。
- 偏好对齐:使用 RLHF (Reinforcement Learning from Human Feedback) 或 DPO 等方法,增加生成偏好响应而不是拒绝响应的可能性。
然而,研究人员发现这种方法存在局限性。虽然 SFT 可以有效地使模型适应所需的领域,但它也无意中增加了生成不希望的答案以及偏好答案的可能性。这就是为什么需要偏好对齐阶段来扩大偏好输出和拒绝输出之间的可能性差距。
ORPO 算法的原理
ORPO 算法由 Hong 和 Lee 在 2024 年提出,它通过将指令调整和偏好对齐组合成一个单一的、整体的训练过程,为这个问题提供了一个优雅的解决方案。 ORPO 修改了标准的语言建模目标,将负对数似然损失与优势比 (OR) 项相结合。这种 OR 损失会轻微惩罚拒绝响应 (rejected response),同时强烈奖励偏好响应 (preferred response),从而使模型能够同时学习目标任务并与人类偏好保持一致。
简单来说,ORPO 算法在 SFT 训练的损失函数中加入一项 odds ratio (OR) 负对数似然损失项,来降低对拒绝回答的生成概率。相比 DPO,ORPO 不需要参考模型,所需的训练显存更少。
ORPO 算法的优势
- 减少训练时间和计算资源: 将 SFT 和偏好对齐合并成一个步骤,显著提高了训练效率。
- 提升模型性能: 在各种模型大小和基准测试中,ORPO 都展现出比其他对齐方法更优越的性能。
- 降低训练显存需求: 相比 DPO,ORPO 不需要参考模型,因此所需的训练显存更少。
ORPO 算法的应用
ORPO 算法已经在主要的微调库中实现,如 TRL、Axolotl 和 LLaMA-Factory。例如,可以使用 TRL 库和 ORPO 对 Llama 3 8B 模型进行微调。
ORPO 算法的未来
ORPO 算法作为一种新颖的微调技术,展现出了巨大的潜力。随着研究的深入和应用的拓展,ORPO 算法有望在 LLM 训练领域发挥更大的作用,进一步推动 LLM 性能的提升和应用的普及。
参考资料: