模型融合(Model Merging):合理性、常见技术及其特性

大模型

picture.image

引言

开源LLM世界百花齐放,除了通用Base模型、SFT模型之外,另有一类 融合模型(merged model) 常出现在各类榜单的top位置。

模型融合(model merging)指: 将多个SFT模型在参数粒度上进行合并,得到一个融合模型

Model Merging能取得近似于 multi-task learning的效果,即融合模型能够 同时“学会” 多种任务,也 可能 取得更好的in-domain performance、更好的out-of-distribution generalization。

Model Merging在LLM时代也是合时宜的技术,因为它:

  1. 无需训练 ,节省了大量的机器成本、时间成本;
  2. 只需模型参数,而无需训练数据 ,规避了数据隐私问题。

这引起了笔者的兴趣: 模型融合靠谱吗?有哪些常见技术?该技术的特性是什么?

本文将针对这三个问题进行讨论。

picture.image

模型融合,合理吗?

Delta Parameters的冗余性

首先从SFT过程的冗余性谈起。

先引入一个概念,叫 delta parameters,其值为,直观理解就是SFT前后的参数变化值。

Language Models are Super Mario: Absorbing Abilities from Homologous Models as a Free Lunch[1]提出一种对模型参数进行稀疏化的方法 -- DARE,其方法类似dropout:随机drop一定比例的 delta parameters(置为0),对剩余的parameters进行rescale,即除以(1-drop_rate),以保证output的期望一致。

picture.image

实验发现 drop rate在90%-99%时,效果与原模型相差无几 ;而且模型 越大 ,可以丢弃的 delta parameters 越多

因为 delta parameters是高度冗余的,因此可以在合并模型前,先丢掉大量的冗余参数,这样合并后的模型更不容易出现interference(干扰)现象, 合并效果也就有了保障 。形象化理解可参见下图。

picture.image

Task Vector的正交性

此处的 task vector等同于上节提到的 delta parameters,源自Editing models with task arithmetic[2]的提法,因为这些参数是在某个task上FT后得到的,带有这个task的信息,因此称之为 task vector

picture.image

Task-Arithmetic论文对多个 task vector进行了相似度计算,发现它们之间的相似度极低, 除了少数彼此关联的任务外,其余的 task vector几乎都是正交的。

由于 task vector之间的正交性,即使直接对参数进行平均,效果也还不错。

前提

就笔者阅读的论文而言,参数融合有一个必要前提:

用于融合的SFT模型必须源自同一个Base模型 ,即其模型结构一致、SFT的initilization一致。

其背后的原因在于: 用于合并的 delta parameters/task vector的数值不可过大,否则会明显影响合并效果。

DARE论文中有一个实验:当用于计算 delta parameters的SFT模型(WizardCoder-Python-13B )并不源自Base模型(Llama-2-13b)时,其 delta parameters较大 (> 0.005),此时 仅drop 10% 的参数也会导致效果骤降。

picture.image

Task-Arithmetic论文研究了 在FT时采取不同量级的learning rate对合并效果的影响。发现当learning rate较大时,合并效果明显下降。

这与 DARE论文的实验异曲同工,均说明 delta parameters/task vector的数值较大时,合并效果是有影响的。

至于数值多大算大? DARE给出的数字是 0.005 ,当大多数的 delta parameter小于此值时可进行合并,否则不建议合并。

模型融合的常见技术

任务定义

输入

  • n个SFT Model
  • 1个Base Model
  • 通过相减得到每个SFT Model的delta parameter

输出

  • 1个merged Model

Simple Averaging

由于前文提到的 冗余性正交性特征,这一方法在少量模型融合的场景效果也还尚可,通常作为baseline进行比较。

Fisher Averaging

简单来说,Fisher Averaging[3]就是 在合并时先对每个weight进行加权 。其公式如下:

其中,为 Fisher Information Matrix,用以衡量任务i中每个参数的重要性。其公式如下:

picture.image

Task Arithmetic

Task Arithmetic对进行sum后,乘上scale term ,与Base Model合并后得到融合模型 。其公式如下:

作为scale term,从验证集中挑选得来;论文实验发现, 0.3 - 0.5的值一般比较好 ,没有validation(或者懒)的时候,直接设置为0.3 - 0.5即可。

RegMean

RegMean方法[4]只针对linear layer的融合,其思想是: 合并后的模型输出要与合并前的模型输出尽可能接近 。其目标函数如下:

picture.image

在linear layer的设定下,该问题直接有 close-form solution

picture.image

原论文应用 RegMean方法的策略如下:

  1. 对linear layer使用 RegMean方法进行参数融合;
  2. 对非linear layer,使用simple averaging方法进行参数融合。

TIES-Merging

TIES[5]的核心思想是 尽量减少干扰(interference) ,从而取得更好的模型融合效果。

作者提出有两类干扰:

  1. 冗余参数带来的干扰 ,这类干扰就像noise;
  2. delta parameter的不同方向带来的干扰 ,例如任务1要往东走、任务2要往西走,两者相加带来抵消,使得两个任务都做不好。

