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

bcabad47b08f9ff9a8d6b0b59955a449.gif

©作者 | 汪军、张海峰等

单位 | 中科院、伦敦大学学院

来源 | 机器之心

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

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

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

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

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

b3c35590f8dff78bbab7407294921f65.png

论文标题:

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 的主要区别如下图所示:

f710fb85acf23fa7531ed0f886f71ef6.png

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

ffa3e952dc3fe3c7cf498721062aceac.png

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

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

ea19d0199890557751fa00518a50a045.png

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

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

8d3b6e08880aa718619c20a2e5bfb53a.png

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

73625698892cece6a7e944b07e982b48.png

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

528a4db4df9a2c5484ed00a0811a8971.png

TDPO

符号标注

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

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

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

4364911286d92caa4f4fe4f40ba459ff.png

其中,341cc237af240fb9f47008e8a8cd08cf.png 表示折扣因子。

cafd0465f790e6901d221cc8b087ce0a.png

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

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

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

ba14f84a0f50cbf522aa414a304cd9c0.png

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

ce8800859b9114324cc2b6381b5c2842.png

f46f88fd7aa038d89f18a8a54ad69e4b.png

推导

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

9ccaacebefe278c09ab1813b20bc851c.png

其中, 表示配分函数。

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

d5b2bb6a600b400f4f3a69d7e0590f9d.png

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

5e38169c810e5d9acbdac18b7312db63.png

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

a828a423f4d6c060b0ca03051e10f2f1.png

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

32ff1803d8c17fe89cefe8d74b6db97b.png

考虑到在实际中,d7afed2abb6aaf29db6619138fe73c29.png损失倾向于增加ae9598b30d5e9ba57b8e1b32f8ced870.png,放大bfbcfcc83ed7f0861ae1c07498f26982.png29cae55fb7432b0f835c934cf20e81a1.png之间的差异,TDPO 提出修改方程 (9) 为:

3279710d085861a49ba97d92c17178f1.png

其中9df3486efaded5dfaacd210b72957758.png是一个超参数,而

a4c858c5b01e99a199c82280e67ba25d.png

这里,8487430968ab8818edf77176c4c510fb.png表示停止梯度传播运算符。

我们将 TDPO 和 DPO 的损失函数总结如下:

143653450821f0d7a0e32b1bd6d3ca0d.png

由此可见,TDPO 在每个 token 处引入了这种前向 KL 散度控制,使得在优化过程中能够更好地控制 KL 的变化,而不影响对齐性能,从而实现了更优的帕累托前沿。

dc791f4d5291d015424345781de4e1cc.png

实验设置

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

IMDb

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

ab7f578ff2b14efc4d8689db87a5112b.png

从图 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 所示。

0deaad67399b8f862cf8d08133c20270.png

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

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

ee63aa38f7e84ff2992ba4fd3dcc541b.png

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

MT-Bench

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

09b5a3d6ccb3192b1bdc16e33fac134f.png

在 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 微调训练得到的性能,以下是实验的实验结果:

ef619405222245c31a02324b35c8abc2.png

▲ 表2. DPO, TDPO, SimPO 算法性能对比

了解更多结果,请参考原论文。

更多阅读

9d325095b908263b208010843faf4d15.png

61c197b940f069df1c213ce8f5de2011.png

1b04899e1d67e4d7ac71bd15318055bf.png

5e7d3798d305d1afe0f4dec592a86740.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

7fb62c2902b9b28f89313f8daa9ae328.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

·

c6e6026ef65eef059fcc559107f4be23.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,sentinel-token-server是用于实现集群流控的一种机制。在使用sentinel进行集群流控时,需要将所有的dubbo服务端注册到sentinel控制台,并确保它们的-Dproject.name的值相同,或者启动类的名字相同。如果项目是springcloud,可以不加-Dproject.name配置,默认使用服务名称。如果不是springcloud,可以通过修改sentinel-core中的SentinelConfigLoader来配置。同时,需要监听TokenServer的nameSpace的名称,通过监听token-server-cluster-map中的内容来动态配置token-server的地址和等待transport端口分配。 #### 引用[.reference_title] - *1* *2* [【sentinel】sentinel 集群流控中的Token Server与Token Client的含义(七)](https://blog.csdn.net/s1441101265/article/details/107639852)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Sentinel-基于Curator、Apollo实现高可用独立模式TokenServer部署下的集群限流](https://blog.csdn.net/hosaos/article/details/101639320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值