ME-Switch: A Memory-Efficient Expert Switching Framework for Large Language Models
作者: Jing Liu, Ruihao Gong, Mingyang Zhang, Yefei He, Jianfei Cai, Bohan Zhuang
分类: cs.CL, cs.AI, cs.LG
发布日期: 2024-06-13 (更新: 2024-10-26)
备注: Tech report
💡 一句话要点
ME-Switch:面向大语言模型的高效专家切换框架,显著降低内存占用。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大语言模型 专家系统 模型压缩 量化 模型路由 混合精度量化 显著性感知
📋 核心要点
- 现有专家模型服务方法忽略了delta权重中部分输入通道的量化误差敏感性,且假设预先已知用户请求对应的模型。
- ME-Switch通过显著性感知delta压缩,对delta权重进行混合精度量化,并提出模型级别的路由方法,解决上述问题。
- 实验表明,ME-Switch在保持性能的同时,显著降低了模型大小,并实现了高效的模型路由,可在单卡上服务更多模型。
📝 摘要(中文)
大语言模型(LLM)的开发涉及在大规模数据上预训练基础模型,然后针对特定任务的数据进行微调,以创建专门的专家模型。服务这些专家模型会带来巨大的内存挑战,因为将所有专家模型加载到设备上是不切实际的,并且响应用户请求时频繁切换专家模型会产生大量的I/O成本。先前的方法将专家模型的权重分解为预训练权重加上delta权重,然后使用输出通道方向的步长对delta权重进行量化,以减小模型大小。然而,这些方法忽略了delta权重的某些输入通道可能在极低比特宽度下导致显著量化误差的事实。此外,现有方法假设用户请求的适当模型是预先已知的,这在实践中并非如此。为此,我们引入ME-Switch,这是一个为服务多个LLM量身定制的内存高效专家切换框架。为了减少描述delta权重所需的比特数,我们提出了一种显著性感知delta压缩方法,该方法基于重建误差识别显著的输入通道,并应用混合精度量化,将非显著通道降低到低比特,同时保持显著通道不变,从而在不影响性能的情况下降低存储需求。此外,我们开发了一种模型级别的路由方法,通过执行领域分类,有效地将用户查询定向到最合适的专家模型。大量的实验表明了ME-Switch有希望的内存效率和路由性能。例如,当服务来自Mistral-7B系列的三个模型时,ME-Switch将模型大小减少了1.74倍,并在指令、数学推理和代码生成任务上保持了几乎无损的性能。值得注意的是,我们的方法可以在单个NVIDIA A100 GPU上有效地服务16个Mistral-7B模型。
🔬 方法详解
问题定义:论文旨在解决大语言模型专家系统部署时内存占用过高的问题。现有方法在压缩专家模型时,忽略了delta权重中不同输入通道对量化误差的敏感性差异,导致低比特量化时性能下降。此外,现有方法通常假设用户请求对应的专家模型是预先已知的,但在实际应用中,需要根据用户请求动态选择合适的专家模型。
核心思路:ME-Switch的核心思路是利用显著性感知的delta压缩和模型级别的路由,来降低内存占用并提高专家模型选择的准确性。通过混合精度量化,对delta权重中不重要的通道进行低比特量化,而保留重要通道的精度,从而在压缩模型的同时保持性能。模型级别的路由则通过领域分类,将用户请求分配到最合适的专家模型。
技术框架:ME-Switch框架包含两个主要模块:显著性感知delta压缩和模型级别路由。显著性感知delta压缩模块首先计算delta权重,然后基于重建误差识别显著的输入通道,并应用混合精度量化。模型级别路由模块则使用一个领域分类器,将用户请求分类到不同的领域,从而选择相应的专家模型。
关键创新:ME-Switch的关键创新在于提出了显著性感知的delta压缩方法。与现有方法不同,ME-Switch能够识别delta权重中对量化误差敏感的输入通道,并对这些通道保持较高的精度,从而在低比特量化时也能保持性能。此外,模型级别的路由方法也提高了专家模型选择的准确性。
关键设计:在显著性感知delta压缩中,使用重建误差作为衡量输入通道重要性的指标。混合精度量化方案根据通道的重要性,将通道量化为不同的比特宽度。模型级别路由模块使用一个轻量级的分类器,例如线性分类器或小型神经网络,对用户请求进行领域分类。损失函数包括重建误差和分类损失。
🖼️ 关键图片
📊 实验亮点
实验结果表明,ME-Switch在服务Mistral-7B系列模型时,可以将模型大小减少1.74倍,并在指令、数学推理和代码生成任务上保持几乎无损的性能。更重要的是,ME-Switch可以在单个NVIDIA A100 GPU上高效地服务16个Mistral-7B模型,展示了其强大的内存效率。
🎯 应用场景
ME-Switch适用于需要部署多个大语言模型专家系统的场景,例如智能客服、教育辅导、代码生成等。通过降低内存占用,ME-Switch可以在资源受限的设备上部署更多的专家模型,提高系统的服务能力和响应速度。该研究的成果有助于推动大语言模型在实际应用中的普及。
📄 摘要(原文)
LLM development involves pre-training a foundation model on massive data, followed by fine-tuning on task-specific data to create specialized experts. Serving these experts can pose significant memory challenges, as loading all experts onto devices is impractical, and frequent switching between experts in response to user requests can incur substantial I/O costs. Previous approaches decompose the expert weights as the pre-trained weights plus delta weights, followed by quantizing the delta weights using output channel-wise step sizes to reduce the model size. However, these methods overlook the fact that certain input channels of delta weights can cause significant quantization errors at extremely low bitwidths. Additionally, existing methods assume that the appropriate model for a user request is known in advance, which is not the case in practice. To this end, we introduce ME-Switch, a memory-efficient expert switching framework tailored for serving multiple LLMs. To condense the number of bits required for describing the delta weights, we propose a salient-aware delta compression method that identifies salient input channels based on reconstruction error and applies mixed-precision quantization, reducing non-salient channels to low bits while keeping salient ones intact, cutting storage demand without compromising performance. Moreover, we develop a model-level routing method that efficiently directs user queries to the most suitable expert by performing domain classification. Extensive experiments show the promising memory efficiency and routing performance of ME-Switch. For example, when serving three models from the Mistral-7B family, ME-Switch reduces the model size by $1.74\times$ and maintains nearly lossless performance on instruction, mathematical reasoning, and code generation tasks. Notably, our method can efficiently serve 16 Mistral-7B models on a single NVIDIA A100 GPU.