模型权重合并的两种数学原理:任务向量插值与模型平均
技术领域:模型合并 / 增量学习
将多个微调后的模型合并为一个多能力模型,无需额外训练。主流方法包括任务向量(Task Vector)算术和模型权重平均(Model Soup)。
-
任务向量的定义:任务向量
τ = θ_finetuned - θ_pretrained,代表微调过程中模型参数的增量方向。对多个任务向量进行线性组合:θ_merged = θ_pretrained + Σ λ_i * τ_i
其中λ_i是标量系数。不同的λ组合可产生不同的行为——λ_i=1表示完全保留任务i的能力;λ_i=0表示忽略该任务;λ_i负值则有抑制效果。
-
向量方向的归一化与修剪:直接相加可能导致参数值过大,破坏模型表示。解决方法:1) 对所有τ_i的每一层计算L2范数,归一化后再乘λ;2) 只保留绝对值最大的20%分量(剪枝低幅度参数),其余置零,这能提升合并后的泛化性。
-
Fisher加权模型平均:计算每个参数在微调任务上的Fisher信息量(对角近似),作为权重平均的系数:
θ_merged = ( Σ_i F_i ⊙ θ_i ) ⊘ ( Σ_i F_i )
⊙和⊘为逐元素乘除。Fisher矩阵表示参数对任务损失的重要性——重要参数更偏向与原始模型相近的θ_i。
-
模型平均(Model Soup):直接对多个微调模型的相同参数求算术平均(或加权平均)。实验表明,在ImageNet上,平均多个不同超参数或不同训练数据切片的模型,精度往往超过任何单个模型。原因:平均后的权重位于不同局部最优解的凸包内,通常落在更平坦的损失区域,泛化性更强。
-
参数冲突与线性模式连接性:模型合并的前提是不同模型处于同一个loss basin(损失盆地)中——即它们的参数通过线性插值路径上的损失始终较低。若模型分属不同basin,直接平均会严重损害性能。检测方法:检查
θ_a到θ_b线性插值点的损失曲线,若出现明显峰值,则说明不适宜直接合并。此时可用“嫁接”(Model Grafting)技术:只合并各模型同一层的同构子模块(如某些attention head)。