Direct Preference Optimization (DPO): 一种无需强化学习的语言模型偏好优化方法

论文地址:https://arxiv.org/pdf/2305.18290

1. 背景与挑战

近年来,大规模无监督语言模型(LM)在知识获取和推理能力方面取得了显著进展,但如何精确控制其行为仍是一个难题。 现有的方法通常通过**强化学习从人类反馈(RLHF)**来引导模型行为,但RLHF存在以下问题:

  • 复杂性高:RLHF需要先训练一个奖励模型来反映人类偏好,然后使用强化学习来微调语言模型,使其在最大化奖励的同时不偏离原始模型太远。
  • 不稳定性:RLHF训练过程复杂且容易不稳定,需要大量超参数调优和采样。
  • 计算成本高:RLHF涉及训练多个模型和在训练循环中采样,消耗大量计算资源。

2. DPO:一种更简单、更高效的方法

为了解决上述问题,本文提出了一种名为 Direct Preference Optimization (DPO) 的新算法,直接从人类偏好数据中优化语言模型,而无需显式的奖励建模或强化学习。

2.1 DPO 的核心思想

DPO 的核心思想是:

  • 将偏好学习问题转化为一个简单的二元分类问题:DPO 通过最大化人类偏好的对数概率,同时最小化不偏好的对数概率,来直接优化语言模型。
  • 引入动态重要性权重:为了防止模型退化,DPO 引入了基于隐式奖励模型的动态重要性权重,该权重根据模型对偏好的排序错误程度进行调整。

2.2 DPO 的工作原理

  1. 构建偏好数据集:从参考模型(通常是经过监督微调的语言模型)中采样生成多个候选响应,并使用人类偏好数据对它们进行标注,生成偏好对 ( y w , y l ) (y_w, y_l) (yw,yl),其中 y w y_w yw 表示更受偏好的响应, y l y_l yl 表示较不受偏好的响应。

  2. 定义 DPO 损失函数

    L D P O ( π θ ; π r e f ) = − E ( x , y w , y l ) ∼ D [ log ⁡ σ ( β log ⁡ π θ ( y w ∣ x ) π r e f ( y w ∣ x ) − β log ⁡ π θ ( y l ∣ x ) π r e f ( y l ∣ x ) ) ] \mathcal{L}_{\mathrm{DPO}}(\pi_{\theta};\pi_{\mathrm{ref}}) = -\mathbb{E}_{(x,y_{w},y_{l})\sim\mathcal{D}}\left[\log\sigma\left(\beta\log\frac{\pi_{\theta}(y_{w}\mid x)}{\pi_{\mathrm{ref}}(y_{w}\mid x)}-\beta\log\frac{\pi_{\theta}(y_{l}\mid x)}{\pi_{\mathrm{ref}}(y_{l}\mid x)}\right)\right] LDPO(πθ;πref)=E(x,yw,yl)D[logσ(βlogπref(ywx)πθ(ywx)βlogπref(ylx)πθ(ylx))]

    • π θ \pi_{\theta} πθ:待优化的语言模型。
    • π r e f \pi_{\mathrm{ref}} πref:参考模型,通常是初始的监督微调模型。
    • β \beta β:控制 KL 散度的超参数,用于平衡奖励最大化与模型偏离程度。
    • σ \sigma σ: sigmoid 函数,将输入映射到 (0,1) 之间。

    该损失函数鼓励模型生成更受偏好的响应,同时惩罚生成不受偏好的响应。

  3. 优化模型

    DPO 通过梯度下降法优化上述损失函数,更新模型参数 θ \theta θ。 梯度计算如下:

    ∇ θ L D P O ( π θ ; π r e f ) = − β E ( x , y w , y l ) ∼ D [ σ ( r ^ θ ( x , y l ) − r ^ θ ( x , y w ) ) ( ∇ θ log ⁡ π ( y w ∣ x ) − ∇ θ log ⁡ π ( y l ∣ x ) ) ] \nabla_{\theta}\mathcal{L}_{\mathrm{DPO}}(\pi_{\theta};\pi_{\mathrm{ref}}) = -\beta\mathbb{E}_{(x,y_{w},y_{l})\sim\mathcal{D}}\left[\sigma\big(\hat{r}_{\theta}(x,y_{l})-\hat{r}_{\theta}(x,y_{w})\big)\left(\nabla_{\theta}\log\pi(y_{w}\mid x)-\nabla_{\theta}\log\pi(y_{l}\mid x)\right)\right] θLDPO(πθ;πref)=βE(x,yw,yl)D[σ(r^θ(x,yl)r^θ(x,yw))(θlogπ(ywx)θlogπ(ylx))]

    其中, r ^ θ ( x , y ) = β log ⁡ π θ ( y ∣ x ) π r e f ( y ∣ x ) \hat{r}_{\theta}(x,y) = \beta\log\frac{\pi_{\theta}(y|x)}{\pi_{\mathrm{ref}}(y|x)} r^θ(x,y)=βlogπref(yx)πθ(yx) 表示隐式奖励模型。

    • 当隐式奖励模型对偏好排序错误时,权重 σ ( r ^ θ ( x , y l ) − r ^ θ ( x , y w ) ) \sigma\big(\hat{r}_{\theta}(x,y_{l})-\hat{r}_{\theta}(x,y_{w})\big) σ(r^θ(x,yl)r^θ(x,yw)) 更大,这意味着模型会更多地关注那些排序错误的样本,从而更有效地纠正错误。
    • 梯度更新方向:增加偏好响应的对数概率,同时减少不偏好响应的对数概率。

