一、概念
在NLP领域,诸如GPT系列、Llama等大规模预训练模型已经展示出了强大的能力。然而,在实际落地应用的过程中,这些大模型可能会产生不符合用户期望的输出(且这种情况的概率还不低)。为了使模型的输出更符合用户的偏好,学界提出了各种优化方法。本文介绍在NeurIPS 2023的论文《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》中被提出的优化方法——DPO(Direct Preference Optimization,直接偏好优化)。
DPO旨在通过使用人类偏好数据来直接调整模型参数,以生成更符合预期的输出。与传统的基于RLHF等方法相比,DPO无需训练复杂的奖励模型,而是直接通过偏好数据优化模型,省略了复杂的后处理步骤。
二、原理及流程
1、原理
DPO的核心思想是通过偏好数据直接优化模型的输出概率,使得模型更倾向于生成人类偏好的结果。其工作原理可以概括为以下几点:
-
偏好数据格式:DPO的训练数据通常以三元组的形式提供,即(prompt, chosen, rejected),其中chosen是人类偏好的输出,rejected是不被偏好的输出。
-
损失函数设计:DPO通过最大化偏好输出的对数概率与最小化非偏好输出的对数概率之间的差异来优化模型。其损失函数可以表示为:
其中,是当前模型,
是参考模型(通常是相同架构的预训练模型,用于防止当前模型偏离预训练模型过远,从而保持模型的稳定性和一致性),
是偏好输出,
是非偏好输出,