跳转至

CASS: Contribution-Aware Structured Sparsity for Model Merging

会议: NeurIPS2026
arXiv: 2609.34184
领域: 模型压缩
关键词: 模型合并、结构化稀疏、贡献分数、任务向量、梯度掩码

一句话总结

CASS 用无标签任务样本识别贡献突出的注意力头和 FFN 神经元,再过滤任务向量或约束微调梯度,以减少模型合并干扰,例如将 ViT-B/16 上 Task Arithmetic 的 20 任务平均准确率从 65.02% 提升到 69.99%。

研究背景与动机

模型合并希望把同一基础模型派生的多个任务专家装进一个模型,而不重新进行联合训练。常见做法是计算专家相对基础模型的参数差,即任务向量,再相加或重新加权。困难在于,一个专家的更新未必都对其任务有用:这些更新与其他专家混在一起,可能破坏原来有效的功能。TIES 根据参数幅度和符号处理冲突,DARE 随机丢弃更新,但二者都不直接判断更新属于哪个功能组件。

Transformer 本身并不是没有结构的参数集合。每个注意力头经过自己的输出投影后,为残差流增加一项;每个 FFN 中间神经元也通过对应的下投影方向增加一项。因此,单个权重的幅度未必能代表任务重要性:一个权重很大的通道可能在该任务上几乎不激活,而一个活跃通道的影响还取决于它的输出投影。论文在 Qwen2.5-1.5B-Instruct 上观察到,神经元贡献集中在少数通道,不同任务的高贡献集合往往只有有限重叠;附录同时强调,这不是全模型严格互斥的证明。

由此,问题从“哪些参数应该被删掉”变成了“哪些功能组件的任务更新值得进入合并”。注意力头还需要额外处理:有些头对所有任务都很活跃,绝对贡献大不等于任务特异性强。核心 idea:用激活与输出投影共同衡量功能贡献,保留任务相关组件的更新,让未选组件回到基础模型参数,而不是删除网络组件。

方法详解

整体框架

CASS 是一个结构化更新筛选框架,不是新的专家路由网络。先进行贡献估计,再生成结构化掩码,最后根据是否已有专家选择应用分支;最终模型仍沿用基础模型架构,推理不需要重新收集探针或动态选择专家。

CASS-Merging 是主要设置:输入基础模型、已有任务专家和各任务的无标签探针样本,在专家上估计贡献,掩码作用于专家的任务向量。CASS-Tuning 则在专家尚未训练时,用基础模型和无标签训练样本估计同类掩码,随后在任务微调中限制梯度。两条分支共享选择原则,但参考模型、数据来源和被掩码的对象不同,不能当作同一个后处理操作。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["专家与无标签探针"] --> C["贡献估计"]
    B["基础模型与<br/>无标签训练样本"] --> C
    C --> D["结构化掩码"]
    D -->|已有专家:任务向量| E["事后任务向量过滤"]
    D -->|重新微调:训练梯度| F["训练时梯度约束"]
    E --> G["既有合并算子"]
    F --> G
    G --> H["单一多任务模型"]

图中的样本用于估计组件统计,不构成训练监督。只有训练时分支还需要原任务的微调目标;事后分支不再训练专家。两个输入分别对应两种设置,不是要求一次运行同时使用专家和基础模型统计。

关键设计

1. 贡献估计:把参数幅度换成输入条件下的功能贡献

固定一个参考模型时,FFN 神经元的残差贡献是中间激活乘以对应的下投影向量。CASS 用该贡献的幅度衡量任务相关性,而不是只看激活频率或权重大小。单 token 形式的分数为:

\[ \mathcal{I}_{\mathrm{neuron}}^{(j,t)}=\mathbb{E}_{\mathbf{x}\sim\mathcal{D}_{t}}\left[|m_j(\mathbf{x})|\,\|\mathbf{w}_{down}^{(j)}\|_2\right]. \]

这里的 \(m_j\) 是神经元的中间激活,\(\mathbf{w}_{down}^{(j)}\) 是其下投影向量,\(\mathcal{D}_t\) 是任务探针集。附录还给出序列形式,用整段序列的贡献矩阵 Frobenius 范数进行统计。分数同时捕捉“这条通道在输入上多活跃”和“它向残差流输出多强”,因此静态大权重但不活跃的通道不会自然获得高分。

