Token导航 LogoToken导航

AI 资讯 · 科技行者

多模型合并后性能下降问题解析

更新 2026-10-22科技行者正文 6369字阅读约 20分钟

你可能没想过这个问题:如果你分别训练了三个很擅长各自任务的AI模型,比如一个擅长写代码,一个擅长做数学题,一个擅长聊天,然后你想把它们"融合"成一个全能模型,会发生什么?

直觉上应该是三个专家的能力叠加,一个更强的模型。但现实往往相反。很多时候,融合之后的模型比单独任何一个专家都要差,有时候差得离谱。这个现象在AI圈子里有个专门的说法,叫模型合并。而让这件事变得棘手的原因,恰恰是每个专家在被训练的时候,压根不知道自己以后会被拿去和别人"拼在一起"。

这篇来自香港理工大学等机构的论文,就是冲着这个问题去的。他们提出了一个叫SMAT的训练方法,试图从根子上解决"专家训练时没为合并做准备"这件事。

核心问题:训练和使用是两回事

模型合并这件事,简单说就是拿几个从同一个预训练模型出发、各自在不同任务上微调过的"专家模型",通过某种数学操作把它们的参数组合到一起,得到一个新模型,而不需要重新联合训练。这听起来很划算,毕竟联合训练几个任务往往意味着更高的计算成本,还可能互相干扰。

但问题在于,标准的微调流程只优化每个专家自己任务上的损失函数,压根不管这个专家以后会不会被拿去和别人合并。

微调*:指在一个已经训练好的大模型基础上,针对具体任务用少量数据继续训练,让模型更适应这个任务。这是目前几乎所有AI应用落地的标准做法。

这就好比一个厨师,他只顾把自己的招牌菜做到极致,却从没想过这道菜以后要和别的菜摆在同一个拼盘里。如果酱汁太浓、味道太冲,单独吃很惊艳,拼在一起就可能互相抢味,谁都不好吃了。如果不考虑这一点会怎样?论文里给出了明确的数字:标准微调(FT)训练出来的Llama-3.2-1B专家,单独测试平均分能到54.4分,可一旦用最简单的合并方法平均下去,分数直接掉到42.0分,足足掉了12个百分点。

已经有研究者注意到了这个问题,提出了一些"合并感知训练"的方法。比如SAFT想办法让模型在自己权重附近找到损失更平坦的区域,MergOPT会加噪声来模拟合并过程,OrthoReg则是想办法让不同专家的更新方向尽量正交,不要互相冲突。这些方法各有巧思,但论文作者觉得它们都漏掉了点什么,而且普遍存在一个硬伤:训练成本涨得厉害。比如OrthoReg,在Llama-1B上的训练时间是标准微调的5.69倍,这对于本来就烧钱的大模型训练来说,是个不小的负担。

三个动作,拆解合并的本质

论文作者做了一件挺聪明的事:他们没有一上来就设计新算法,而是先退回去问,合并这件事,到底在数学上对一个专家模型做了什么?

他们观察了几种主流的合并方法,包括Task Arithmetic、TIES-Merging、DARE、DELLA这些,发现从某一个专家的视角看过去,合并操作其实可以拆解成三个动作。

Scale(缩放):合并时会给这个专家的更新量乘上一个系数,可能是0.3,也可能是0.8,取决于合并策略。

Mask(掩码):合并时会把这个专家更新里的某些坐标(参数)直接砍掉,只保留一部分。

Perturb(扰动):合并时,这个专家的参数还会被叠加上其他专家更新的贡献,相当于被"外来的力量"推了一把。

用公式表达就是:合并后的参数 = 预训练起点 + 缩放系数×掩码×自己的更新量 + 其他专家更新的叠加。

这个拆解本身没有创造新东西,它更像是把散落在各种合并算法里的共性提炼了出来。但这一步很关键,因为它把一个模糊的"合并会破坏性能"问题,变成了三个具体、可操作的训练目标:让模型在被缩放的时候还行,在被砍掉一部分参数的时候还行,在被别人的更新扰动的时候还行。

有了这三个动作的清晰定义,SMAT的思路就顺理成章了:既然合并会做这三件事,那干脆在训练的时候就主动模拟这三件事,让模型提前"见过世面"。

