直接偏好优化(DPO)简介 原创

发布于 2024-4-16 10:28
浏览
0收藏

直接偏好优化(Direct Preference Optimization,DPO)已成为对大模型进行微调的基本方式。著名的 Mistral 公司开发的 Mixtral 8x7B 模型,即稀疏专家混合模型(Sparse Mixture of Experts),通过使用 DPO,能够以显著较少的参数达到 LLaMa 70B 级别的性能。自然而然地,这一成功促使社区中许多人开始使用 DPO 对自己的模型进行微调。

目标

一旦你将一个模型预训练得具有强大的生成能力,通常希望以某种方式控制其输出。无论是将其优化为在对话中作为聊天机器人回应,还是在代码中回应而不是用英语,这里的目标是获取一个已经功能齐全的 LLM,并找到一种更加有选择性地输出的方式。

术语

损失函数 — 用作我们优化模型性能的指南的函数。这是根据已被发现的有效性选择的。

KL 散度 — 指的是 Kullback-Leibler 散度,它是衡量两个连续概率分布之间差异的一种方法。要了解更多信息,可以参考 Aparna Dhinakaran 写的一篇关于此主题的精彩文章。

策略 — 描述神经网络将如何做出决策的抽象。换句话说,如果一个神经网络被训练了 3 次,每次它都会有一个不同的策略,你可以比较它们的性能。

DPO 之前的现状(PPO)

在 DPO 之前,我们通常不得不训练一个完全独立的模型来帮助我们进行微调,通常称为奖励模型或 RLHF 模型。我们会从我们的 LLM 中采样完成,并让奖励模型为每个完成度给出一个分数。这里的想法很简单。人类评估您的 LLM 输出是昂贵的,但您的 LLM 的质量最终将由人类决定。为了保持成本低廉且质量高,您将训练奖励模型来近似人类的反馈。

直接偏好优化(DPO)简介 -AI.x社区

PPO背后的数学原理

直接偏好优化(DPO)简介 -AI.x社区

为什么我们不希望它偏离太多?记住模型已经基本功能齐全,而且已经耗费了相当多的计算资源才达到这个水平。因此,我们希望确保模型保留许多当前具有的好特性,同时我们专注于让它更好地遵循指令。

尽管上述方法是有效的——例如,LLaMa2 就是以这种方式进行微调的——但它有一个主要缺点:它需要训练一个完全独立的模型,这是昂贵的并且需要大量额外的数据。

DPO如何改进这一点?

DPO完全消除了对奖励模型的需求!这使我们避免了训练昂贵的独立奖励模型,并且偶然地,我们发现DPO所需的数据量要少得多,就像PPO一样有效。

直接偏好优化(DPO)简介 -AI.x社区

DPO背后的数学原理

主要的飞跃源于施加的KL约束。通过添加这个约束,我们实际上可以推导出最大化KL受限奖励模型的理想策略。代数如下所示:

直接偏好优化(DPO)简介 -AI.x社区

直接偏好优化(DPO)简介 -AI.x社区

这表明,您不需要奖励模型来优化策略以遵循人类偏好的理想概率分布。相反,您可以直接处理策略以改进它(这就是直接偏好优化名称的由来)。我们正在使用您的LLM为每个标记生成的概率来帮助它进行微调。

结论

首先,DPO不需要奖励模型! 您只需要高质量的数据,使得模型清楚地知道什么是好的,什么是坏的,并且它会不断改进。

其次,DPO是动态的。每次使用新数据时,它都会立即适应,这要归功于它找到正确方向的方式。与PPO相比,您每次有新数据都必须重新训练奖励模型,这是一个巨大的优势。

第三,DPO使您能够训练模型避免某些话题,正如它会学习为其他话题提供良好答案一样。对于新的损失方程,一种概念化的方法是将其视为指向正确方向的信号。通过同时使用好的和坏的示例,我们正在教导模型不仅要朝着某些响应方向前进,还要尽量避免其他响应方向。由于微调的一个很大部分涉及模型忽略某些主题,因此这个特性非常有价值。

译自(有删改):https://towardsdatascience.com/understanding-the-implications-of-direct-preference-optimization-a4bbd2d85841


本文转载自公众号AIGC最前线 

原文链接:​​https://mp.weixin.qq.com/s/bmvf50oGunRImufhe4Ywpw​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