从RLHF到DPO再到TDPO,大模型对齐算法已经是「token-level」

在人工智能领域的发展过程中,对大语言模型(LLM)的控制与指导始终是核心挑战之一,旨在确保这些模型既强大又安全地服务于人类社会。早期的努力集中于通过人类反馈的强化学习方法(RLHF)来管理这些模型,成效显著,标志着向更加人性化 AI 迈出的关键一步。

尽管 RLHF 取得了巨大成功,但是在训练过程中 RLHF 非常消耗资源。因此,近段时间学者们在 RLHF 奠定的坚实基础上,继续探索更为简单且高效的策略优化路径,催生了直接偏好优化(DPO)的诞生。DPO 通过数学推理得到奖励函数与最优策略之间的直接映射,消除了奖励模型的训练过程,直接在偏好数据上优化策略模型,实现了从「反馈到策略」的直观飞跃。这不仅减少了复杂度,还增强了算法的稳健性,迅速成为业界的新宠。

然而,DPO 主要关注在逆 KL 散度约束下的策略优化。由于逆 KL 散度的 mode-seeking 特性,DPO 在提升对齐性能方面表现出色,但是这一特性也倾向于在生成过程中减少多样性,可能限制模型的能力。

另一方面,尽管 DPO 从句子级的角度控制 KL 散度,模型的生成过程本质上是逐个 token 进行的。从句子级控制 KL 散度直观上表明 DPO 在细粒度控制上存在限制,对 KL 散度的调节能力较弱,可能是 DPO 训练过程中 LLM 的生成多样性迅速下降的关键因素之一。

技术交流&资料

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

成立了大模型算法面试和技术交流群,相关资料、技术交流&答疑,均可加我们的交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2040,备注:来自CSDN + 技术交流

用通俗易懂的方式讲解系列

  • 重磅来袭!《大模型面试宝典》(2024版) 发布!

  • 重磅来袭!《大模型实战宝典》(2024版) 发布!

  • 用通俗易懂的方式讲解:一文讲透最热的大模型开发框架 LangChain

  • 用通俗易懂的方式讲解:这应该是最全的大模型训练与微调关键技术梳理

  • 用通俗易懂的方式讲解:大模型训练过程概述

  • 用通俗易懂的方式讲解:专补大模型短板的RAG

  • 用通俗易懂的方式讲解:大模型微调方法总结

  • 用通俗易懂的方式讲解:掌握大模型这些优化技术,优雅地进行大模型的训练和推理!

为此,来自中科院和伦敦大学学院的汪军与张海峰团队提出了一种从 token-level 角度建模的大模型对齐算法:TDPO。

图片

论文标题:

Token-level Direct Preference Optimization

论文链接:

https://arxiv.org/abs/2404.11999

代码链接:

https://github.com/Vance0124/Token-level-Direct-Preference-Optimization

为了应对模型生成多样性显著下降的问题,TDPO 从 token-level 的角度重新定义了整个对齐流程的目标函数,并通过将 Bradley-Terry 模型转换为优势函数的形式,使得整个对齐流程能最终从 Token-level 层面进行分析和优化。相比于 DPO 而言,TDPO 的主要贡献如下:

  • Token-level 的建模方式:TDPO 从 Token-level 的角度对问题进行了建模,对 RLHF 进行了更精细的分析;

  • 细粒度 KL 散度约束:在每个 token 处从理论上引入了前向 KL 散度约束,使方法能够更好地约束模型优化;

  • 性能优势明显:相比于 DPO 而言,TDPO 能够实现更好的对齐性能和生成多样性的帕累托前沿。

DPO 与 TDPO 的主要区别如下图所示:

图片

▲ 图1. DPO的对齐优化方式:DPO从sentence-level的角度进行建模

图片

▲ 图2. TDPO 的对齐优化方式。TDPO 从 token-level 的角度进行建模,并在每个 token 处引入了额外的前向 KL 散度约束,如图中红色部分所示,控制模型偏移程度的同时,充当了模型对齐的 baseline

下面介绍两者方法的具体推导过程。

