Saliency-Aware Model Merging¶
会议: ICML 2026
arXiv: 2606.00511
代码: 论文未公布
领域: 模型压缩 / 模型融合 / 数据无关参数选择
关键词: model merging, task vector, SynFlow, 连接性显著度, LoRA 融合
一句话总结¶
SA-Merging 把结构化剪枝里的 SynFlow 连接性分数搬到数据无关模型合并场景,对每个专家的 task vector 计算"端到端通路敏感度 × 聚合方向一致性"作为显著度,迭代地去掉低显著度更新,从而在视觉/语言/LoRA 多任务上把数据无关 merging 推到接近 test-time adaptation 的水平。
研究背景与动机¶
领域现状:以 CLIP / ViT / LLaMA / T5 这类基座为起点,社区训出了大量任务专用的 fine-tuned 专家。把它们直接合并成一个统一模型是热门方向:Task Arithmetic 把每个专家写成 task vector \(\tau_n = \theta_n - \theta_0\) 后线性叠加;TIES / DARE / PCB / WUDI 等在此基础上引入幅度修剪、符号选举、稀疏化来减少干扰。
现有痛点:这些数据无关方法几乎都假设"参数之间独立同分布"——每个权重的重要性由它自身的绝对值决定。但深网的功能是跨层级联出来的:一个幅度很大的更新如果被下一层的小权重"卡死",对最终输出根本没影响;一个幅度小的更新若处在高容量路径上,反而可能至关重要。仅按幅度选 top-k,会把关键路径上的小权重砍掉,把死路上的大权重留下来,结果是合并后的模型显著落后于 MTL。
核心矛盾:合并需要的是"任务功能的等价压缩",而幅度只是参数局部信息,缺了层间耦合与跨专家方向一致性这两个全局信号。要做数据无关,又不能调用任何前向/反向梯度数据来估"功能重要性"。
本文目标:在严格数据无关(不用任何任务样本、不用 calibration set)下,给每个 task vector 的每个坐标算一个考虑层间耦合的显著度,并据此迭代裁剪。同时希望框架能无痛迁移到 LoRA 专家,并且不破坏低秩结构。
切入角度:作者注意到结构化剪枝里的 SynFlow(Tanaka et al. 2020)正好提供了一个"数据无关 + 衡量端到端连通性"的得分。它原本用于单模型剪枝,能不能改造成对 task vector 的显著度?另一个观察是"跨专家共识方向"——如果某个坐标上某专家与众多其他专家的更新方向相反,多半是噪声而非有效更新。
核心 idea:用 SynFlow 风格的连通性梯度衡量结构敏感性,再点乘所有任务向量之和作为"共识方向"做调制,得到 saliency \(\mathcal{S}_n\);用迭代 top-k 掩码逐步精炼,剩下的 task vector 求和得到合并模型。
方法详解¶
整体框架¶
输入是基座参数 \(\theta_0\) 和 \(N\) 个微调专家 \(\{\theta_n\}\);先转换成 task vector \(\tau_n := \theta_n - \theta_0\)。流程进入 \(T\) 轮迭代:每轮先计算所有 \(\tau_n\) 的当前聚合方向 \(\tau^* = \sum_i \tau_i\),再对每个专家计算连通性分数 \(\mathcal{R}_n\)、对 \(\tau_n\) 求梯度得到结构敏感度,与 \(\tau^*\) 点乘得到显著度 \(\mathcal{S}_n\),按 tensor 内 top-\((1-p)\) 生成掩码 \(m_n\),更新 \(\tau_n \leftarrow m_n \odot \tau_n\)。\(T\) 轮后把所有稀疏化的 task vector 加回 \(\theta_0\) 得到最终合并模型。整个过程不需要任何任务数据,输入只有参数。
关键设计¶
-
连通性显著度(SynFlow on task vectors):
- 功能:用一个数据无关的标量衡量"task vector 的每个坐标对端到端信号传输能力的贡献"。
- 核心思路:把网络看作 \(L\) 个连续参数块,定义连通性分数 \(\mathcal{R}_n(\theta_0, \tau_n) = \mathbf{1}^\top (\prod_{l=1}^{L} |\theta_0^l + \tau_n^l|) \mathbf{1}\),再对 \(\tau_n\) 求梯度得到 \(\partial \mathcal{R}_n / \partial \tau_n\)。它本质等价于"该坐标参与了多少条强通路",所以一个被前后层小权重夹住的大更新会得到接近零的梯度,自然从重要性排序里掉下去。
- 设计动机:直接把单模型 SynFlow 套到合并场景,等于免费拿到一个 data-free 的结构性重要性度量;和后续幅度/符号信号正交,可作为新的 merging basis。
-
聚合方向调制做隐式符号选举:
- 功能:在结构敏感度的基础上再压一层"跨专家共识",把孤立、反向的更新打成噪声。
- 核心思路:显著度定义为 \(\mathcal{S}_n := \frac{\partial \mathcal{R}_n}{\partial \tau_n} \odot \sum_{i=1}^{N} \tau_i\)。如果某坐标上该专家更新与整体聚合方向反号,乘积为负或极小;只有"对结构重要 且 方向与多数共识一致"的更新才会得到大的显著度。
- 设计动机:TIES 用显式符号投票解决干扰,本文则把符号选举"溶解"进显著度本身——既保留了乘性平滑(不像投票那样硬切),又避免再引入新的超参;同时与连通性敏感度自然耦合,不会出现"结构重要但被符号否决"这种割裂。
-
迭代显著度剪枝 + 秩级 LoRA 变体:
- 功能:分多轮逐步把每个专家压到目标稀疏度,并把同一套机制无损扩展到 LoRA 专家。
- 核心思路:仿 SynFlow 的迭代修剪,每轮按 tensor 内 top-\((1-p)\) 取掩码(避免全局排序把小张量整层砍光),\(T\) 轮后保留率约为 \((1-p)^T\)。论文设 \(T=10\)、目标保留 10%,因此取 \(p=0.2\)。对 LoRA,把 \(\Delta W_n^l = s B_n^l A_n^l\) 当作 task vector,但按 rank-1 成分而不是按矩阵元素剪枝:第 \(k\) 个 rank 成分的显著度取 \(s_{n,k}^l = |\gamma_{n,k}^l \eta_{n,k}^l|\),其中 \(\gamma_{n,k}^l = (b_{n,k}^l)^\top G_n^l a_{n,k}^l\) 是结构敏感度,\(\eta_{n,k}^l = (b_{n,k}^l)^\top \overline{\Delta W}^l a_{n,k}^l\) 是与聚合更新的一致性;按显著度选择 rank 后用 \(B_n^l \leftarrow B_n^l \mathrm{Diag}(m_n^l)\)、\(A_n^l \leftarrow \mathrm{Diag}(m_n^l) A_n^l\) 做剪枝,rank 不变、LoRA 结构完整保留。
- 设计动机:一次性剪会忽略层间依赖随稀疏化漂移的现象;迭代方案让 mask 在剪枝—重估—再剪枝中自我对齐。秩级 LoRA 扩展则是直接按元素剪会破坏低秩结构,只能转向 rank-1 子空间做选择。
损失函数 / 训练策略¶
方法本身没有训练损失,整个 merging 过程零反向传播在任务数据上、零超参搜索。计算 \(\partial \mathcal{R}_n / \partial \tau_n\) 只需要在参数上做一次自动微分;对 LoRA 还能通过 \(\partial \mathcal{R}/\partial B = s G (A)^\top\)、\(\partial \mathcal{R}/\partial A = s B^\top G\) 直接在低秩因子上算梯度,不必把 \(\Delta W\) 显式展开。
实验关键数据¶
主实验¶
评测覆盖 4 个场景:CLIP ViT-B/32、B/16、L/14 的 8 任务视觉套件(SUN397/Cars/RESISC45/EuroSAT/SVHN/GTSRB/MNIST/DTD),RoBERTa-Base/Large 的 8 任务 GLUE,Flan-T5-base 的 LoRA 合并,以及解码器(指令/数学/代码)合并套件。
| 数据集 | 指标 | 本文 (SA-Merging) | 之前最佳 data-free (WUDI) | 提升 |
|---|---|---|---|---|
| CLIP ViT-B/32 (8-task vision avg) | Top-1 acc | 85.9 | 85.2 | +0.7 |
| CLIP ViT-L/14 (8-task vision avg) | Top-1 acc | 93.4 | 92.6 | +0.8 |
| GLUE RoBERTa-Base | 归一化平均 | 87.1 | 85.3 | +1.8 |
| GLUE RoBERTa-Large | 归一化平均 | 90.2 | 88.8 | +1.4 |
注:CLIP ViT-L/14 上 SA-Merging 的 93.4 已经压过 Traditional MTL 的 93.5 一线之差,且高于所有 test-time / data-assisted 方法(AdaMerging 90.8 / AdaMerging++ 91.0 / Representation Surgery 89.0),意味着严格数据无关的 merging 第一次可以与依赖测试样本的方法平起平坐。
消融实验¶
| 配置 | 关键发现 | 说明 |
|---|---|---|
| 完整 SA-Merging | 8-task vision avg ≈ 85.9 (B/32) | 结构敏感度 + 共识调制 + 迭代 |
| 仅幅度 + 共识调制 | 显著下降至接近 TIES 水平 | 失去结构敏感度后退化为加权 TIES |
| 仅结构敏感度,无共识调制 | 中间段 | 不能压制反向冲突更新 |
| 单步剪枝 (T=1) | 弱于 T=10 | 印证迭代细化的价值 |
| 不同剪枝率 \(p\) | \(T\) 越大越稳,趋势对 \(p\) 不敏感 | 论文图 3(b) 显示性能随 \(T\) 单调上升 |
关键发现¶
- 结构敏感度 \(\partial \mathcal{R}_n / \partial \tau_n\) 与传统幅度排序相关性低,证实它捕获了"幅度信息之外的功能性重要性",与现有 magnitude-based 方法互补。
- 迭代轮数 \(T\) 是最稳健的旋钮:在视觉与语言任务上、不同剪枝率下都呈现"\(T\) 越大越好"的单调趋势,没有看到过拟合 mask 的现象。
- LoRA 秩级显著度让数据无关 LoRA merging 显著优于按元素剪枝的朴素版本,并且不破坏 rank 结构、可直接放回原 LoRA 推理路径。
亮点与洞察¶
- 把"结构化剪枝的 SynFlow"重新解释为"task vector 的数据无关显著度",是一个轻量但非常落地的跨子领域迁移:得到了一个全新的 merging basis,且可与现有幅度/符号方法叠加。
- 共识调制 \(\odot \sum_i \tau_i\) 的设计很优雅——它把 TIES 的符号选举融进显著度乘子里,省掉了显式 sign vote 和阈值,同时还能调节强度(绝对值大小决定权重而非简单的 ±1)。
- LoRA 部分的秩级显著度是工程上最讨喜的部分:通过 \((b_{n,k}^l)^\top G a_{n,k}^l\) 这种内积形式,能复用低秩因子上的自动微分而无需 materialize \(\Delta W\),对超大模型几乎免费。
局限与展望¶
- 连通性分数 \(\mathcal{R}_n\) 依赖参数符号无关的 \(|\cdot|\) 乘积,对深网会面临数值爆炸或下溢,工程上需要 log-domain 归一化(论文没仔细讨论数值实现细节)。
- 共识方向 \(\sum_i \tau_i\) 是简单求和,当专家间天然方差很大(如域差异极大的 LLM 专家)时会被主导专家拉偏;引入加权或鲁棒聚合是自然方向。
- 实验主要集中在 8 个专家的中等规模 merging;当 \(N\) 进一步放大到几十上百个专家(modular / sparse merging 的目标场景)时,迭代剪枝的开销和 mask 漂移是否仍可控有待验证。
相关工作与启发¶
- vs TIES-Merging / DARE / PCB: 它们走幅度修剪 + 符号选举/随机掉点,本文用结构敏感度替代幅度作为选择信号,并把符号选举融进显著度乘子;定位是"补充而非替换",在主实验里都拿过来做基线并稳定超出。
- vs WUDI-Merging: 同为最新的 data-free SOTA,WUDI 用任务向量加权的方式做合并,本文则改打"选哪些坐标参与合并"这一基础问题;两者机制正交,论文实验显示 SA-Merging 全面优于 WUDI 但提升幅度较小,提示两条路线可叠加。
- vs AdaMerging / Representation Surgery: 它们依赖 unlabeled 测试输入做 test-time 调参,性能更高;SA-Merging 在 ViT-L/14 上的数据无关结果已经追上甚至反超这些 data-assisted 方法,凸显结构性显著度信号的潜力。
评分¶
- 新颖性: ⭐⭐⭐⭐ SynFlow → merging 的迁移很巧妙,共识调制设计简洁,LoRA 秩级变体有工程价值
- 实验充分度: ⭐⭐⭐⭐ 视觉 + GLUE + LoRA + 解码器四个家族都覆盖,对比基线齐全
- 写作质量: ⭐⭐⭐⭐ 公式推导和算法描述清晰,符号统一;对设计动机的解释也到位
- 价值: ⭐⭐⭐⭐ 给 data-free model merging 添了一个新的可叠加 basis,LoRA 扩展对实际部署有意义