核心要点

  • 模型合并的数学基础:从同一预训练初始化出发微调的多个模型,其参数扰动(任务向量)可进行算术组合,生成同时继承多种能力的统一模型。

  • Task Arithmetic 框架:任务向量定义为 τ = θ_finetuned - θ_base,合并即对多个任务向量做加权平均或直接求和。

  • TIES-Merging 三步法:Trim(修剪冗余参数)→ Elect Sign(选举主导符号)→ Intersect Merge(仅合并符号一致的参数),解决参数干扰问题。

  • DARE 随机丢弃:随机丢弃 90%-99% 的任务向量参数后重缩放,不仅不损害性能反而提升合并效果——因为任务向量中存在大量冗余。

标准回答

一、为什么模型合并可行

深度神经网络的损失景观存在"低损失盆地"特性:从同一初始化出发、独立优化到不同任务的多个模型,其权重往往落在同一个误差盆地内。这意味着它们的权重可以安全平均而不显著增加损失——这就是 Model Soups(Wortsman et al., 2022)的核心发现。

二、基础方法:Task Arithmetic

Ilharco et al.(2023)将微调过程形式化为任务向量:τ = θ_finetuned - θ_base。合并就是对这些向量做算术运算(加权平均、求和等),推理时只运行合并后的单一模型,成本远低于集成学习。

三、参数干扰问题与 TIES 的解决

朴素合并会遇到参数干扰:不同任务对同一参数施加方向相反的更新,合并后互相抵消。TIES-Merging(Yadav et al., 2023)通过三步解决:

  1. Trim:只保留每个任务向量中变化幅度最大的 top-k% 参数,丢弃冗余
  2. Elect Sign:对每个参数位置,统计所有任务向量的符号投票,选出主导方向
  3. Intersect Merge:仅合并符号与主导方向一致的任务向量值

四、DARE 的稀疏化魔法

DARE(Yu et al., 2024)更进一步:随机丢弃任务向量中 90%-99% 的参数,然后对剩余参数除以保留比例进行重缩放(保持期望值不变)。直觉是任务向量高度冗余,稀疏化反而去噪,合并效果显著提升。

五、工程实践

开源社区用 mergekit 工具在 Open LLM Leaderboard 上多次用合并模型击败原生训练模型。典型流程:选 3-5 个同基座的不同任务微调模型 → 用 TIES/DARE 合并 → 少量评估数据验证 → 部署。

常见误区

⚠️ 常见踩坑

混淆模型合并与知识蒸馏——合并是权重空间的算术操作,无需训练数据和前向传播;蒸馏是输出空间的软标签学习。合并要求所有模型共享同一基座(backbone),不同架构的模型不能直接合并。

追问

追问 1SLERP 插值与 Task Arithmetic 有什么区别?各自适用什么场景?

SLERP(球面线性插值)将权重视为高维球面上的点,沿大圆路径插值,适合两个模型的平滑混合(如不同风格的对话模型)。Task Arithmetic 在欧氏空间做向量运算,适合多任务组合。SLERP 更几何直觉友好,Task Arithmetic 更适合多模型场景。

追问 2模型合并后精度下降怎么诊断和缓解?

先做 per-parameter 的干扰分析:统计合并后各层参数变化幅度,定位干扰最严重的层。缓解方法:增大 TIES 的 trim 比例、用 DARE 降低冗余、对关键层(如 attention 的 Q/K 投影)做选择性排除、合并后用少量数据做微调对齐(finetune after merge)。

追问 3为什么 mergekit 在 Open LLM Leaderboard 上能赢过原生训练?

Leaderboard 评测多个独立任务。原生训练在单一任务上过拟合,而合并模型天然继承了多个微调模型各自的优势领域。本质上是"任务多样性"的集成增益——每个子模型在自己的领域已经很强,合并后在一个综合评测上自然占优。

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习