背景:直接偏好优化(DPO)

DPO 通过数学推导,得到了奖励函数与最优策略之间的直接映射,消除了 RLHF 过程中的奖励建模阶段:

图片

将公式 (1) 代入 Bradley-Terry (BT) 偏好模型中,得到直接策略优化(DPO)损失函数:

图片

其中图片是由来自偏好数据集 D 的 prompt、获胜响应和失败响应构成的偏好对。

TDPO

符号标注

为了建模语言模型顺序的、自回归的生成过程,TDPO 将生成回复表示成 个 token 组成的形式 ,其中 表示字母表(词汇表)。

当将文本生成建模为马尔可夫决策过程时,状态 state 定义为 prompt 和到当前 step 为止已生成的 token 的组合,表示为 ,而动作 action 则对应于下一个生成的 token,表示为 ,token 级奖励定义为 。

基于以上提供的定义,TDPO 为策略 建立了状态 - 动作函数 、状态值函数 和优势函数 :

图片

其中,图片 表示折扣因子。

Token-level角度的人类反馈强化学习

TDPO 理论上修改了 RLHF 的奖励建模阶段和 RL 微调阶段,将它们扩展为了从 token-level 角度考虑的优化目标。

对于奖励建模阶段, TDPO 建立了 Bradley-Terry 模型和优势函数之间的相关性:

图片

对于 RL 微调阶段,TDPO 定义了以下目标函数:

图片

推导


从目标 (4) 出发,TDPO 在每个 token 上推导了最优策略 和状态 - 动作函数 之间的映射关系:

图片

其中, 表示配分函数。

将方程 (5) 代入方程 (3),我们得到:

图片

其中, 表示策略模型 和参考模型 表示的隐式奖励函数差异,表示为:

图片

而 则表示 和 的序列级前向 KL 散度差异,按 加权,表示为

图片

基于方程 (8),TDPO 最大似然损失函数可以建模为:

图片

图片

实验设置

TDPO 在 IMDb,Anthropic/hh-rlhf、MT-Bench 上个数据集上进行了实验。

IMDb

在 IMDb 数据集上,该团队采用了 GPT-2 作为基模型,然后用 siebert/sentiment-roberta-large-english 作为奖励模型评估策略模型输出,实验结果如图 3 所示。

图片

从图 3 (a) 中可以看出,TDPO (TDPO1,TDPO2) 能够达到比 DPO 更好的 reward-KL 的帕累托前沿,而从图 3 (b)-(d) 则可以看出,TDPO 在 KL 散度控制方面表现极为出色,远远优于 DPO 算法的 KL 散度控制能力。

Anthropic HH

而在 Anthropic/hh-rlhf 数据集上,该团队采用了 Pythia 2.8B 作为基模型,采用两种方式评估模型生成的好坏:1)使用已有的指标;2)使用 GPT-4 评测。

对于第一种评估方式,该团队评测了不同算法训练的模型在对齐性能 (Accuracy) 和生成多样性 (Entropy) 上的权衡,如表 1 所示。

图片

可以看到 TDPO 算法不仅在对齐性能 (Accuracy) 上优于 DPO 和 f-DPO,在生成多样性 (Entropy) 上也占据优势,在这两个大模型生成回复的关键指标上达到了更好的权衡。

而对于第二种评估方式,该团队评测了不同算法训练的模型和人类偏好的吻合度,与数据集中的获胜响应作对比,如图 4 所示。

图片

DPO、TDPO1 和 TDPO2 算法在温度系数为 0.75 的情况下均能够达到对获胜响应的胜率高于 50%,较好地符合人类偏好。

MT-Bench

在论文中的最后一个实验上,该团队采用了在 Anthropic HH 数据集上训练好的 Pythia 2.8B 模型直接用于 MT-Bench 数据集评测,结果如图 5 所示。

图片

在 MT-Bench 上,TDPO 能够达到比其他算法更高的获胜概率,这充分说明了 TDPO 算法训练的模型生成的响应的质量更高。

此外,有相关研究对 DPO、TDPO、SimPO 算法进行了对比,可参考链接:

