大数跨境
0
0

如果我搬出RLHF+GAN这个设定,你如何应对

如果我搬出RLHF+GAN这个设定,你如何应对 极市平台
2023-12-27
2
↑ 点击蓝字 关注极市平台
作者丨程鹏宇
来源丨李rumor
编辑丨极市平台

极市导读

 

作者提出一种自动构造偏好数据的方法,随后在这个思路上延伸出了一个RM和LLM对抗博弈对齐方法APO。APO可以在不增加标注数据量的前提下通过对抗进一步增强RM和LLM的表现,同时缓解LLM的样本分布偏移问题。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

卷友们好,我是rumor。

前阵子腾讯AI Lab悄悄挂出了一篇文章:Adversarial Preference Optimization (APO),看到设定我就惊呆了:RLHF+GAN,难道还嫌RLHF本身不够难训吗?但读下来发现作者其实是想解决RLHF一个很重要的问题,而且给出的方法既fancy又优雅

下面,我们直接有请一作本人程鹏宇大佬来讲一下心路历程🎉。

注:文中有公式,请切换到白色背景查看。

RLHF辛酸泪

先从RLHF的任务讲起吧, RLHF的全称是 reinforcement learning from human feedback。字面意思就是用RL的方法把大模型训练得更加符合人们的反馈。这里反馈其实就是人们对大模型回复质量的评价。还是蛮主观的一件事, 尤其是对一些开放性问题, 其实很难讲大模型的回复到底好到什么程度。但是如果对同一个问题给出两个回复, 通过对比人们至少能在两个回复里挑出一个更好的, 这大概就是所谓的“没有比较就没有伤害”吧。

于是人类反馈数据都长成了一个问题和两个比较过的回复的格式 。因为每次反馈就是从两个回复里挑个更好的, 代表了标注人员的偏好, 所以RLHF解决的任务也被称为偏好对齐 (Human Preference Alignment)。

然而, 从两个回复里面挑一个好的, 这个事情真的会容易吗?

我们在自己的业务场景试着去对齐了一下大模型, 结果在数据标注的环节就被卡到怀疑人生😭。一开始我们想着这个挑回复的事情应该不复杂, 想着组织一下实习生们, 十几个人每人标一些, 数据应该很快就标完了。结果才进行了两天, 实习生已经扛不住了, 有些甚至想回学校好好学习了。。。

我们表示不能理解, 又不用自己写回复, 两个里面挑一个不是扫一眼就知道怎么选了吗? 于是我们每人亲自上手试着标了一两百条, 才真正理解了里面的痛。很多输入文本不是我们想象的一个简单的问题, 可能有着很长的一段问题描述, 甚至是多轮对话的上下文, 有点时候光理解问题就要花好几分钟的时间。然后回复的文本如果差别很大还比较容易区分, 如果回复内容接近又很长的话, 真是可以在回复的选择中纠结到地老天荒。。。

亲手标过数据之后,我们已经见识到这个人类反馈任务的可怕。更可怕的是,在大模型对齐的过程中还存在样本分布偏移的问题:当大模型经过一段时间迭代后,输出文本分布会产生偏移,但是在新分布下的模型输出并没有进行过偏好标注,这会导致对齐算法的效率大幅下降

如下图,偏好标注(红色虚线)原本可以覆盖模型的输出分布(左图蓝色曲线),但当模型更新后,样本输出分布(右图绿色曲线)与偏好标注范围产生不一致。

样本分布偏移

针对分布偏移问题,我们先看看Meta的LLaMA-2文章里是怎么说的:

Llama 2-Chat improvement also shifted the model’s data distribution. Since reward model accuracy can quickly degrade if not exposed to this new sample distribution, i.e., from hyper-specialization (Scialom et al., 2020b), it is important before a new Llama 2-Chat tuning iteration to gather new preference data using the latest Llama 2-Chat iterations. This step helps keep the reward model on-distribution and maintain an accurate reward for the latest model.

