近日,清华大学与面壁智能团队共同提出了极具创新性的 Delta Compression(Delta 压缩)技术。该技术通过存储主干模型与任务专用模型之间的参数差值,成功降低了模型对显卡的存储需求,为大模型的应用带来了新突破。
在此基础上,团队进一步融合低秩分解与低比特量化,创造性地推出混合精度压缩方法 ——Delta-CoMe。这一方法在几乎不影响任务性能(涵盖数学推理、代码生成和多模态任务等)的前提下,大幅提高了模型推理效率,实现了一块 80G A100 GPU 无损性能加载多达 50 个 7B 模型的惊人成果。
Delta-CoMe 方法介绍
微调一直是增强预训练模型的关键手段,但不同任务往往需要不同的微调方式。例如,Luo et al.[1] 提出的 RLEIF 通过 Evove-instruction 增强模型数学推理能力;Wei et al.[2] 利用 Code snnipet 合成高质量指令数据来提升模型代码能力。然而,这些方法通常依赖高质量数据,且需精心设计策略才能实现显著效果。
在多租户、多任务以及端侧等场景中,往往需要具有不同能力的大语言模型(LLM)同时处理问题。一种自然的解决方案是部署单个通用模型以及多个具有专有能力的 Delta。以 Bitdelta [3] 为例,它将模型的 Delta 压缩至 1bit,有效保留了模型在日常对话场景中的基本功能,但在更复杂的任务(如数学推理和代码生成)上存在明显能力瓶颈。
针对这一挑战,清华 NLP 实验室联合北京大学和上海财经大学提出了 Delta-CoMe。该方法结合低秩和低比特量化技术,不仅显著提升了模型在复杂任务上的表现,还兼顾了压缩效率和实际应用需求,为模型的高效部署提供了全新思路。
Delta-CoMe 方法的优点十分突出:
·结合低秩与低比特量化,利用 Delta 低秩特点,发现低秩分解后的 Delta 呈长尾分布,进而采用混合精度量化进一步节省空间。
·性能几乎无损,与 Bitdelta 等方法相比,在 math、code、Multi-modal 等复杂任务上,性能与原始模型表现基本接近。
·推理速度大幅提升,实现了 Triton kernel,对比 Pytorch 实现方式,带来近 3 倍的推理速度提升。
·超过 Delta-tuning,支持多精度 Backbone,Delta-CoMe 显著优于 Delta-tuning 并可应用于多种精度的 Backbone。
Delta-CoMe 首先采用 SVD 进行低秩分解,当秩降低到原来的 1/8 时,性能基本保持不变。经过低秩分解后,发现奇异向量呈长尾分布,较大奇异向量对最终结果贡献较大。于是,可以根据奇异向量大小进行混合精度量化,将较大奇异值对应的奇异向量用较高精度表示。
实验结果
多个开源模型和 Benchmark 的实验有力地验证了 Delta-CoMe 方法的有效性。
以 Llama-2-7B 作为主干模型,在数学、代码、对话、多模态等多个任务中进行实验,Delta-CoMe 展现出平均几乎无损的性能。
此外,实验还在 Mistral、Llama-3 等其它主干模型上进行了验证。
通过实现 Triton kernel,相比于 Pytorch 的实现方式,推理速度提升了约 3 倍。
实验结果表明,使用一块 80G 的 A100 GPU 可以加载 50 个 7B 模型。
Delta-CoMe 对比 Delta-tuning,在相同的存储开销下,性能显著提升。
总结
Delta-CoMe 通过低秩分解和低比特量化的完美结合,实现了大幅度的存储压缩,同时在复杂任务上维持了与原始模型相当的性能表现。相比于传统的微调方法,它展现出更高的效率和灵活性,在多租户和多任务场景中具有巨大的应用价值。此外,借助 Triton kernel 的优化,推理速度显著提升,为大规模模型的部署带来了可能。未来,Delta-CoMe 的潜力不仅在于进一步优化模型存储和推理速度,更有望在更广泛的实际应用中推动大语言模型的普及和高效运作。
论文链接:https://arxiv.org/pdf/2406.08903
GitHub 地址:https://github.com/thunlp/Delta-CoMe
领取专属 10元无门槛券
私享最新 技术干货