模型融合与合并(Model Merging)
不训练、不用 GPU、几分钟就能「合」出一个更强的模型——模型融合(model merging)是 2024 年以来开源社区的热门技巧,开源榜单上大量高分模型都是 merge 出来的。本文讲清它的原理、主流算法和适用边界。微调基础见 微调范式、LoRA。
一、什么是模型融合?
把多个同架构模型的权重按某种方式组合成一个新模型,让它同时具备各模型的能力——全程只做权重运算,不需要训练数据、不需要反向传播。
数学模型权重 ┐
代码模型权重 ┼─► 合并算法 ─► 一个既会数学又会代码的模型
对话模型权重 ┘ (只算权重,几分钟,CPU 即可)前提:被合并的模型必须同架构、同尺寸,且通常源自同一个基座模型(微调分支),否则权重不在「同一个坐标系」里,合并无意义。
二、为什么能 work?任务向量(Task Vector)
核心概念:任务向量 = 微调后权重 − 基座权重,它代表「这次微调学到了什么」。
$$\tau = \theta_{\text{finetuned}} - \theta_{\text{base}}$$
- 任务向量可以加(叠加多个能力)、减(遗忘某能力)、缩放(调强弱)。
- 这建立在一个经验性观察上:从同一基座微调出的模型,其参数停留在损失曲面的同一个低损失盆地里,权重做线性组合仍大概率落在低损失区——所以「平均权重」不会崩。
三、主流合并算法
| 算法 | 思路 | 特点 |
|---|---|---|
| Linear / Model Soup | 多个模型权重直接加权平均 | 最简单,同任务多个 checkpoint 平均很有效 |
| SLERP | 球面线性插值(在角度上插值而非直线) | 保持权重「方向」,两模型融合常优于线性 |
| Task Arithmetic | 多个任务向量相加后加到基座 | 可加可减,能力可组合/遗忘 |
| TIES | 任务向量先裁剪小值、解决符号冲突再合并 | 缓解多模型参数「打架」 |
| DARE | 随机丢弃大部分任务向量增量再放大补偿 | 减少冗余/干扰,常与 TIES 组合 |
- TIES 的洞见:不同任务向量在同一参数上可能符号相反(一个想增、一个想减),直接平均会互相抵消;TIES 先去掉幅值小的更新、再按多数符号对齐,保留真正重要的更新。
- DARE 的洞见:微调增量里有大量冗余,随机置零 90% 再把剩下的放大,效果几乎不掉,还减少了模型间干扰——常作为 TIES/Task Arithmetic 的预处理。
- 工具:MergeKit 是事实标准的合并工具库。
四、特殊形态
- Frankenmerge / Passthrough:把不同模型的层拼接起来,甚至堆叠出比原模型更深的「缝合怪」(如把若干层重复堆叠成更大的模型),效果玄学但偶有惊喜。
- MoE 化合并:把多个专家模型合成一个 MoE(如 mergekit-moe),用路由选择专家,见 MoE 专题。
- LoRA 合并:多个 LoRA 适配器可以加权合并,或合并进基座(见 LoRA 的 merge)。
五、适用场景与边界
适合:
- 把多个领域微调模型的能力合一(数学 + 代码 + 中文);
- 同一训练的多个 checkpoint 平均(model soup,提鲁棒性);
- 零成本快速试验「能力配方」,刷开源榜。
不适合 / 风险:
- 不同基座、不同架构的模型不能合;
- 合并是「黑魔法」,效果不保证,需要实测评估(见 模型评估);
- 可能稀释安全对齐(合进一个没对齐的模型会破坏安全性);
- 榜单分数高 ≠ 真实好用,merge 模型容易过拟合到评测风格。
高频追问
Q:模型融合为什么不需要训练就能提升能力? 因为它操作的是已经训练好的权重。基于「同基座微调的模型停留在同一损失盆地」的经验观察,对它们的权重做线性/球面组合,结果仍大概率落在低损失区,从而同时保留各模型能力。本质是在权重空间「拼能力」,不是学新东西。
Q:什么是任务向量?它能做什么? 任务向量 = 微调权重 − 基座权重,代表「这次微调学到的增量」。它可以相加(组合多个能力)、相减(遗忘某能力,如去掉毒性)、缩放(调能力强弱),是 Task Arithmetic、TIES、DARE 等方法的基础。
Q:TIES 和 DARE 解决了什么问题? 多模型合并时任务向量会「打架」:TIES 解决符号冲突(同一参数一个想增一个想减会抵消)——先裁剪小值、按多数符号对齐;DARE 解决冗余干扰——随机丢弃大部分增量再放大补偿。两者常组合,显著优于朴素平均。
Q:能合并不同基座/不同尺寸的模型吗? 一般不能。合并要求同架构、同尺寸,且通常同源基座——权重要在「同一个坐标系」里线性组合才有意义。不同基座的权重空间不对齐,直接合并会得到乱码模型。
Q:merge 出来的模型刷榜很高,能信吗? 要警惕。合并容易过拟合到评测集的风格和格式,榜单分虚高但真实泛化未必好;还可能稀释安全对齐。务必用自己的业务评估集和安全测试验证,别只看公开榜单。
Q:model soup 和模型融合是一回事吗? model soup 是模型融合的一种特例:对同一任务、同一训练的多个 checkpoint(不同超参/随机种子)做权重平均,主要提升鲁棒性和泛化;广义的模型融合还包括合并不同任务的模型来组合能力。