Beyond One-Preference-Fits-All Alignment: Multi-Objective Direct Preference Optimization

论文链接:

https://arxiv.org/abs/2310.03708

代码链接:

ACL 2024  MODPO大年夜措辞模型的多目标对齐

https://github.com/ZHZisZZ/modpo

该论文揭橥于ACL-2024 Findings。

一、先容
只管单一措辞模型可以通过RLHF (基于人类反馈的强化学习) [1] 实现与群体均匀偏好的对齐,但这样的措辞模型无法知足多样化的个人偏好:每个人对付不同对齐维度 (有用性,无害性,老实性,等等)有着不同的侧重。
为了实现多目标对齐,一些同期事情依赖MORLHF (多目标强化学习),通过对多个褒奖函数的加权来表示不同人的偏好,但是MORLHF也继续了RLHF的所有缺点,例如演习不稳定以及流程的繁芜性。
MODPO (多目标直接偏好优化) 以最小的代价改进DPO (直接偏好优化),以完成多目标对齐
在这次的事情中,我们提出MODPO,致力于以最小的代价改进DPO (直接偏好优化) [2] 以实现多目标对齐。
这种方法将目标的加权组合以及措辞模型的演习,折叠进褒奖函数的演习过程中,用最大略的监督学习来实现措辞模型的多目标对齐。
在实现上,MODPO仅仅只是在DPO的根本上修正了~2行代码,即在DPO的丢失函数的根本上额外增加一个margin;在理论上,MODPO可以被证明和MORLHF等价;在实验上,MODPO在安全对齐和长篇回答中显示出远超MORLHF的性能和效率。

二、背景:从单目标对齐到多目标对齐

传统的单目标对齐通过最大化偏好褒奖函数

来得到一个符合大众代价不雅观的措辞模型


详细而言,偏好褒奖函数

常日蕴含在给定的偏好数据集中

:

个中

代表人类的提问,

代表被偏好的回答,

代表不被偏好的回答。

在这个偏好褒奖函数下的最优的措辞模型常日知足以下目标函数:

个中

代表对齐前的模型,常日是个监督微调后的根本模型。

虽然这个最优的措辞模型,完美符合大众代价不雅观,但未必能符合多样的个人偏好;为了知足定制化需求,一个常见的做法是在演习的时候引入多个目标,例如在偏好褒奖

之外,再额外引入一个褒奖函数

去鼓励一些定制化的需求(例如惩罚回答中的冗余信息);在多个褒奖函数的线性组合之下,措辞模型的优化目标变成了如下的形式:

个中

代表一个偏好向量;不同的偏好向量会演习出不同的措辞模型

,从而实现对齐目标的定制化。

为了优化公式 (3),最常见的做法利用多目标强化学习(MORLHF) [3,4],但是它继续了强化学习的不稳定性以及流程的繁芜性;与此同时DPO虽然办理了强化学习的缺陷,但是DPO常日只能完成单目标的偏好褒奖的最大化,如何将DPO拓展到多目标优化中并不显然;而MODPO的目的则是在DPO的根本上,做最小的改动来实现多目标的优化。

三、MODPO(多目标直接偏好优化)

我们提出的MODPO的想法实在非常大略,根据DPO中措辞模型和褒奖函数的二象性,公式(3)下的最优措辞模型

实在有个closed-form表达式:

经由一些基本的变换,我们可以把上述公式改写成:

只要我们将公式(5)代入公式(1)所代表的丢失函数,并用参数化的形式来表示措辞模型 (

)和提前演习好的定制化褒奖函数(

),那么就可以得到一个针对措辞模型的丢失函数

:

与常见的DPO丢失函数比较,MODPO丢失函数相称于在DPO的根本上增加了一个margin;通过这个margin,MODPO将目标的加权组合和措辞模型的演习同时折叠进偏好褒奖函数的演习管线中,使得措辞模型被人类偏好驱动的同时,也能被其他定制化目标所驱动

MODPO管线总览:

1. 提前演习得到定制化褒奖函数

,其包括的范围很广,包括但不限于,

hugginface上已有的褒奖函数模型;
人类标的回答的得分(likert score);
类似DPO中利用两个措辞模型得到的褒奖函数。
2. 遍历所须要的所有偏好向量

,对付每一个

,优化此

下的丢失函数 (公式(6)) 来得到一系列知足不同偏好的措辞模型。

MODPO的更通用形式:
只管我们在目前的阐述中,将多目标对齐问题简化成两个目标,但在多个(>2)个目标的情形下,MODPO的丢失函数有个更通用的表达办法

:

个中

s.t.


公式(7)将公式(6)拓展到更多目标的对齐场景中,详细细节欢迎查阅论文。

四、只须要改动两行代码便可以实现从DPO到MODPO拓展

从代码上来看 dpo 和 modpo 的差异可能更加清晰。

dpo loss

https://github.com/ZHZisZZ/modpo/blob/main/src/trainer/dpo_trainer.py#L415