3. DPO 的优势

  • 无需显式奖励建模:DPO 直接从偏好数据中学习,无需训练单独的奖励模型,简化了训练流程。
  • 无需强化学习:DPO 使用简单的二元交叉熵损失进行优化,避免了强化学习带来的复杂性和不稳定性。
  • 计算效率高:DPO 训练过程更高效,消耗的计算资源更少。
  • 性能优越:实验表明,DPO 在控制生成文本的情感、摘要生成和对话生成等任务上,性能优于或至少与现有的 RLHF 方法相当。

4. 实验结果

4.1 情感生成任务

在控制情感生成任务中,DPO 在奖励-KL 散度边界上表现优异,能够在保持低 KL 散度的同时,实现更高的奖励,优于 PPO 等方法。

4.2 摘要生成任务

在 TL;DR 摘要生成任务中,DPO 的胜率(与参考摘要相比)达到 61%,高于 PPO 的 57%。 此外,DPO 对采样温度的鲁棒性更强,而 PPO 的性能在高温下会下降。

4.3 对话生成任务

在 Anthropic HH 对话数据集上,DPO 是唯一一种在计算效率高的前提下,能够超越首选完成度的方法,并且其性能与计算成本更高的 Best of 128 基线相当。

4.4 泛化能力

在将 PPO 和 DPO 策略应用于不同分布(CNN/DailyMail 新闻文章)时,DPO 仍然优于 PPO,表明 DPO 策略具有较好的泛化能力。

4.5 GPT-4 评估与人类评估的一致性

为了验证 GPT-4 评估的可靠性,本文进行了人类研究,发现 GPT-4 的判断与人类判断的一致性较高,表明 GPT-4 是人类评估的合理代理。

5. 讨论与未来方向

  • DPO 策略的泛化能力:DPO 策略在不同分布上的表现如何?与从显式奖励函数中学习相比如何?
  • 奖励过度优化问题:DPO 中是否存在奖励过度优化问题?图 3 中性能的轻微下降是否是其表现?
  • DPO 的可扩展性:DPO 能否扩展到更大规模的模型?
  • GPT-4 评估的改进:如何更好地从自动化系统中获取高质量的判断?
  • DPO 的其他应用:DPO 的应用范围可以扩展到其他模态的生成模型训练。

6. 总结

DPO 是一种无需强化学习的语言模型偏好优化方法,具有以下优势:

  • 简化训练流程:无需显式奖励建模和强化学习。
  • 计算效率高:训练过程更高效,消耗资源更少。
  • 性能优越:在多个任务上表现优于或至少与现有的 RLHF 方法相当。

DPO 为训练更强大的、对齐的语言模型提供了一种更简单、更高效的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/68230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ppp综合实验

IP地址 r1 r2 r3 r4 hdlc封装 pap认证 r2 r3 chap认证 r2 r4 MGRE 主认证 [r1]int Tunnel 0/0/0 [r1-Tunnel0/0/0]ip add 192.168.4.1 24 [r1-Tunnel0/0/0]tunnel-protocol gre p2mp [r1-Tunnel0/0/0]source 12.1.1.1 [r1-Tunnel0/0/0]nhrp entry multicast dynamic [r1-Tu…

高效流式大语言模型(StreamingLLM)——基于“注意力汇聚点”的突破性研究

论文地址:https://arxiv.org/pdf/2309.17453 github地址:https://github.com/mit-han-lab/streaming-llm 1. 研究背景与挑战 随着大语言模型(LLMs)在对话系统、文档摘要、代码补全和问答等领域的广泛应用,如何高效且准…

学习数据结构(2)空间复杂度+顺序表

1.空间复杂度 (1)概念 空间复杂度也是一个数学表达式,表示一个算法在运行过程中根据算法的需要额外临时开辟的空间。 空间复杂度不是指程序占用了多少bytes的空间,因为常规情况每个对象大小差异不会很大,所以空间复杂…

【测试】UI自动化测试

长期更新,建议关注收藏点赞! 目录 概论WEB环境搭建Selenium APPAppium 概论 使用工具和代码执行用例。 什么样的项目需要自动化? 需要回归测试、自动化的功能模块需求变更不频繁、项目周期长(功能测试时长:UI自动化测…

实现桌面动态壁纸(三)—— 视频播放的策略

关于动态壁纸这边,其实已经不需要再谈什么东西了,现有的各种文章都在介绍相关的技术。可以说现如今要去制作一个桌面动态壁纸应该不是什么难事。我考虑了很久,决定还是开一篇单独谈谈。可能我说的也不全部正确,您有什么建议随时可…

IoTDB 2025 春节值班与祝福

2025 春节快乐 瑞蛇迎吉庆,祥光映华年,2025 春节已近在眼前。社区祝福 IoTDB 的所有关注者、支持者、使用者 2025 新年快乐,“蛇”来运转! IoTDB 团队的春节放假时间为 2025 年 1 月 27 日至 2 月 4 日,1 月 25 日、26…

想品客老师的第七天:闭包和作用域

闭包之前的内容写在这里 环境、作用域、回收 首先还是数据的回收问题,全局变量一般都是通过关闭页面回收的;而局部变量的值不用了,会被自动回收掉 像这种写在全局里的就不会被主动回收捏: let title 荷叶饭function fn() {ale…

Qt调用FFmpeg库实时播放UDP组播视频流

基于以下参考链接,通过改进实现实时播放UDP组播视频流 https://blog.csdn.net/u012532263/article/details/102736700 源码在windows(qt-opensource-windows-x86-5.12.9.exe)、ubuntu20.04.6(x64)(qt-opensource-linux-x64-5.12.12.run)、以…

Ubuntu 20.04 x64下 编译安装ffmpeg

试验的ffmpeg版本 4.1.3 本文使用的config命令 ./configure --prefixhost --enable-shared --disable-static --disable-doc --enable-postproc --enable-gpl --enable-swscale --enable-nonfree --enable-libfdk-aac --enable-decoderh264 --enable-libx265 --enable-libx…

如何在IDEA社区版Service面板中管理springboot项目

1、开启service仪表盘 2、在service仪表盘中,添加启动类配置项,专业版是SpringBoot 、社区版是application。 3、控制台彩色日志输出 右键启动类配置项,添加虚拟机参数 -Dspring.output.ansi.enabledALWAYS

Vue.js组件开发-如何实现带有搜索功能的下拉框

创建 Vue 项目: 如果还没有创建一个 Vue 项目,可以使用 Vue CLI 来创建一个新的项目。 vue create my-project cd my-project安装依赖: 如果需要使用第三方组件库,比如 Element UI 或 Ant Design Vue,可以安装相应的…

网盘资源查找工具---AI功能

01 软件介绍 这是一款融入了ai技术的网盘搜索神器,可以让你更快,更精准的找到自己需要的文件,不管你是找影视,音乐,还是找软件或者学习资料都可以,欢迎前来使用。 02 功能展示 该软件非常简洁&#xff…

【2025年数学建模美赛E题】(农业生态系统)完整解析+模型代码+论文

生态共生与数值模拟:生态系统模型的物种种群动态研究 摘要1Introduction1.1Problem Background1.2Restatement of the Problem1.3Our Work 2 Assumptions and Justifications3 Notations4 模型的建立与求解4.1 农业生态系统模型的建立与求解4.1.1 模型建立4.1.2求解…

【Elasticsearch】index:false

在 Elasticsearch 中,index 参数用于控制是否对某个字段建立索引。当设置 index: false 时,意味着该字段不会被编入倒排索引中,因此不能直接用于搜索查询。然而,这并不意味着该字段完全不可访问或没有其他用途。以下是关于 index:…

FPGA 使用 CLOCK_LOW_FANOUT 约束

使用 CLOCK_LOW_FANOUT 约束 您可以使用 CLOCK_LOW_FANOUT 约束在单个时钟区域中包含时钟缓存负载。在由全局时钟缓存直接驱动的时钟网段 上对 CLOCK_LOW_FANOUT 进行设置,而且全局时钟缓存扇出必须低于 2000 个负载。 注释: 当与其他时钟约束配合…

蓝桥杯3518 三国游戏 | 排序

题目传送门 这题的思路很巧妙,需要算出每个事件给三国带来的净贡献(即本国士兵量减其他两国士兵量)并对其排序,根据贪心的原理累加贡献量直到累加结果不大于0。最后对三国的胜利的最大事件数排序取最值即可。 n int(input()) a …

【redis初阶】redis客户端

目录 一、基本介绍 二、认识RESP(redis自定的应用层协议名称) 三、访问github的技巧 四、安装redisplusplus 4.1 安装 hiredis** 4.2 下载 redis-plus-plus 源码 4.3 编译/安装 redis-plus-plus 五、编写运行helloworld 六、redis命令演示 6.1 通用命令的…

LLM - 大模型 ScallingLaws 的设计 100B 预训练方案(PLM) 教程(5)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145356022 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Scalin…

HttpClient学习

目录 一、概述 二、HttpClient依赖介绍 1.导入HttpClient4依赖 2.或者导入HttpClient5依赖 3.二者区别 三、HttpClient发送Get请求和Post请求测试 (一)通过HttpClient发送Get请求 (二)通过HttpClient发送Post请求 一、概述 HttpClient是 Apache 软件基金会提供的一…

FAST-DDS and ROS2 RQT connect

reference: FAST-DDS与ROS2通信_ros2 收fastdds的数据-CSDN博客 software version: repositories: foonathan_memory_vendor: type: git url: https://github.com/eProsima/foonathan_memory_vendor.git version: v1.1.0 fastcdr: …