注意力头不能直接照搬这个绝对幅度标准。一个通用信息路由头可能对所有任务都贡献很大,筛选它未必能减少任务间重叠。论文先计算头的绝对贡献,再比较该头在当前任务上相对所有待合并任务的平均贡献偏离多少:

\[ \mathcal{A}_{h,t}=\mathbb{E}_{\mathbf{X}\sim\mathcal{D}_{t}}\left[\|\mathbf{H}_{h}(\mathbf{X})\mathbf{W}_{O}^{(h)}\|_F\right],\qquad \mu_{h,\mathrm{global}}=\frac{1}{K}\sum_{t'=1}^{K}\mathcal{A}_{h,t'},\qquad \mathcal{S}_{h,t}=\frac{\mathcal{A}_{h,t}-\mu_{h,\mathrm{global}}}{\mu_{h,\mathrm{global}}+\epsilon}. \]

\(\mathbf{H}_h\) 是头输出,\(\mathbf{W}_O^{(h)}\) 是对应输出投影块,\(K\) 是任务数,\(\epsilon\) 用于数值稳定。选择依据是正的任务选择性分数,不能取其绝对值:强负值表示该头在当前任务上受到抑制,不是特别活跃。由于平均值跨任务计算,必须先收集所有任务的头贡献统计;更换待合并任务集合也可能改变头掩码。

2. 结构化掩码:头跨层排序,神经元逐层排序

对每个任务,注意力头在全模型范围按任务选择性排序,FFN 神经元则在每层内部按贡献分数排序。实验采用 20% 的保留比例。头数量较少,全局选择能避免每层都硬保留少数不重要的头;神经元数量较多,逐层分配则避免贡献尺度差异让少数层吃掉全部预算。这个 20% 是组件保留比例,不是整个模型参数被删除 80%,也不是所有参数均受掩码控制。

组件级选择随后广播到参数切片。头掩码控制对应的 Q、K、V 投影块和输出投影块;FFN 神经元掩码控制上投影的一列及下投影的一行。对 Qwen 的门控 FFN,gate、up、down 中对应同一中间通道的切片一起处理,不能只过滤其中一个矩阵而把功能单元拆开。

偏置也有边界:头对应的 Q、K、V 偏置切片和 FFN 上投影偏置通道可随组件处理,但共享的注意力输出偏置和 FFN 下投影偏置并不按组件拆分,附录实现将其保留为未掩码项。上述行列方向遵循论文的矩阵约定,落到具体模型实现时需对齐实际张量布局。

3. 事后任务向量过滤:只撤销不相关的专家更新

在 CASS-Merging 中,每个参考模型就是该任务的微调专家,探针无需标签。专家的任务向量是它与共同基础模型的参数差;掩码过滤后,再交给原来的 TA、TIES、TSV、WUDI 等算子。核心操作为:

\[ \tau_t=\theta_t-\theta_{base},\qquad \tilde{\tau}_t=\mathbf{M}_t\odot\tau_t,\qquad \theta_{merged}=\theta_{base}+\mathrm{MergeOp}\left(\{\tilde{\tau}_t\}_{t=1}^{K}\right). \]

\(\odot\) 表示结构化广播后的逐元素乘法。掩码为零意味着该专家不向这个组件提供任务更新;该组件本身仍然存在。如果其他专家选择了同一组件,最终合并参数仍可能收到它们的更新,因此不能说“某任务未选的头在最终模型中一定完全保持基础状态”。

这也不是把专家前向输出乘以零。注意力的 Q、K 投影和 FFN 的非线性激活都会随参数改变,附录明确指出,参数更新过滤通常不等价于直接删除专家输出贡献。加法分解支持贡献统计与组件划分,但不证明过滤后的网络输出等于原专家输出的线性删项。

4. 训练时梯度约束:在任务向量形成前限制更新位置

CASS-Tuning 尚无专家可供测量,因此先让基础模型处理各任务的无标签训练样本,生成固定的任务掩码,再分别从基础模型开始微调。其依据是任务适应会增强基础模型已有路径;这个假设合理但不是对所有任务成立的保证。训练中仍使用原任务损失,改变的是可更新的位置:

