最新模型增量压缩技术,一个80G 的 A100 GPU能够轻松加载多达50 个 7B 模型,节省显存约 8 倍,同时模型性能几乎与压缩前的微调模型相当。
清华大学 NLP 实验室携手 OpenBMB 开源社区、北京大学和上海财经大学的研究团队,提出Delta-CoMe。
这项技术的核心在于利用主干模型与任务专用模型之间参数增量(即 Delta)的特点进行压缩,从而实现存储开销和部署成本的大幅降低。不仅有助于解决资源瓶颈问题,更为多任务处理和模型部署开辟新的可能。
具体而言,Delta-CoMe 将低秩分解和低比特量化技术相结合,充分利用 Delta 参数的低秩特性,提出了一种全新的混合精度压缩方法。这种方法不仅能够实现接近无损的任务性能,还能显著提升推理效率。
Delta-CoMe 方法介绍
微调是增强预训练模型的重要手段,不同任务往往需要不同的微调方式。例如 Luo et al. [ 1 ] 提出 RLEIF 通过 Evove-instruction 来增强模型数学推理能力;Wei et al. [ 2 ] 利用 Code snnipet 合成高质量的指令数据来增加模型的代码能力。然而,这些方法通常依赖高质量数据,并需要精心设计的策略才能实现显著的效果。
在一些场景中往往需要具有不同能力的 LLM 同时处理问题,例如多租户场景,多任务场景以及端侧场景等等。一种自然的解决方案是部署单个通用模型作为主干,配合多个具有专有能力的 Delta。
以 Bitdelta [ 3 ] 为例,它通过将模型的 Delta 压缩到 1-bit,有效保留了模型在问答等场景中的能力。尽管该压缩方法在存储和推理效率上表现出色,其在更复杂的任务(如数学推理和代码生成)上仍存在明显的能力瓶颈。
针对这一挑战,THUNLP 实验室联合北京大学和上海财经大学提出 Delta-CoMe。这一方法结合低秩分解和低比特量化技术,不仅显著提升了模型在复杂任务上的表现,还兼顾了压缩效率和实际应用需求,为模型的高效部署提供了一种新思路。
与前人的方法相比,Delta-CoMe 方法的优点在于:
结合低秩与低比特量化,利用了 Delta 低秩的特点,并发现低秩分解后的 Delta 是长尾分布的;之后采用混合精度量化进一步压缩
性能几乎无损,相比于 BitDelta 等方法,在 Math, Code, Multi-modal 等复杂任务上,性能与压缩前的微调模型表现基本接近
推理速度提升,为混合精度量化实现了 Triton kernel 算子,对比 Pytorch 的实现方式,带来近 3 倍的推理速度提升
超过 Delta-tuning,支持多精度 Backbone,Delta-CoMe 在效果上显著优于 LoRA 微调,并可以用在多种精度的 Backbone 上
具体而言,Delta-CoMe 首先采用 SVD 进行低秩分解,Delta 具有低秩性,经过低秩分解之后,其特征值呈现出长尾分布的规律,仅有少数较大奇异值对应的奇异向量对最终的结果贡献较大。
一个自然的想法,我们可以根据奇异值的大小进行混合精度量化,将较大的奇异值对应的奇异向量用较高精度表示,而较小的奇异值对应的奇异向量用较低精度表示。
实验结果
多个开源模型和 Benchmark 的实验验证了该方法的有效性。
使用 Llama-2 作为主干模型,在数学、代码、对话、多模态等多个任务中进行实验,Delta-CoMe 展现出平均几乎无损的性能。下面分别是 7B 模型和 13B 模型的实验效果。
此外,还在 Mistral、Llama-3 等其它主干模型上对不同的压缩方法进行了验证。
为了提升混合精度量化的计算效率,实现一个 Triton Kernel,相比于 Pytorch 的实现方式,推理速度提升了约 3 倍。
实验结果表明,使用一块 80G 的 A100 GPU 可以加载 50 个 7B 模型。
最后,还比较了 Delta-Tuning 和 Delta-Compression 的效果差异(Delta-Tuning 指的是通过训练部分参数进行微调,Delta-Compression 指的是先进行全参数微调,再将微调带来的模型参数增量进行压缩)。其中 Delta-Tuning 采用的是 LoRA。Delta-CoMe 对比 LoRA 在相同的存储开销下,性能显著提升。
Delta-CoMe 通过结合低秩分解和低比特量化,不仅实现了大幅度的存储压缩,还在复杂任务如数学推理、代码生成和多模态任务上维持了与压缩前模型相当的性能表现。相比于传统的微调方法,Delta-CoMe 展现出了更高的灵活性,尤其在多租户和多任务场景中具有显著的应用价值。此外,借助 Triton kernel 的优化,推理速度得到了显著提升,使得部署大规模模型成为可能。未来,这一方法的潜力不仅在于进一步优化模型存储和推理速度,也有望在更广泛的实际应用中推动大语言模型的普及和高效运作。
参考文献
[ 1 ] Yu, L., Jiang, W., Shi, H., Jincheng, Y., Liu, Z., Zhang, Y., Kwok, J., Li, Z., Weller, A., and Liu, W.Metamath: Bootstrap your own mathematical questions for large language models. In The Twelfth International Conference on Learning Representations, 2023.
[ 2 ] Luo, Z., Xu, C., Zhao, P., Sun, Q., Geng, X., Hu, W., Tao, C., Ma, J., Lin, Q., and Jiang, D. Wizardcoder: Empowering code large language models with evol-instruct. arXiv preprint arXiv:2306.08568, 2023b
[ 3 ] Liu, J., Xiao, G., Li, K., Lee, J. D., Han, S., Dao, T., and Cai, T. Bitdelta: Your fine-tune may only be worth one bit. arXiv preprint arXiv:2402.10193, 2024b.
Paper 链接:https://arxiv.org/abs/2406.08903
Github 链接:https://github.com/thunlp/Delta-CoMe
— 完 —
投稿请发邮件到:
ai@qbitai.com
标题注明【投稿】,告诉我们:
你是谁,从哪来,投稿内容
附上论文 / 项目主页链接,以及联系方式哦
我们会(尽量)及时回复你
点这里关注我,记得标星哦~
一键三连「分享」、「点赞」和「在看」
科技前沿进展日日相见 ~
登录后才可以发布评论哦
打开小程序可以发布评论哦