这就好比一个运动员备战比赛,如果他知道比赛场地会有风(相当于Perturb),会有部分跑道被临时封闭(相当于Mask),风速还会随场次变化(相当于Scale),那么最有效的训练方式不是在完美无风的场馆里反复练习,而是故意在训练时加入这些干扰因素,让身体提前适应。如果不这样做,运动员可能在完美环境下跑出世界纪录,一到真实赛场就完全失常,这正是标准微调专家们在合并后的遭遇。

SMAT的训练目标:两条腿走路

具体来说,SMAT在训练每个专家的时候,不再只是简单地最小化任务损失,而是同时优化两个目标:一是专家自己任务上的损失(这个不能丢,不然专家能力本身就退化了),二是"模拟合并后的参数"在这个任务上的损失。

论文里用一个权重λ来平衡这两者,λ=0意味着完全不管合并,λ=1意味着完全只为合并优化,不管专家本身能力。

具体到操作层面,每次训练的时候,SMAT会随机采样一个缩放系数(从某个下限到1之间均匀采样)、一个掩码(按一定概率随机丢弃部分参数,并对保留部分做补偿性放大)、以及一段模拟其他专家贡献的噪声,把这三者作用在当前专家的参数更新上,构造出一个"模拟合并后的参数状态",然后用这个模拟状态去计算损失,反向传播优化。

这里有个细节挺有意思。作者专门做了个实验,比较用均匀分布噪声、高斯分布噪声、拉普拉斯分布噪声来模拟"其他专家的扰动",结果发现在噪声强度(均方根)固定为0.002时,均匀分布的效果最好,但三者差距并不大。这说明什么?说明重要的可能不是"精确模拟其他专家更新的统计分布",而是单纯地让模型经历过参数被扰动这件事本身。

这个发现背后其实藏着一个更深的道理,可以类比成疫苗的工作原理。疫苗不需要精确复刻某种病毒未来变异的所有细节,它只需要让免疫系统提前接触过一种相似的刺激,身体就能建立起某种泛化的抵抗力。如果疫苗必须精确匹配病毒的每一个变异株才有效,那疫苗几乎不可能提前研发出来。SMAT里的噪声扰动也是类似的逻辑,它不追求精确复刻真实合并时的干扰,而是靠这种"泛化的抗扰动能力"来应对各种合并方法。

论文还给出了一个从损失平滑角度的理论解释。当模型在训练时经历了带噪声的参数扰动,相当于对任务损失做了一次局部的"卷积平滑",这个平滑后的损失函数,其修正项主要取决于损失曲面的局部曲率。简单说,就是让模型在参数空间里找到一片更宽阔、更平缓的低损失区域,而不是一个尖锐的山峰。哪怕合并操作把参数推得偏离了一点,只要还在这片宽阔平地上,性能就不会崩。

如何做到几乎不增加训练成本

这里就要回到前面提到的那个痛点了:现有的合并感知训练方法普遍很贵。如果SMAT在每一步训练里都要同时算专家损失和模拟合并损失,那意味着每一步都要做两次前向传播和两次反向传播,训练时间直接翻倍甚至更多。

论文作者想了三个办法来解决这个问题。

第一个是周期性调度。作者证明了一个数学命题:如果你想优化一个"专家损失和合并损失按权重混合"的目标函数,其实不需要每一步都同时算两个损失,而可以把它拆成一段周期内,大部分步骤只算专家损失,少数步骤只算合并损失,两种更新的总效果和"每步都混合计算"在数学上是等价的(误差是二阶小量)。具体到实现上,SMAT每4步里,前3步是正常的专家损失训练,第4步才切换成模拟合并损失训练,这样平均下来相当于λ=1/4,但每一步依然只需要一次前向和一次反向传播。

这个思路其实很像间歇性健身训练。你不需要每分钟都同时做力量训练和有氧训练,把它们拆成不同的训练日交替进行,长期下来身体获得的综合效果是接近的,但每次训练的强度和专注度反而更高。如果非要每分钟都同时兼顾两种训练模式,效果不见得更好,反而会让每一种训练都做得不够彻底。