\[ \mathbf{g}'_t=\mathbf{M}_t\odot\nabla_{\theta}\mathcal{L}_t. \]

相比训练后删掉更新,这条分支让任务向量从形成时就集中到所选结构子空间。不同任务掩码通常只有部分重叠,所以它鼓励结构分离,但并不强制完全不交叠,也没有新的跨任务互斥损失。完成微调后,任务向量继续使用既有合并算子。

LoRA 情况下,掩码必须对应有效低秩更新的通道,可对组合后的更新矩阵操作,也可对维度对齐的 LoRA 因子操作。仅将梯度置零还不自动解决优化器动量或解耦权重衰减:附录要求确保未选通道的有效更新仍为零,才能真正保留基础模型行为。

损失函数 / 训练策略

CASS-Merging 不引入新训练损失,只增加收集激活统计和过滤任务向量的预处理。掩码可被多个合并算子复用;无标签并不等于无数据,因为任务选择性仍依赖各任务探针及当前任务集合。

Qwen2.5 实验使用 LoRA,rank 为 32、alpha 为 64、dropout 为 0.1,学习率为 \(2\times10^{-4}\),cosine 调度,warmup 比例 0.05,训练 1 epoch,batch size 为 16。随机过程使用固定种子 42;论文未给出多种子均值和置信区间。

探针规模敏感性实验使用每任务 8 到 1024 个样本,在两个 ViT 架构上的 TA+CASS-M 平均准确率波动小于 0.5 个百分点。作者报告,以每任务 8 个样本估计掩码,在单张 A100 上只需数秒;这是特定实验条件下的一次性开销,不代表所有架构和规模都已测得相同成本。

实验关键数据

主实验

视觉实验合并 CLIP ViT 的 20 个图像分类专家;RoBERTa 使用 GLUE 的 8 个任务,平均的是各任务标准指标,而非统一分类准确率。Qwen2.5-0.5B/1.5B-Instruct 使用代码、数学、指令遵循和安全四种能力,以下简称省略 Instruct。

Qwen 的平均分先按对应单任务专家归一化:对越高越好的指标,用当前分数除以专家分数;安全的 Micro Harm Rate 越低越好,先取其补数再相除。四项归一化分数取算术平均,因此 1.000 表示对应专家基准,不是理论上限,也不能和视觉准确率直接比较。

模型与评测 合并算子 不加 CASS CASS-Merging
ViT-B/32,20 任务平均准确率 % TA 61.37 65.29
ViT-B/16,20 任务平均准确率 % TA 65.02 69.99
ViT-B/16,20 任务平均准确率 % DARE 65.03 69.90
ViT-B/32,20 任务平均准确率 % TSV 73.67 74.91
RoBERTa,8 任务平均表现 TA 66.36 70.12
RoBERTa,8 任务平均表现 Iso-C 75.72 75.98
Qwen2.5-0.5B,4 任务归一化平均分 TA 0.743 0.776
Qwen2.5-0.5B,4 任务归一化平均分 TIES 0.695 0.773
Qwen2.5-0.5B,4 任务归一化平均分 Iso-C 0.738 0.729
Qwen2.5-1.5B,4 任务归一化平均分 WUDI 0.862 0.873

数据来自原文 Table 1、2。视觉两个架构上的八个合并基线均改善,RoBERTa 七个基线均改善;Qwen 的平均分多数改善,但 0.5B 上 Iso-C 是明确反例。Table 2 对 TA 的 0.743→0.776 标注提升 +0.034,而展示值直接相减为 0.033;这里保留原始端点,不将两者改写成一致结果。

消融实验

原文 Figure 7 的数值说明支持以下组件消融;Figure 6 的随机结构掩码采用相同稀疏预算,但缓存文字未提供全部精确读数,因此不补造随机掩码的数值。

ViT-B/32 上的配置 相对 TA 的平均准确率增量,百分点 说明
TA 0.00 基线平均准确率 61.37%
仅注意力头掩码 +1.24 Figure 7 正文报告
仅 FFN 神经元掩码 +2.20 Figure 7 正文报告
注意力头与 FFN 掩码 +3.92 Table 1 的 61.37%→65.29%

FFN-only 的收益更大,但组合结果最好,支持两类组件具有互补信息。随机结构掩码并不稳定改善 TA,且在 RoBERTa 上下降;因此收益不能仅解释为“少合并一些参数”。

训练时分支的补充对比如下,均为 Qwen 的四任务归一化平均分,来自 Table 3;它需要重新微调,不是同等访问条件下的免费后处理。

模型 算子或诊断设置 常规微调/合并 CASS-Tuning
Qwen2.5-0.5B 单任务专家平均,Masked FT 1.000 0.954
Qwen2.5-1.5B 单任务专家平均,Masked FT 1.000 0.924
Qwen2.5-0.5B TIES 合并 0.695 0.816
Qwen2.5-1.5B WUDI 合并 0.862 0.883

关键发现

  • 结构过滤对简单合并尤其有效,但也能补充权重空间方法:ViT-B/32 的 TSV 从 73.67% 升至 74.91%,并非只有 TA 能获益。
  • 高 Post-Mask 分数是保留专家能力的诊断,不是多任务合并结果:Qwen 两种规模分别为 0.910、0.975;Masked FT 则评估受约束微调的单任务专家,两者不可混用。
  • 平均分改善不保证每项能力都改善。附录 Table 7 中 Qwen2.5-0.5B 的 TA 安全归一化分数为 0.687→0.684,尽管平均分为 0.743→0.776。
  • OOD 有一定收益:仅合并 12 个视觉任务时,ViT-B/32 上 TA 的另外 8 个任务平均分为 0.570→0.588;这不是主实验 20 专家合并的结果。

亮点与洞察

  • 贡献统计把模型合并与功能组件联系起来。它筛选的是“某专家在某任务上依赖的更新”,而不是寻找一个适用于所有任务的永久剪枝子网络。
  • 头与神经元采用不同指标是关键细节。绝对贡献适合稀疏激活的神经元,跨任务相对贡献则避免把普遍活跃的头误认为任务专属结构。
  • 同一结构掩码既能用于事后过滤,也能用于训练时约束。可迁移的是更新通道选择原则,而不是两种设置的参考模型或成本可以直接互换。

局限与展望

  • 作者承认固定 20% 保留比例未必适合所有任务、层和架构。按贡献分布或任务复杂度自适应分配预算,是比统一 top-k 更自然的扩展。
  • 解码器实验最大仅 1.5B;7B 及以上模型、更多专家或差异更大的任务集合尚未验证。不能由当前结果直接推出大模型规模下同样有效。
  • 贡献幅度是任务相关性的代理,不等于因果重要性。掩码部分重叠、非线性组件相互影响,以及改变任务集合后头分数变化,都值得进一步检验。
  • 固定种子 42 限制了稳定性判断;探针规模鲁棒不等于探针分布鲁棒。需要多种子、分布偏移和组件选择稳定性实验。
  • Iso-C 的负例和单能力退步提示需要检查下游合并算子及能力边界。安全归一化平均收益尤其不能替代部署前的单独安全评估。

相关工作与启发

  • vs TIES / DARE:二者按幅度、符号或随机规则处理单参数更新,CASS 按功能贡献筛选完整组件。它可以先做过滤再使用这些算子,不要求替换其冲突处理机制。
  • vs TSV / Iso-C:子空间方法处理任务矩阵的几何或奇异值谱,CASS 加入输入条件下的功能统计。两者可能互补,但 Qwen2.5-0.5B 的 Iso-C 反例表明兼容性不等于必然提升。
  • vs TALL-Masks:同样定位任务信息,但 TALL-Masks 依据权重差异生成参数掩码,CASS 用探针激活和投影贡献形成头/神经元级掩码,额外需要任务数据。
  • 研究启发:可以在固定组件预算下显式区分共享头与任务特异头,验证保留共享路由是否改善指令遵循等容易退步的能力;这是延伸方向,不是论文已验证的结论。

评分

  • 新颖性: 4/5。把贡献感知的结构选择统一到模型合并与微调约束,且区分头和神经元的选择标准。
  • 实验充分度: 4/5。覆盖视觉、编码器和解码器及多类算子,但大模型、多种子和分布鲁棒性仍不足。
  • 写作质量: 4/5。附录清楚澄清更新过滤与输出删除的区别,但个别提升标注与展示端点存在舍入差异。
  • 价值: 4/5。适合作为已有合并流程的轻量预过滤器,但需要验证算子兼容性及单能力表现。