Model Merging with DARE: 一种集百家之所长的多模型聚合方案

容器混合云

提纲

1 简介

2 方法‍‍‍‍

2.1 DARE

2.2 Model Merging with DARE

3 实验结论

4 讨论

参考文献

1 简介‍‍‍‍‍‍‍‍

我们经常基于同个基底模型,通过在不同业务数据上进行SFT得到多个下游任务模型,每个模型的能力都有所差异,那么是否有办法让一个模型同时拥有下游所有模型的能力吗?近期  **阿里提出了一个新方案DARE(Drop And REscale),在不影响SFT模型能力的同时,将更新的模型参数量压缩到极低的水平,同时基于DARE将多个SFT的模型参数进行融合,得到一个集百家之所长的语言模型。** 

‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍

2 方法

假设pPRE表示作为基底的预训练语言模型的参数,对于任务t,基底模型在特定任务数据上通过SFT后得到对应的finetune模型,对应参数记录为pSFTt。SFT模型参数跟基底模型参数之间的差异记为difft=pSFTt-pPRE 。

2.1 DARE

DARE的做法非常简洁,  **在给定difft前提下,需要依次执行两次操作,其一是Drop,按照一个预先设置好的比例,随机将difft的部分元素重置为0,其二是Rescale,将difft保留下来的元素(没被重置)乘上一个放缩系数,以保证模型输出的期望能基本不变。** 通过DARE后,SFT模型的大量模型参数变得跟基底模型一致,也就是说,DARE只让极少数的模型参数进行了更新,只保留了极少数的参数更新量,从而减少了冗余。可以参考图中的(a)示例。

picture.image

图1: DARE详解

2.2 Model Merging with DARE

通过DARE可以有效减少SFT模型中更新的参数量,记为p

DART t (也就是diff t 中被保留下来并进行缩放后的参数)。在给定K个任务下的SFT模型后,利用DARE可以将多余参数更新值重置为0,然后 将这K个任务下的参数更新值p DART t 通过一定方式融合,作为聚合模型的参数更新值,加到基底模型中去,就可以得到聚合模型的参数值。这种聚合方式不需要额外的模型数据,也不会增加额外的推理耗时。可以参考上图中的(b)示例。

3 实验结论‍‍‍‍‍‍‍‍

    a) 无论是基于encoder还是基于decoder 的语言模型,DARE即便设置为较高的丢弃比例(高达90%,甚至99%),也没有对性能有明显影响,同时规模越大的模型,能容忍更大比例的丢弃比例。也就是说传统的SFT模型的参数量更新都非常冗余,也就是很多参数是不需要更新的。

picture.image

图2: 不同丢弃比例下DARE的性能表现

b) 基于DARE的模型聚合,研究人员在三个不同模型(LM, Math, Code)上进行了实验,通过不同的聚合方式,比对了聚合模型跟单模型在3个不同类型任务下的实验结果,  **最终发现聚合模型能有效地融合多个单模型的能力,从而在诸多任务上都有不俗的表现(可能在某些任务上不如经过SFT的单模型)。也就是,基于DARE的模型聚合,是可以有效的将多个模型的能力都迁移到聚合模型中去的。** 

picture.image

图3: 多个模型参数聚合的效果

4 讨论‍‍‍‍‍‍‍‍‍

SFT模型相对基底模型通常在某些能力上会有所提升,而这正是由于模型参数的更新值所带来的,如果能有效减少每个SFT的模型参数更新值,那么就更有可能让基底模型同时接纳多个SFT模型的参数更新值而不至于相互影响。至于为什么DARE是作用于参数更新值,而不是直接对模型参数进行,应该为了最终效果考虑,前者说到底能在基底模型的基础上进行,不会对基底模型的能力有太多影响(站在巨人的肩膀上),后者则难以想象。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

模型参数冗余的问题之前也见到不少,无论是训练时固定特定层参数,还是Dropout之类的做法,论文中的DARE都跟之前的方式有明显差异,做法简洁直观,收益颇丰。无论是对单模型的优化,还是提供新的模型聚合思路,都是能给实际使用带来巨大价值的。

关于模型聚合这部分,还是需要在更多数量模型上实验才能进一步论证这种方式的有效性。我比较担心当需要聚合的模型数量增加后,经过DARE后各个模型参数更新值会相互覆盖,从而导致语言模型的灾难性遗忘,不能继承到多个单模型的能力。

参考文献

1 Language Models are Super Mario: Absorbing Abilities from Homologous Models as a Free Lunch

https://arxiv.org/pdf/2311.03099.pdf

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
大规模高性能计算集群优化实践
随着机器学习的发展,数据量和训练模型都有越来越大的趋势,这对基础设施有了更高的要求,包括硬件、网络架构等。本次分享主要介绍火山引擎支撑大规模高性能计算集群的架构和优化实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论