SMILE: Zero-Shot Sparse Mixture of Low-Rank Experts Construction From Pre-Trained Foundation Models

📄 arXiv: 2408.10174v2 📥 PDF

作者: Anke Tang, Li Shen, Yong Luo, Shuai Xie, Han Hu, Lefei Zhang, Bo Du, Dacheng Tao

分类: cs.LG, cs.AI

发布日期: 2024-08-19 (更新: 2024-08-26)

备注: Code is available at https://github.com/tanganke/fusion_bench

🔗 代码/项目: GITHUB


💡 一句话要点

SMILE:基于预训练模型零样本构建稀疏低秩专家混合模型

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 模型融合 专家混合模型 零样本学习 低秩分解 参数干扰 预训练模型 子空间分析

📋 核心要点

  1. 现有模型融合方法面临参数干扰和缺乏可解释性的挑战,影响融合效果。
  2. SMILE通过子空间分析理解参数干扰,并利用低秩专家混合模型在更高维度解决此问题。
  3. SMILE无需额外数据或训练即可将源模型扩展为MoE模型,并在图像和文本任务上验证了其有效性。

📝 摘要(中文)

随着在海量数据集上训练深度模型的成本日益高昂,深度模型融合技术被广泛采用,以利用现有模型的知识。从简单的权重平均到更复杂的方法(如AdaMerging),模型融合有效地提高了模型性能并加速了新模型的开发。然而,个体模型参数之间潜在的干扰以及融合过程中缺乏可解释性仍然是重大挑战。现有方法通常尝试通过评估参数的属性(例如其大小或符号)或通过参数剪枝来解决参数干扰问题。在本研究中,我们首先通过子空间分析的角度检查线性层的微调,并明确地将参数干扰定义为一个优化问题,以阐明这个问题。随后,我们引入了一种创新的模型融合方法,称为零样本稀疏低秩专家混合(SMILE)构建,该方法允许将源模型扩展为MoE模型,而无需额外的数据或进一步的训练。我们的方法依赖于这样的观察:微调主要保留了预训练中的重要部分,但它使用不太重要或未使用的区域来适应新任务。此外,参数干扰问题在原始参数空间中本质上是难以处理的,可以通过扩展维度来管理。我们在各种场景中进行了广泛的实验,例如使用完全微调和LoRA微调的图像分类和文本生成任务,并将我们的方法应用于大型语言模型(CLIP模型、Flan-T5模型和Mistral-7B模型),突出了SMILE的适应性和可扩展性。

🔬 方法详解

问题定义:现有模型融合方法在融合多个预训练模型时,由于模型参数之间存在干扰,导致融合后的模型性能提升有限,甚至可能下降。现有的解决方法,如基于参数大小或符号的融合,以及参数剪枝等,都难以有效解决参数干扰问题,并且缺乏对融合过程的深入理解。

核心思路:SMILE的核心思路是,通过子空间分析理解参数干扰的本质,并利用稀疏低秩专家混合(Sparse Mixture of Low-rank Experts, MoE)模型,将原始模型扩展到更高维度,从而在更高维空间中管理参数干扰问题。该方法认为,微调过程主要保留了预训练模型的重要部分,而利用不太重要的部分来适应新任务,因此可以通过扩展维度来分离不同任务的参数空间。

技术框架:SMILE的整体框架包括以下几个主要步骤:1) 对预训练模型进行微调,得到多个专家模型;2) 利用子空间分析理解参数干扰;3) 构建稀疏低秩专家混合模型,将专家模型集成到MoE结构中;4) 使用零样本方式,无需额外数据或训练即可完成模型融合。MoE模型包含一个门控网络(Gating Network),用于决定将输入分配给哪个专家模型进行处理。

关键创新:SMILE的关键创新在于:1) 通过子空间分析显式地定义和理解参数干扰;2) 提出了一种零样本的稀疏低秩专家混合模型构建方法,无需额外数据或训练即可将多个预训练模型融合为一个MoE模型;3) 利用低秩分解降低MoE模型的参数量,提高效率。

关键设计:SMILE的关键设计包括:1) 使用低秩分解来表示专家模型,降低参数量;2) 设计稀疏门控网络,选择合适的专家进行处理;3) 通过实验确定合适的低秩维度和稀疏度;4) 采用零样本方式,避免了额外的训练成本。具体实现细节包括选择合适的预训练模型、微调策略(如LoRA)、以及门控网络的具体结构。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

SMILE在图像分类和文本生成任务上进行了广泛的实验,验证了其有效性。例如,在大型语言模型(CLIP模型、Flan-T5模型和Mistral-7B模型)上,SMILE能够有效地融合多个模型,并在零样本设置下取得显著的性能提升。实验结果表明,SMILE具有良好的适应性和可扩展性,能够应用于各种不同的模型和任务。

🎯 应用场景

SMILE可应用于各种需要模型融合的场景,例如:1) 快速构建特定领域的专家模型,无需从头训练;2) 利用多个预训练模型的知识,提升模型在复杂任务上的性能;3) 在资源受限的环境下,高效地融合多个模型,降低部署成本。该方法具有广泛的应用前景,可以加速AI模型的开发和部署。

📄 摘要(原文)

Deep model training on extensive datasets is increasingly becoming cost-prohibitive, prompting the widespread adoption of deep model fusion techniques to leverage knowledge from pre-existing models. From simple weight averaging to more sophisticated methods like AdaMerging, model fusion effectively improves model performance and accelerates the development of new models. However, potential interference between parameters of individual models and the lack of interpretability in the fusion progress remain significant challenges. Existing methods often try to resolve the parameter interference issue by evaluating attributes of parameters, such as their magnitude or sign, or by parameter pruning. In this study, we begin by examining the fine-tuning of linear layers through the lens of subspace analysis and explicitly define parameter interference as an optimization problem to shed light on this subject. Subsequently, we introduce an innovative approach to model fusion called zero-shot Sparse MIxture of Low-rank Experts (SMILE) construction, which allows for the upscaling of source models into an MoE model without extra data or further training. Our approach relies on the observation that fine-tuning mostly keeps the important parts from the pre-training, but it uses less significant or unused areas to adapt to new tasks. Also, the issue of parameter interference, which is intrinsically intractable in the original parameter space, can be managed by expanding the dimensions. We conduct extensive experiments across diverse scenarios, such as image classification and text generation tasks, using full fine-tuning and LoRA fine-tuning, and we apply our method to large language models (CLIP models, Flan-T5 models, and Mistral-7B models), highlighting the adaptability and scalability of SMILE. Code is available at https://github.com/tanganke/fusion_bench