定义 / 核心思想
模型融合(Model Merging)是指不做额外训练,直接在参数空间里把多个同结构模型(通常是同一个预训练模型分别微调出的多个 checkpoint)的权重合并成一个模型,希望融合后的模型同时具备各个来源模型的能力。
最朴素的做法是逐参数取平均,但不同任务微调出来的权重更新方向可能互相冲突,简单平均容易造成能力互相抵消,于是有了一系列更精细的合并方法。
关键方法
- Task Arithmetic(任务向量):把“微调后权重 − 预训练权重“定义为一个任务向量 τ,多个任务向量可以直接加权求和再加回预训练权重,甚至可以做“减法“来遗忘某种能力。
- TIES-Merging:解决任务向量之间的符号冲突和冗余参数问题,三步走——Trim(裁掉每个任务向量里幅度小的冗余分量)、Elect Sign(对每个坐标,多个任务向量投票决定最终符号)、Merge(只对符号一致的分量做平均)。
- DARE(Drop And REscale):在合并前,随机丢弃任务向量里的大部分参数(如 90%),再对剩下的参数按丢弃比例放大,减少参数间冗余和冲突,常与 Task Arithmetic / TIES 结合使用。
- SLERP:在球面上对两个模型的权重做球面线性插值,比线性插值更能保持权重向量的“方向“信息。
- Fisher 加权平均:用 Fisher 信息矩阵衡量每个参数对各任务的重要程度,重要的参数在融合时被赋予更大权重。
常见理解误区
- 模型融合 ≠ 知识蒸馏:蒸馏是用一个模型的输出去训练另一个模型;融合是直接合并参数,不需要额外训练数据或训练过程。
- 模型融合 ≠ 集成学习(Ensemble):Ensemble 是推理时同时跑多个模型再组合输出(推理成本翻倍),融合是提前把参数合并成一个模型,推理成本和单模型一样。
- 融合效果强烈依赖“模型之间的距离“——如果几个 checkpoint 是从同一个预训练权重微调出来的(参数空间离得近),融合通常比较有效;如果模型架构/初始化差异很大,直接融合大概率失败。
我在项目中的应用
在南方科技大学 CIAM 实验室的主要研究方向:模型融合算法的设计与改进研究,与 ES 算法结合展开(零阶优化是次要方向),从事算法研究而非单纯文献调研,论文投稿中。
TODO: 补充具体在哪些任务/模型上做融合实验、用了哪种融合方法、和 ES 具体是怎么结合的。
参考资料
- Ilharco et al., “Editing Models with Task Arithmetic”
- Yadav et al., “TIES-Merging: Resolving Interference When Merging Models”
- Yu et al., “Language Models are Super Mario: Absorbing Abilities from Homologous Models as a Free Lunch” (DARE)