第二个是核函数融合。Scale、Mask、Perturb这三个操作如果分开写代码执行,会反复读写显存里的参数张量,造成很多不必要的开销。作者用Triton写了两个融合的GPU核函数,把权重模拟和梯度重新缩放这两步计算揉在一起完成,减少了内存访问次数。

Triton*:一种用于编写高性能GPU计算核心(kernel)的编程语言,常用于深度学习框架底层加速,能让开发者相对简单地写出接近手写CUDA性能的代码。

第三个是参数存储切换。SMAT在做模拟合并计算的时候,不需要真的把原始参数复制一份再修改,而是把"模拟出来的权重"放进一块可复用的缓冲区里,前向反向传播都用这块缓冲区,算完之后再切回原始参数做优化器更新。冻结的基础权重会提前从内存里预取好,这样只需要额外多占用一块和可训练参数一样大的显存空间,不需要反复复制。

这三招加起来的效果相当亮眼。论文的实验数据显示,SMAT在Llama-3.2-1B上的训练时间只比标准微调多了1.9%,而在Llama-3.1-8B上更是只多了1.4%。对比一下,OrthoReg在同样的1B模型上要多花4.7倍的时间,在8B模型上更是夸张,要多花10.58倍的时间。

实验结果:分数确实涨了

论文在四种规模、两种类型的模型上做了验证,包括Llama-3.2-1B-Instruct、Llama-3.1-8B-Instruct这两个语言模型,以及CLIP ViT-B/32、CLIP ViT-L/14这两个视觉语言模型。每种模型都用五种不同的合并方法(简单加权平均、Task Arithmetic、TIES、DARE、DELLA)分别测试合并后的效果。

方法 Llama-1B合并均分 Llama-8B合并均分 ViT-B32合并均分 ViT-L14合并均分

标准微调FT 42.02 55.97 70.87 84.00

ASAM 44.02 57.04 72.37 85.44

MergOPT 44.11 57.16 72.57 85.34

OrthoReg 44.66 57.42 72.18 85.62

SMAT 45.77 58.49 74.46 87.78

从表格能看出,SMAT在四个模型上都拿到了最高分,平均比同类方法中最强的对手高出1.07到2.16分不等。在CLIP ViT-B/32上,SMAT比最强基线MergOPT高出1.89分;在ViT-L/14上,比最强基线OrthoReg高出2.16分。而且这个提升是在训练时间几乎不涨的前提下拿到的。

有意思的是,论文还专门分析了"性能提升到底从哪里来"这个问题。他们发现,SMAT并不是简单地靠"合并后掉分掉得少"取胜的。比如和OrthoReg比,SMAT训练出来的单个专家本身分数更高,即便合并之后的掉分幅度比OrthoReg更大,最终合并分数依然更高,因为起点更高。这说明合并感知训练不能简单理解成"牺牲专家能力换取合并稳健性",一个好的方法应该在专家质量和合并鲁棒性之间找到更好的平衡点,而不是单纯往某一个方向使劲。

论文还做了个挺扎实的消融实验,把Scale、Mask、Perturb这三个组件分别拿掉,看对最终效果的影响。去掉Scale,平均分掉1.25;去掉Mask,掉1.07;去掉Perturb,掉2.10,是三者中影响最大的。这个结果和前面提到的损失平滑理论解释是对得上的,Perturb确实承担了最主要的鲁棒性来源,但Scale和Mask并不是可有可无的点缀,它们各自贡献了额外的收益。

作者还测试了SMAT在专家数量变化时的表现。当合并的专家数量从2个逐渐增加到7个时,SMAT相对于FT的归一化分数从93.20%缓慢下降到86.08%,但降幅明显小于其他方法,而且专家数量越多,SMAT的优势越明显。这说明专家数量越多、参数冲突越复杂的场景,SMAT这种提前适应扰动的训练方式价值越大。

另外一个挺实用的发现是,SMAT训练出来的专家可以和标准微调的专家混在一起用。作者做了个实验,把7个标准微调专家里的一部分逐步替换成SMAT专家,发现替换的SMAT专家越多,合并后的整体表现越好,而且SMAT在每个替换比例下都领先于用MergOPT或OrthoReg做替换的方案。这意味着如果你手头已经有一堆用普通方法训练好的模型,不需要推倒重来,只要把其中一部分换成用SMAT训练的版本,合并效果就能改善。