https://www.zhihu.com/question/651021172/answer/3513696851

基于 eurus 提供的 eval 脚本,评测了基模型 qwen-4b、mistral-0.1、deepseek-math-base 基于不同的对齐算法 DPO、TDPO、SimPO 微调训练得到的性能,以下是实验的实验结果:

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】python之人工智能应用篇--跨模态生成技术

跨模态生成技术概述 跨模态生成技术是一种将不同模态的数据(如文本、图像、音频、视频等)进行融合和转换的技术。其目标是通过将一个模态的数据作为输入,生成与之对应的另一个模态的输出。这种技术对于突破单一模态的局限性,提高…

数据库怎么同步

数据库要怎么同步呢,有很多方法,看你用什么数据库,如果是Sqlserver,你要数据库同步,那么可以使用自带的订阅发布,订阅发布应该是不错的方法,但是我上次要配置双向同步,它的对等发布好像没部署成…

力扣-和为K的子数组

题目-和为 K 的子数组 解法1&#xff1a;两层for循环 public class T560 {public static int subarraySum(int[] nums, int k) {int res 0;for (int i 0; i < nums.length; i) {int tempSum 0;for (int j i; j < nums.length; j) {tempSum nums[j];if (tempSum k)…

JetBrains IDEA 2024 无线重置免费 试用

注意&#xff1a;该文档只作为参考&#xff0c;若涉及到版权问题&#xff0c;请官方购买正版软件 Idea的使用&#xff0c;不是免费的。需要自己购买&#xff0c;获取证书才能使用&#xff0c;那么怎么无限试用30天呢&#xff1f; 免费试用操作&#xff1a; 文件删除 删除C:\…

揭秘数据合并的秘密:一文掌握一对一、多对一、多对多合并技巧与实战!