这里reward model(RM)是指通过人类反馈学习出来的奖励模型,可以代表人类的偏好,并对模型的回复打分。上面这句话翻译翻译就是大模型迭代之后输出分布会变,所以要让大模型重新生成回复样本,然后在新样本上重新进行人工标注。。。也就是说在一个完整的大模型对齐训练中,我们还要被人类反馈标注反复的蹂躏。。。

解决方案

那有没有什么办法可以减少偏好数据的标注量去提高对齐效率呢?对于这个问题,我们尝试了两个思路:

  1. 提高偏好数据的sample efficiency
  2. 更高效地构造偏好数据。

第一条路我们作出了几个尝试:

  • 我们借鉴了NLP领域常用的“预训练+领域数据微调”的思路,把公开的各偏好数据集作为“通用偏好数据”对RM先进行预训练,然后在把我们收集的少量“定制化偏好数据”做二阶段微调,通过这种方法提高了定制化偏好数据的sample efficienc。具体细节可以看我们这篇《Everyone Deserves A Reward: Learning Customized Human Preferences》[2]。
从通用偏好到定制化偏好的多阶段训练
  • 针对偏好数据中的噪声问题(不同的标注人员的标注结果可能不一致,不同的数据集的偏好也可能冲突),我们提出了通过多目标优化的方法让Reward Model学到不同数据集的帕累托最优,缓解数据中的噪声问题。具体细节可以看我们的《On Diversified Preferences for Large Language Model Alignment》[3]。

我们来重点讲讲第二条路, 如何更高效地构造偏好数据

回到LLaMA-2解决LLM分布偏移的话题上, 在每次对模型新生成的样本进行标注的过程中, 生成新样本其实是很容易实现的, 只要不断地用 queries 去调用模型 , 就可以采样多个回复

LLaMA的偏好标注方法是让回复 相互之间两两组合, 然后再人工标注哪个更好 (听着就很痛苦。。。)

我们就在想, 有没有办法不用标注就知道哪个回复好呢? 这些LLaMA模型生成的回复不能判断, 那我们直接拿一个更牛逼的模型, 比如GPT-4, 直接生成一个碾压LLaMA回复的金标准 , 那不是想都不用想 要比 要好嘛, 这样不是就自动把偏好数据生成出来了嘛。

Wait a minute!在这个过程里RM需要用金标准 跟模型输出的 进行对比, 而LLM需要不断提升输出 在RM评价下的打分, 这个故事怎么那么熟悉似曾相识? GAN内味出来了有木有?LLM充当一个generator, RM充当一个discriminator, 开始对抗起来了有木有? 马上把公式写出来看看! 我们记大模型输出策略为 , 偏好打分模型为 , 那么:

  • 这是大模型对齐的目标:

  • 我们先把金标数据加进来,由于跟 无关,不会影响LLM的优化:

  • 然后RM不是要对抗起来嘛, 那就 min-max game一下:

  • 在RL优化大模型对齐的时候, 为了防止不稳定, 需要加正则项约束一下 , 不要跟 reference 偏的太远, 需要加入KL散度的正则项:
  • 对抗训练也是出了名的不稳定, 所以我们也在RM上加一个正则项:

这样一个基于RM和LLM的对抗博峦就构造完成, 就叫它Adversarial Preference Optimization (APO) 吧!

这里 是用来限制 的偏好分布不要和真实的偏好分布差距太大, 具体细节可以在我们文章里查看。

再直观解释一下APO的博恋过程: LLM模型 需要不断提高回复质量, 使得自己的回复和金标数据之间的得分差距减小, 而 模型 需要不断将LLM回复和金标回复的得分差距拉大。同时两个KL正则项会约束RM和LLM不要对抗得过于离谱。通过这种博峦, RM可以跟随LLM的变化而迭代,模型分布偏移的问题也就得到缓解了。

APO的RM和LLM交替训练流程