论文还额外测试了把SMAT从AdamW优化器换到Muon优化器上是否依然有效。结果显示,SMAT在Muon下依然能拿到最好的合并分数(44.15分),比OrthoReg高0.74分,比标准微调高5.90分,同时训练时间和FT基本持平。这说明SMAT这套设计并不绑定某种特定的优化器,具备一定的通用性。

从损失地形图看懂"为什么"

论文里有一组特别直观的图,画的是在两个方向上移动参数(一个是缩放自己的更新量,一个是叠加其他任务专家的更新)时,模型损失值如何变化的等高线图。对比FT、MergOPT、SMAT三种训练方式在六个任务上的表现,SMAT呈现出的低损失区域(图上颜色浅的部分)明显比另外两种方法更大、更连续。

这张图想说明的道理其实很直白:一个训练良好的专家,理想状态不是在参数空间里找到一个孤立的、极窄的最优点,而是找到一片开阔的、哪怕被推着走也不会摔下悬崖的平原。SMAT做的Scale、Mask、Perturb训练,本质上就是在参数空间里反复"踩踩周边的地",把原本可能很陡峭的悬崖边缘,训练成一片更宽阔平缓的高原。

这可以类比成盖房子选地基。如果只在绝对理想的地质条件下测试地基强度,一旦遇到地震或者土壤沉降(相当于合并时的参数扰动),房子可能瞬间倒塌。但如果在设计阶段就把各种可能的地质波动都纳入抗震测试,房子面对真实世界的各种意外时,才不会一推就垮。

写在后面

读完这篇论文,最触动我的其实不是SMAT本身的效果有多好,而是它解决问题的方式。很多做深度学习的工作习惯于"加更多的loss项""设计更复杂的正则化",但这篇论文走的是另一条路:先把现象拆解成几个可以清楚描述的数学操作(Scale、Mask、Perturb),再针对性地在训练时模拟这几个操作,思路上更接近"对症下药"而不是"广撒网"。

还有一点值得单独说说,就是那个关于噪声分布类型的实验。作者本可以花大力气去精确建模"其他专家的更新到底服从什么分布",但实验发现均匀、高斯、拉普拉斯这三种噪声效果差别不大,这个"意外的不重要性"其实是个挺有价值的发现,它说明这类鲁棒性训练背后起作用的机制,可能更接近于宽泛的"经历过扰动"这件事本身,而不是精确匹配某个统计特性。这提醒我们,有时候把问题想得过于精细反而是浪费功夫,找准那个真正起作用的粗粒度因素才是关键。

论文里也留了一些没有回答完的问题。比如SMAT目前假设所有专家共享同一个模型架构和初始化权重,如果专家之间架构不同,这套方法还适不适用?再比如,论文提到的效率优化手段(周期调度、核融合)理论上应该可以迁移到其他合并感知训练方法上,但论文没有专门测试过。这些留白,或许正是后续研究可以接着挖的方向。

Q&A

Q1:SMAT是什么?

A:SMAT是一种合并感知训练方法,通过在专家模型训练时模拟Scale(缩放)、Mask(掩码)、Perturb(扰动)这三种模型合并常见操作,让训练出来的专家模型在被合并后依然保持较好性能,同时训练时间开销不到标准微调的2%。

Q2:为什么标准微调出来的专家模型合并后性能会下降?

A:因为标准微调只优化专家自己任务上的损失,完全不考虑这个专家以后会被拿去和其他专家合并。合并时的缩放、参数掩码、其他专家更新叠加这些操作会让专家偏离它原本训练时熟悉的参数状态,从而导致性能下降,论文中实验显示合并后平均分能从54.4掉到42.0。

Q3:SMAT为什么训练成本能控制得这么低?

A:主要靠三个设计,一是周期性调度,每4步里只有1步计算模拟合并损失,其余步骤正常训练,平均下来每步仍只需一次前向和反向传播;二是用融合的GPU核函数一次性完成缩放掩码扰动计算,减少显存读写;三是用独立缓冲区存放模拟权重,避免反复复制参数,这三招让SMAT训练时间只比标准微调多1%到2%左右。

文章标签AI资讯

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。