直接偏好优化(Direct Preference Optimization DPO)的核心理论突破在于通过数学变换,将 “奖励建模 + 策略优化” 的 RLHF 关键流程,转化为直接对策略的单阶段优化,绕开了独立奖励模型的训练和高方差的强化学习梯度。本节围绕DPO主要介绍:
1)经典的RLHF三阶段训练过程以及优化点 2)DPO优化目标和实现方式介绍 3)DPO训练过程中数据准备、模型选择、损失函数更新等
关注“AI老马” —【获取资源】&【进群交流】
在RLHF的训练中主要有三个阶段:可监督的微调训练阶段SFT,偏好采样和奖励模型学习阶段,以及强化学习优化阶段。下面分别介绍下。
RLHF 通常是将一个由高质量领域数据训练过的模型作为基准,进行模型的初始化。这样可以保证模型在开始就有较好的能力,产生正确的结果。
在此阶段,将准备好的prompt 集合给到 SFT 模型产生结果,比如一条输入prompt 产生两条结果 ,然后将结果给到标注人员进行标注,产生偏好数据, ,表示相比于结果 更偏好结果 。在实际的应用中,通常使用模型生产偏好数据,即 。对于偏好模型,使用Bradley-Terry模型进行建模。
公式中的 表示对数据的奖励。假设需要从偏好分布 P 中评估偏好,我们可以参数化奖励模型 ,并使用最大似然估计,估计参数。将其映射成一个二元分类问题:
通常奖励模型为在监督模型的最后加上一个额外的线性层,产生对当前输入的奖励分数,为了降低奖励的偏差,通常将奖励进行归一化。
在此阶段中,奖励模型给训练的LLM提供反馈信息更新模型参数,一般的优化目标为:
公式中的两个模型 和 都是由训练好的 SFT 监督模型进行初始化。
在RLHF中强化学习阶段通常选用经典的PPO优化策略,但PPO 等演员 - 评论家算法的目标函数包含软值函数(soft value function 归一化项),如果缺少该归一化项会导致策略梯度高方差;而拟合该归一化项又需要额外训练价值函数或采用蒙特卡洛估计,增加了优化难度。
DPO 的解决方案:通过参数重写得到的奖励函数自带归一化特性,无需依赖任何基线或额外的价值函数拟合,从根本上降低了训练方差,提升了稳定性。
直接偏好优化目标是:通过依托奖励函数与最优策略的解析映射,借助特定偏好模型和定制损失函数,完成直接基于偏好数据优化模型策略,从而简化大语言模型偏好对齐流程。
为实现目标主要借助了三种优化方式:
小结:通过将奖励损失传递到强化学习策略损失,使得不必要显式的训练一个奖励模型,而仅通过BT奖励偏好就可以建模偏好数据,进而隐式的对策略模型进行训练。
由公式3到公式4,从 RL 的优化目标推导DPO优化函数。
在公式 4,两边取对数。
将公式 5 带入到公式 1 的模型中,得到在BT奖励模型约束下的偏好模型:
公式 6 通过一定的数学变换,并且使用最大似然估计优化参数,最终DPO的优化目标函数为:
主要分为三个阶段:数据准备、模型选择和初始化、损失函数更新。
核心操作
无需从头标注,直接复用公开偏好数据集,降低标注成本。
比如一个例子:
: “简述 DPO 与 RLHF 的区别”
: “DPO 跳过奖励模型,直接用偏好数据优化策略;RLHF 需先训练奖励模型再做强化学习”
: “二者没啥区别,都是训练大模型”
此时就形成了一个三元组偏好数据对
通常将有监督微调模型 直接作为参考模型 。策略模型 选用与同结构的预训练大模型,或直接基于 微调,减少初始参数差异。
关键操作:训练过程中冻结 的参数,仅更新 的参数。
核心目标:基于数据集 D 和固定的 ,通过梯度下降最小化 ,让 生成的回复更符合人类偏好。即针对数据集中的每组三元组 ,分别计算策略模型和参考模型对 的输出概率,并进一步求得各自的对数概率。
损失函数逻辑:最大化 对 的相对概率,同时最小化对 的相对概率,
训练终止条件:当损失值趋于稳定、模型在验证集上的偏好匹配率不再提升时,停止训练。
DPO 的核心理论突破在于通过数学变换,将RLHF中的关键流程 “奖励建模 + 策略优化” ,转化为直接对策略的单阶段优化。其核心逻辑是,最优策略对应的奖励函数可以等价表示为 “当前策略与参考策略的概率对数比”,因此直接优化策略的偏好匹配度,就等价于优化奖励函数,从而绕开了独立奖励模型的训练和高方差的强化学习梯度。
参考:arxiv:2305.18290