具体的算法实现上,我们让RM和LLM交替地进行迭代,流程画在上面的图里:

  • 在LLM迭代步骤中,我们把RM参数固定,那么博弈目标转换为正常的LLM偏好对齐,可以使用PPO、RRHF、DPO、Rejection Sampling等方法求解,详情可以参考rumor姐的《一些RLHF的平替汇总》。流程都是让LLM对训练queries推理出对应回复样本,再用RM对回复进行打分,最后用打分结果来更新LLM。
  • 在RM迭代步骤中,我们把LLM参数固定,让LLM在RM训练queries上推理得到回复样本。然后将生成的回复样本和金标准回复进行组合,得到新的APO偏好数据,用来更新RM。

效果

方法讲的差不多了,那看看APO的实验效果吧。我们在 Helpful&Harmless (HH) 偏好数据集上进行了对齐实验。首先我们把HH训练集里面的queries抽出来,通过调用GPT-4的接口得到一批金标回答。然后我们选择了 rejection sampling 方法作为基线,RM模型选择 LLaMA-7B,LLM的SFT模型选择 Alpaca-7B,进行了三轮对抗迭代。在对抗迭代中,我们尝试了两种RM的更新方式:

  • From Base:每一轮都是基于base RM用新的APO对抗数据进行更新,
  • Sequential:每一轮都是在上一轮RM的checkpoint上用新的APO对抗数据进行训练。

关于RM和LLM表现的实验结果有点多。。我们就画了两个模型表现的图表这样看起来直观一点:

  • 左侧的图表展示了APO训练后RM的表现变化,纵轴为RM在测试集上的准确率,横轴为模型的校准误差(Calibration Error)。可以看到,通过加入APO训练数据,RM准确率可以一致地获得提升。尤其是通过Sequential的方式更新RM(从APO-v1 到 APO-v2seq 再到 APO-v3seq)可以将RM的准确率持续提升。但于此同时RM校准表现会有一定的损失。
  • 右侧图表展示了APO训练对大模型对齐的效果增益,纵轴轴为测试RM对LLM回复的平均打分,代表LLM的对齐质量,横轴为对抗迭代的轮数。用From Base训练的RM进行APO对抗的结果(红色虚线)可以持续地跟 rejection sampling 基线(蓝色虚线,仅用 Base RM 进行对齐)拉开差距。而Sequential训练的RM可以在第二轮获得更好的效果,但是在第三轮时效果反而下降,我们推测应该是持续训练轮次太多导致RM overfit的原因。

除此之外我们还让GPT-4对LLM的回复进行了评价。如下图所示,通过APO训练的模型可以相比于RJS基线获得显著提升。

总结

总结一下,我们在尝过大模型人类反馈标注的痛之后,痛定思痛,想到一种自动构造偏好数据的方法,随后在这个思路上延伸出了一个RM和LLM对抗博弈对齐方法APO。

APO可以在不增加标注数据量的前提下通过对抗进一步增强RM和LLM的表现,同时缓解LLM的样本分布偏移问题。作为一种通用的训练框架,APO也可以跟一众对齐方法(RLHF,RRHF,DPO等)兼容,可以进一步提升这些对齐方法的效果。

然而大模型对齐的方向道阻且长,希望我们这一点小小的心路分享可以抛砖引玉,期待看到卷友们更多的fancy ideas来更高效地对齐大模型!

参考资料

[1]Adversarial Preference Optimization: https://arxiv.org/abs/2311.08045

[2]Everyone Deserves A Reward: Learning Customized Human Preferences: https://arxiv.org/abs/2309.03126

[3]On Diversified Preferences for Large Language Model Alignment: https://arxiv.org/pdf/2312.07401.pdf

公众号后台回复“数据集”获取100+深度学习各方向资源整理

极市干货

技术专栏:多模态大模型超详细解读专栏搞懂Tranformer系列ICCV2023论文解读极市直播
极视角动态欢迎高校师生申报极视角2023年教育部产学合作协同育人项目新视野+智慧脑,「无人机+AI」成为道路智能巡检好帮手!
技术综述:四万字详解Neural ODE:用神经网络去刻画非离散的状态变化transformer的细节到底是怎么样的?Transformer 连环18问!

点击阅读原文进入CV社区

收获更多技术干货

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读3.2k
粉丝0
内容8.2k