本文是 hugging face 上的一篇博客,针对时下常见的三种人类偏好优化算法进行了性能比较。作者进行了大量的实验,旨在通过不同的模型和不同的超参数,对无需强化学习(或偏好调整)就能调整语言模型的三种可行方法进行评估。这三种优化方法是:
- 直接偏好优化 (Direct Preference Optimization, DPO)(https://huggingface.co/papers/2305.18290)
- 身份偏好优化 (Identity Preference Optimisation, IPO)(https://huggingface.co/papers/2310.12036)
- Kahneman-Taversky 优化(KTO)(https://github.com/ContextualAI/HALOs)
本文五位作者
太长不看版
在这篇博客中,作者对三种优秀的 LLM 对齐算法进行了评估,分别是:直接偏好优化(DPO)、身份偏好优化(IPO)和 Taversky Optimisation 优化(KTO),并且在两个高质量的 7b 参数 大小的 LLM 上进行了实验。这些 LLM 经过了有监督微调,但没有进行人类偏好调整。作者发现,虽然确实能找到效果最好的算法,但要获得最佳结果,必须对一些关键超参数进行调整。
无强化学习的对齐
DPO 的原理示意图 (https://arxiv.org/abs/2305.18290)
直接偏好优化(DPO)已成为将大型语言模型(LLM)与人类或人工智能偏好相结合的一种很有前景的方案。与基于强化学习的传统对齐方法不同,DPO 将对齐公式重新定义为一个简单的损失函数,该函数可以直接在偏好数据集{(x,y_w,y_l)}上进行优化,其中 x 是 prompt,y_w,y_l 分别是偏好的和非偏好的响应。
人类偏好调整数据集的示例
DPO 简单易用的特性使得它广受欢迎,并已成功应用于 Zephyr 模型和 Intel 提出的 NeuralChat 等模型的训练当中。
DPO 的成功激发了研究人员对新的损失函数进行研究,这些研究可以归纳为以下两个主要方向:
- 稳健性:DPO 的一个缺点是它在人类偏好数据集上很快就会过拟合。为了避免这种情况,谷歌 DeepMind 的研究人员引入了身份偏好优化(IPO),这种方法为 DPO 损失添加了一个正则,能够在不使用「提前停止」等技巧的情况下让模型收敛。
- 对成对偏好数据进行分配:与大多数比对方法一样,DPO 需要一个成对偏好数据集
,能够根据一组标准(如有益性或有害性),来标记哪种模型响应更好。在实践过程中,创建这些数据是一项耗时且成本高昂的工作。ContextualAI 最近提出了一种有趣的替代方案,称为 Kahneman-Taversky 优化(KTO),它完全根据被标记为「好」或「坏」的样本(例如在聊天 UI 中看到的图标