def dpo_loss( self, policy_chosen_logps, policy_rejected_logps, reference_chosen_logps, reference_rejected_logps,): chosen_rewards = self.beta (policy_chosen_logps - reference_chosen_logps) rejected_rewards = self.beta (policy_rejected_logps - reference_rejected_logps) logits = chosen_rewards - rejected_rewards losses = -F.logsigmoid(logits)return losses, chosen_rewards.detach(), rejected_rewards.detach()

modpo loss

https://github.com/ZHZisZZ/modpo/blob/main/src/trainer/modpo_trainer.py#L132

def modpo_loss( self, policy_chosen_logps, policy_rejected_logps, reference_chosen_logps, reference_rejected_logps, chosen_margin_reward, rejected_margin_reward,): chosen_rewards = (1/self.w[0])(self.beta (policy_chosen_logps - reference_chosen_logps) - chosen_margin_reward @ self.w[1:]) rejected_rewards = (1/self.w[0])(self.beta (policy_rejected_logps - reference_rejected_logps) - rejected_margin_reward @ self.w[1:]) logits = chosen_rewards - rejected_rewards losses = -F.logsigmoid(logits)return losses, chosen_rewards.detach(), rejected_rewards.detach()

比较 dpo,modpo 只引入了一个 margin_reward,以是如果你对 dpo 熟习,那么 modpo 将很随意马虎上手。
上面代码中变量阐明如下:

policy_chosen_logps: Log probabilities of the policy model for the chosen responses. Shape: (batch_size,)policy_rejected_logps: Log probabilities of the policy model for the rejected responses. Shape: (batch_size,)reference_chosen_logps: Log probabilities of the reference model for the chosen responses. Shape: (batch_size,)reference_rejected_logps: Log probabilities of the reference model for the rejected responses. Shape: (batch_size,)beta: Temperature parameter for the DPO loss, typically something in the range of 0.1 to 0.5. We ignore the reference model as beta -> 0.

五、实验

我们采取了安全对齐和长篇回答任务来考验MODPO的有效性。
在安全对齐任务中,模型的目标是在模型的有用性和无害性之间取得平衡;在长篇回答任务中,给定一篇长文章和针对该文章的问题,措辞模型须要阅读文章后给出答案。
在这个任务中,措辞模型须要在尽可能符合特定哀求的同时,给出更被人类偏好的回答。
对付3个目标的对齐实验,欢迎查阅论文附录。

对付安全对齐任务,如图1所示,MODPO和MORLHF性能相称(但MODPO更高效);对付长篇回答任务,如图2所示,MODPO远好于MORLHF且更高效。
如表1所示,比较MORLHF, MODPO节省了~3倍的GPU韶光。
图1:不同方法在安全对齐 (左) 和长篇回答 (右) 任务上的帕累托曲线

表1:MODPO和MORLHF的GPU hours比拟

参考文献

[1] Ouyang L, Wu J, Jiang X, et al. Training language models to follow instructions with human feedback[J]. Advances in neural information processing systems, 2022, 35: 27730-27744.

[2] Rafailov R, Sharma A, Mitchell E, et al. Direct preference optimization: Your language model is secretly a reward model[J]. Advances in Neural Information Processing Systems, 2024, 36.

[3] Wu Z, Hu Y, Shi W, et al. Fine-grained human feedback gives better rewards for language model training[J]. Advances in Neural Information Processing Systems, 2024, 36.

[4] Rame A, Couairon G, Dancette C, et al. Rewarded soups: towards pareto-optimal alignment by interpolating weights fine-tuned on diverse rewards[J]. Advances in Neural Information Processing Systems, 2024, 36.

作者:刘杰

来源:【知乎】https://zhuanlan.zhihu.com/p/684965730

llustration From IconScout By IconScout Store
-The End-

扫码不雅观看!

本周上新!

“AI技能流”原创投稿操持

TechBeat是由将门创投建立的AI学习社区(www.techbeat.net)。
社区上线500+期talk视频,3000+篇技能干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上互换活动,不定期举办技能人线下聚会互换活动。
我们正在努力成为AI人才喜好的高质量、知识型互换平台,希望为AI人才打造更专业的做事和体验,加速并陪伴其发展。

投稿内容

// 最新技能解读/系统性知识分享 //

// 前沿资讯讲授/心得经历讲述 //

投稿须知

稿件须要为原创文章,并标明作者信息。

我们会选择部分在深度技能解析及科研心得方向,对用户启示更大的文章,做原创性内容褒奖

投稿办法

发送邮件到

chenhongyuan@thejiangmen.com

或添加事情职员微信(chemn493)投稿,沟通投稿详情;还可以关注“将门创投”"大众号,后台回答“投稿”二字,得到投稿解释。

关于我“门”
将门是一家以专注于数智核心科技领域的新型创投契构,也是北京市标杆型孵化器。
公司致力于通过连接技能与商业,发掘和造就具有环球影响力的科技创新企业,推动企业创新发展与家当升级。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技能型创业公司。
如果您是技能领域的初创企业,不仅想得到投资,还希望得到一系列持续性、有代价的投后做事,欢迎发送或者推举项目给我“门”: