Knowledge Fusion of Large Language Models Via Modular Skillpacks¶
会议: ICLR 2026
arXiv: 2505.18502
代码: duguodong7/GraftLLM
领域: Model Compression / Knowledge Fusion
关键词: knowledge grafting, SkillPack, heterogeneous model fusion, continual learning, delta compression
一句话总结¶
提出GraftLLM——将异构源模型的能力提取为紧凑可迁移的"SkillPack"(模块化技能包),通过模块感知自适应压缩策略存储参数增量,支持知识迁移、异构模型融合和无遗忘持续学习,在多个场景下显著优于现有PEFT和参数融合方法。
研究背景与动机¶
跨能力迁移(cross-capability transfer)是LLM研究的核心挑战,涉及多任务融合、模型压缩和持续学习。FuseLLM、FuseChat等工作展示了将多模型能力整合到轻量模型的潜力,但现有方法主要聚焦于小规模同构模型,对大规模异构模型的适用性有限。
对于大尺度异构模型间的知识迁移,现有方法面临三大难题:
全参数微调的灾难性遗忘:知识蒸馏+全参微调在获取源模型能力的同时,会覆盖目标模型的固有能力
PEFT方法的能力不足:LoRA等参数高效方法虽能避免大规模遗忘,但适配器容量有限,难以充分吸收源LLM的复杂知识,特别在DPO等复杂训练场景下表现严重下降
参数冲突问题:直接融合多个模型的参数增量会导致任务间干扰和性能退化
核心问题:如何在保持目标模型通用能力的前提下,高效、可组合地迁移异构源模型的专长?
方法详解¶
整体框架¶
GraftLLM 把"迁移来的能力"和"目标模型本体"解耦存储,落成"目标模型 + SkillPack"两件套。整条流水线分四步走:先用两阶段蒸馏(SFT 对齐分布、DPO 对齐偏好)把源模型能力学进目标模型的全参微调权重里,得到微调前后的参数增量 \(\Delta\theta\);再用模块感知压缩把这个庞大增量按层结构压成一个紧凑、可插拔的 SkillPack;推理时由一个路由函数按源模型/任务类型把若干 SkillPack 分派回目标模型的不同子模块,从而在不碰本体参数的前提下完成异构融合;同一套机制顺序施加,又自然支撑无遗忘的持续学习。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["异构源模型<br/>(27B~72B)"] --> B["两阶段跨能力迁移<br/>SFT对齐分布 → DPO对齐偏好"]
T["目标模型<br/>Llama-3.1-8B"] --> B
B --> C["全参微调增量<br/>Δθ = θ* − θ_tgt"]
C --> D["模块感知自适应压缩<br/>Embedding剪枝 · MLP/Attn 低秩SVD+量化"]
D --> E["SkillPack<br/>紧凑可插拔技能包"]
E --> F["路由式知识融合<br/>R 把各包分派到不同子模块"]
E --> G["模块化持续学习<br/>按任务激活SkillPack子集"]
T --> F
T --> G
F --> H["融合模型 / 无遗忘持续学习"]
G --> H
关键设计¶
1. 两阶段跨能力迁移:先对齐分布、再对齐偏好
单靠一步蒸馏很难既补上源模型的复杂能力又稳住对齐质量,所以迁移拆成 SFT 和 DPO 两步走。SFT 阶段在源模型生成的高质量数据 \(\mathcal{D}_{SFT}\) 上最小化负对数似然 \(\mathcal{L}_{SFT}(\theta) = -\mathbb{E}[\log p_\theta(y_i, x_i)]\),把源、目标模型之间的输出分布差异先抹平;随后 DPO 阶段用同一源模型对同一输入产生的最优、最差回复构成偏好对 \((y_w, y_l)\),以 \(\mathcal{L}_{DPO} = -\mathbb{E}[\log\sigma(\beta \log\frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log\frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)})]\) 进一步把偏好对齐到源模型,最终得到既懂源能力又对齐良好的全参微调权重 \(\theta_{tgt}^*\),对应增量 \(\Delta\theta = \theta_{tgt}^* - \theta_{tgt}\)。之所以非要 DPO 这一步,是因为后面实验发现 LoRA 类方法恰恰栽在 DPO 上——容量不足时偏好对齐几乎失效,而全参微调能稳住。
2. 模块感知自适应压缩:按层结构挑最划算的压缩算子
全参增量直接存太大,但不同模块的冗余特性差别很大,统一压缩会顾此失彼,于是对每类模块分别下手。Embedding 和 Output Head 这类对词表对齐、任务适配高度敏感的层只做幅度剪枝,保留绝对值最大的 \(\alpha\) 比例权重;MLP 模块用 SVD 分解 \(\Delta\theta = \mathbf{U}\Sigma\mathbf{V}^\top\) 吃掉其参数冗余;Attention 模块做低秩 SVD,只保留前 \(r\) 个奇异值对应的分量。在 SVD 之上再叠一层混合精度量化:按各分量的重要性自适应分配 bit 精度 \(k\),用 GPTQ 做分组量化 \(\hat{\mathbf{V}}_{[r]}^\top = \text{Quant}_k(\mathbf{V}_{[r]}^\top, \mathbf{x})\),让敏感分量保高精度、冗余分量压到低 bit。最终的 SkillPack 写成 \(\Delta\hat{\theta} = \{C_m(\Delta\theta_m)\}_{m \in \mathcal{M}}\),每个模块 \(m\) 配一个最适配其结构的压缩算子 \(C_m\),于是它既是全参微调精度的载体,又小到可以随手搬运。
3. 路由式知识融合:把多个技能隔离在各自子模块里避免互相打架
传统参数融合把多个增量直接加总会引发任务间干扰,GraftLLM 改用路由把它们分而治之。多个 SkillPack 融合时按 \(\theta_{fused} = \theta_{tgt} + \sum_{i=1}^{n} \mathcal{R}(\Delta\hat{\theta}_i)\) 叠加,路由函数 \(\mathcal{R}\) 依据源模型或任务类型把每个 SkillPack 分派到对应子模块——隐式融合里它是一个以目标模型 4096 维隐表示为输入的轻量前馈分类器,显式融合里则可直接按任务类型指派、无需额外训练。不同技能落在不同位置而非搅在一起,从而绕开 Task Arithmetic、TIES 这类方法的参数冲突瓶颈。
4. 模块化持续学习:按需激活、即插即用
因为本体参数始终不动、能力都封装在独立 SkillPack 里,持续学习就变成对 SkillPack 的增删而非对权重的覆盖。每个任务 \(t\) 只激活与之相关的子集 \(\mathcal{S}_t\),按 \(\theta_t = \theta_{tgt} + \sum_{\Delta\hat{\theta}_i \in \mathcal{S}_t} \mathcal{R}(\Delta\hat{\theta}_i)\) 拼出当前模型,新增技能不触碰旧技能,天然规避灾难性遗忘;反过来随时卸载某个 SkillPack,又能实现"反学习"或去毒化。
损失函数 / 训练策略¶
目标模型为 Llama-3.1-8B-Instruct,源模型涵盖 Gemma-2-27B-it、Mistral-Large-Instruct、Qwen-2.5-72B-Instruct、Llama-3.1-70B-Instruct 等大尺度异构模型。显式融合沿用 FuseChat 2.0 设置(OpenChat-3.5-7B 为 pivot、6 个 chat 模型为源),隐式融合沿用 FuseChat 3.0 设置(Llama-3.1-8B-I 与 Qwen-2.5-7B-I 为目标);持续学习场景让 Llama-3.1-8B-I 顺序学习数学→编程能力,以检验模块化隔离对遗忘的抑制效果。
实验关键数据¶
知识迁移与压缩(SFT设置)¶
GraftLLM在MMLU等通用任务上保持了接近全参微调的性能(差距<1%),同时参数量远小于完整模型。LoRA在简单SFT场景尚可,但在复杂DPO场景下性能显著下降甚至失效。
DPO设置(GSM8K + MATH)¶
| 方法 | 参数效率 | GSM8K+MATH平均 | 说明 |
|---|---|---|---|
| 全参微调 | 100% | 最高 | 上界 |
| LoRA (r=32/64/128) | 很低 | 严重退化 | DPO下几乎失效 |
| 其他压缩方法 | 中等 | 中等 | DPO下也困难 |
| GraftLLM | 中低 | 接近全参 | DPO下仍然稳定 |
显式知识融合(AlpacaEval 2.0 + MT-Bench)¶
| 方法类型 | AlpacaEval 2.0 LC Win Rate | MT-Bench Avg Score |
|---|---|---|
| 参数融合最佳(DARE等) | 中等 | 中等 |
| 路由方法最佳(Twin-Merging) | 较高 | 较高 |
| GraftLLM | +8.07%超参数融合最佳 | 超越所有源模型 |
以仅28%参数量增加,将7B模型提升至媲美Mixtral-8x7B和Qwen1.5-Chat-72B的水平。
隐式知识融合(10个benchmark)¶
GraftLLM在Llama-3.1-8B-Instruct和Qwen-2.5-7B-Instruct两个目标模型上,跨10个benchmark均展现出对现有方法的优势。
消融实验¶
| 配置 | 关键指标 | 说明 |
|---|---|---|
| 无SVD压缩 | 性能最高 | 但存储成本大 |
| 统一压缩策略 | 性能下降 | 模块差异化压缩有增益 |
| 仅SFT(无DPO) | 基本能力迁移 | DPO显著提升对齐质量 |
| 不同SVD秩\(r\) | 性能随\(r\)增大提升后饱和 | 存在效率最优点 |
持续学习¶
| 方法 | 数学后编程性能 | 编程后数学性能 | 说明 |
|---|---|---|---|
| LoRA | 中等 | 严重遗忘 | 任务间干扰 |
| Model Grafting | 中等 | 部分遗忘 | 改善有限 |
| Model Tailor | 中等 | 部分遗忘 | 改善有限 |
| GraftLLM | 最高 | 几乎无遗忘 | 模块化隔离 |
关键发现¶
- PEFT在DPO下的失效:LoRA等方法在简单SFT场景下尚可工作,但在DPO这类复杂训练中容量严重不足,这是一个重要但此前被忽视的观察
- 模块差异化压缩的必要性:embedding层对剪枝敏感,attention层适合低秩分解,MLP层适合SVD——统一策略效果不佳
- SkillPack的即插即用特性:由于不修改目标模型参数,可以自由加载/卸载SkillPack,天然支持遗忘、去毒化等操作
- 路由机制消除参数冲突:传统参数融合方法(如Task Arithmetic、TIES)的性能受限于任务间参数冲突,路由机制将不同技能隔离在独立SkillPack中
亮点与洞察¶
- "目标模型+SkillPack"存储范式:将跨模型能力迁移问题转化为模块化、可组合的表示,概念清晰且实用
- 模块感知自适应压缩的设计理念:不同架构组件有不同的压缩特性,这一洞察在delta参数压缩领域有广泛适用性
- SFT+DPO两阶段pipeline:先通过SFT弥合分布差异,再通过DPO精细对齐偏好,比单阶段方法更稳健
- 持续学习的天然支持:模块化设计使得新技能的添加不影响已有技能,解决了LLM持续学习中的灾难性遗忘问题
局限与展望¶
- 路由机制的设计和训练方式文中未充分展开,对于新任务如何自动选择最佳SkillPack组合待明确
- 压缩策略的模块分配(哪个模块用剪枝vs SVD vs量化)似乎是手动设定的,自动化搜索可能进一步优化
- 实验主要基于Llama家族作为目标模型,更多异构架构(如Mamba、混合架构)的泛化性需验证
- SFT数据依赖源模型生成,数据质量受源模型能力限制
- SkillPack的数量增加后,路由的计算开销和选择准确性可能成为瓶颈
相关工作与启发¶
本文综合了三个方向的研究:知识蒸馏(FuseLLM、FuseChat系列)、模型嫁接/剪枝(Task Arithmetic、TIES-Merging、DARE等task vector系列工作)、以及模型压缩(SVD、量化如GPTQ、BitDelta等)。GraftLLM的创新在于将全参微调的性能优势与参数高效存储相结合——先全参微调获取完整能力,再通过差异化压缩实现高效存储,避免了PEFT方法"一步到位但容量不足"的问题。SkillPack概念与LoRA adapter类似但更强大,因为它源自全参微调的delta而非低秩约束。
评分¶
- 新颖性: ⭐⭐⭐⭐ (SkillPack概念和模块感知压缩新颖,但各组件独立来看不算全新)
- 实验充分度: ⭐⭐⭐⭐⭐ (知识迁移+显式融合+隐式融合+持续学习,10个benchmark)
- 写作质量: ⭐⭐⭐⭐ (方法清晰,实验丰富,但论文标题有两个版本略显混乱)
- 价值: ⭐⭐⭐⭐ (模块化能力迁移思路实用,对多任务LLM部署有参考价值)