使用pd.merge()合并 类似 MySQL 中表和表直接的合并merge与concat的区别在于,merge需要依据某一共同的行或列来进行合并使用pd.merge()合并时,会自动根据两者相同column名称的那一列,作为key来进行合并每一列元素的顺序不要求一致1. 一对一合并 df1 = pd.DataFrame({"…

软考系统架构师系统工程与信息系统基础考点

软考系统架构师系统工程与信息系统基础考点 系统工程 定义&#xff1a;一种组织管理技术&#xff0c;一种现代的科学决策方法 目的&#xff1a;以最好的方式实现系统 目标&#xff1a;整体最优 意义&#xff1a;利用计算机为工具&#xff0c;对系统的结构、元素、信息和反馈…

2024黑盾杯复现赛题MISC部分

一、一个logo 一张png图片&#xff0c;查看颜色通道即可发现flag 二、 学会Office 最好用联想自带的excel工具查看&#xff0c;我用WPS打开未解出题目 这里会发现有隐藏信息 隐藏信息为宏加密 。去百度了解宏加密后&#xff0c;发现有俩个宏&#xff0c;一个加密一个解密 执…

LeetCode刷题之HOT100之课程表

吃完普通的食堂饭菜&#xff0c;回到实验室&#xff0c;继续做一道题&#xff01; 1、题目描述 2、逻辑分析 这道题涉及到图相关知识&#xff0c;应用到了拓扑排序。 题意解释 一共有 n 门课要上&#xff0c;编号为 0 ~ n-1。先决条件 [1, 0]&#xff0c;意思是必须先上课 0…

不止是只有维度建模,数据仓库还有Data Vault建模

引言 在数据仓库设计中&#xff0c;传统的星型和雪花型模型有着各自的优势和劣势。随着数据量的增大和数据源的多样化&#xff0c;Data Vault&#xff08;数据仓库&#xff09;建模方法逐渐受到关注和应用。Data Vault建模是一种灵活、可扩展、适应性强的建模方法&#xff0c;…

flash申请内存失败,导致老化问题解决

背景 在闪光灯初始化阶段客制化了一个buffer&#xff0c;下发到kernel的闪光灯驱动中用于保存读取闪光灯寄存器的值。功能测试都是正常的&#xff0c;但是一旦开始批量跑产线老化测试会有1/4500左右概率的后主摄拍照卡住。定位根因是闪光灯初始化失败&#xff0c;进一步原因就…

记一次ndk版本升级

概述 事情的起因是做一次android版本的业务迭代&#xff0c;发现程序crash掉了。经过分析&#xff0c;原因是中台部门对libc_shared.so库进行了升级&#xff0c;正好我们的业务也会用到libc_shared.so库&#xff0c;导致两个库版本冲突。具体crash的原因可以参见参考文献1。 …

Coldrage Dagger

剃刀高地【寒怒匕首 Coldrage Dagger】 2020.11.26.剃刀高地刷【寒怒匕首】-1_网络游戏热门视频 2020.11.26.剃刀高地刷【寒怒匕首】-2_网络游戏热门视频

【M365运维】Outlook和Teams里不显示用户的组织架构

【问题】 由于一些误操作&#xff0c;把用户账户禁用并重新启用后&#xff0c;发现在Outlook和Teams里无法查看用户的组织结构图了。如下图所示&#xff1a; - 在Outlook 里&#xff0c;用户标签页的组织一直显示“正在加载..."&#xff0c;成员身份也是“找不到任何组。…

【项目实训】数据库内容丰富

经团队讨论&#xff0c;对前端页面展示数据进行了增加&#xff0c;于是相应的修改数据库 经团队成员使用大模型对各公司面试经验中问题的总结优化&#xff0c;我们打算将大模型的回答存储到数据库中&#xff0c;以显示在前端页面 于是在数据库中存储大模型的回答&#xff1a;…

同三维T700转换器 USB转HDMI转换器

让USB摄像头变成HDMI输出&#xff0c;支持4K60输出 一、产品简介&#xff1a; 此转换器可以把USB信号转成HDMI信号&#xff0c;支持4K60 HDMI输出&#xff0c;有效解决了USB摄像头连接电视、显示器、导播台的问题&#xff0c;带USB控制口&#xff0c;可升级/接蓝牙接收器&#…

【微服务网关——hystrix-go类库】

1.hystrix-go类库 hystrix-go 是 Netflix 开源的 Hystrix 库在 Go 语言中的实现&#xff0c;用于处理服务中的故障和延迟问题。它通过提供熔断器&#xff08;Circuit Breaker&#xff09;、隔离、降级、限流、以及实时监控等机制&#xff0c;帮助开发者构建健壮的分布式系统。…

初学51单片机之长短键应用定时炸弹及扩展应用

51单片机RAM区域划分 51单片机的RAM分为两个部分&#xff0c;一块是片内RAM&#xff0c;一块是片外RAM。 data&#xff1a; 片内RAM从 0x00 ~0x7F 寻址范围&#xff08;0-127&#xff09; 容量共128B idata: 片外RAM从 0x00~0xFF 寻址范围(0-255) 容量共256B pdata&am…

ADC位数、增益调制与参考电压

位数&#xff1a;12bit、10bit、8bit 一般就是对应的ADC值分别为&#xff1a;4095、1023、255&#xff0c;也就选用对应位数时ADC的最大值。 增益的作用 增益设置用于放大或缩小输入信号&#xff0c;使其适配到ADC的输入范围。增益设置可以通过配置SAADC的通道配置寄存器来实…

java基于ssm+jsp 毕业生就业信息管理系统

1管理员功能模块 管理员输入个人的用户名、密码、角色登录系统&#xff0c;这时候系统的数据库就会在进行查找相关的信息&#xff0c;如果我们输入的用户名、密码不正确&#xff0c;数据库就会提示出错误的信息提示&#xff0c;同时会提示管理员重新输入自己的用户名、密码&am…

高通安卓12-安卓系统定制1

1.改变系统默认语言 从build/make/target/product/full_base.mk 2.修改开机图片 安卓原版操作方式 找到生成脚本&#xff1a;device\qcom\common\display\logo\logo_gen.py 其中readme.txt有操作说明 命令&#xff1a; sudo apt-get install python-imaging python ./logo_…