TIES就是为了解决这两类干扰。其框架图如下:

picture.image

其核心步骤有三:

  1. Trim 。对每个待合并模型,仅保留 magnitude最大的top 20% 参数,其余参数置为0;
  2. Elect 。得到每个参数的 merged sign(即方向,取值+1、-1、0),merge策略类似于max-pooling -- 计算每个方向的magnitude和,选择magnitude最大的方向作为 merged sign,也可以认为这是一种“投票”机制,少数任务服从多数任务;
  3. Disjoint Merge 。对每个参数,仅保留符合 merged sign的参数,然后进行直接平均,但计算平均时并不包括值为0的参数。

经过以上步骤,得到,然后像 Task Arithmetic一样加入scale term,与Base Model参数合并,得到Merged Model:

值得一提的是,作者实验发现如果使用 oracle merged signTIES方法的效果可以直逼Multi Task Learning方法,说明Elect阶段还有很大的提升空间。

DARE

DARE方法前文已有介绍,其本身并不直接merge,而是提供了一种对 delta parameters进行稀疏化的工具,因此可以作为 预处理方法,被应用到任何一个merge方法之中

模型融合的技术特性

In-Domain Performance

融合模型既然对标Multi-Task Learning,其第一个关注点在于:

在同任务上,融合后的单一模型,和融合前的各个模型相比,表现如何?

纵观论文,可以发现以下特性:

特性1 :融合模型的效果, 通常 比融合前的SFT模型差,更比Multi-Task Learning模型差;但随技术发展,其差距在减小,甚至 偶有提升

picture.image

TIES 论文结果为例,所有融合模型的效果距离第一列的 FINE-TUNED (即用于融合的SFT模型) 和 MULTITASK (即用多个dataset,进行multi-task learning后得到的模型) 仍有不小的差距。

picture.image

然而 DARE论文的实验表明,通过 DARE + Task-Arithmetic有可能得到效果更好的融合模型 。例如融合WizardLM-13B和WizardMath-13B之后,其instruction following和math reasoning(GSM8K)能力都比单独的模型要 更好

不过需要指出的是,这一效果提升似乎 并无规律 可言,并且融合的模型也不多,最多才3个而已,不过这还是给模型融合这一方向注入了信心 -- 融合模型的效果有可能比单模型更好

特性2 :融合的模型越多,效果的损失也越大

picture.image

融合的模型多了,各参数间互相干扰的情况愈发严重,因此带来效果损失也是情理之中的事情。从 TIES论文的结果来看, 当merge模型达到7个时,表现最好的 TIES也只能取得原模型效果的85% ;不过当merge模型只有2个时, TIESTask-Arithmetic都能 几乎保持原模型的效果

Out-Of-Distribution Generalization

Multi-Task Learning的另一个重要特性是OOD Generalization,这也是融合模型的第二个重要关注点。

所谓OOD Generalization,指的是 模型在同任务、但没见过的数据分布上的泛化性

picture.image

TIES论文的实验来看,融合模型的OOD Generalization能力还不错,说明 融合模型在一定程度上学到了鲁棒的task解决能力

其他使用场景

模型融合还有一些使用场景:

  1. 在一次训练当中,融合多个checkpoint,以提升模型的训练效果;
  2. 将融合模型作为进一步Fine-Tuning的起点,以取得更好的FT效果;
  3. Task Vector不仅可以用于加(即模型融合),也可以用于减(即让模型遗忘某些能力)。

总结

模型融合在参数粒度上对模型进行合并,乍一看非常不科学,但其背后有SFT参数更新的 冗余性 、Task Vector的 正交性 做支撑,具备一定的合理性,即使在目前还不算复杂的融合方法下,也已经能够取得不错的效果。

同时,本文介绍了5种Merge算法、1种预处理算法,并对模型融合的技术特性进行了归纳,希望帮助读者对模型融合产生一个比较全面、深入的认识。

笔者认为模型融合是一个很好的分析工具,它可以 帮助我们理解LLM是如何“解锁”某一任务的 ,这对于理解并优化LLM的Task Adapation能力是有意义的。

关注笔者

关注笔者(漫谈NLP),了解更多有趣、有用的NLP/AI知识:)

picture.image

参考资料

[1] Language Models are Super Mario: Absorbing Abilities from Homologous Models as a Free Lunch(DARE): https://arxiv.org/abs/2311.03099

[2] Editing models with task arithmetic: https://openreview.net/pdf?id=6t0Kwf8-jrj

[3] Merging Models with Fisher-Weighted Averaging: https://arxiv.org/abs/2111.09832

[4] Dataless Knowledge Fusion by Merging Weights of Language Models(RegMean): https://openreview.net/pdf?id=FCnohuR6AnM

[5] TIES-Merging: Resolving Interference When Merging Models: https://arxiv.org/abs/2306.01708

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论