速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

清华 & 面壁开源高效压缩技术:一块 80 G A100 轻松加载 50 个 7B 模型

  • 2024-12-09
    北京
  • 本文字数:2007 字

    阅读完需:约 7 分钟

清华&面壁开源高效压缩技术:一块 80 G A100 轻松加载 50 个 7B 模型

近日,清华大学与面壁智能团队提出了 Delta Compression(Delta 压缩)技术,它通过存储主干模型与任务专用模型之间的参数差值,显著降低了模型对显卡的存储需求。在此基础上,团队进一步结合低秩分解与低比特量化,提出混合精度压缩方法 Delta-CoMe。该方法在几乎不损失任务性能(如数学推理、代码生成和多模态任务)的前提下,大幅提升了模型推理效率,从而实现一块 80G A100 GPU 无损性能加载多达 50 个 7B 模型。


相比于传统的微调方法,Delta-CoMe 展现出了更高的效率和灵活性,该技术有效改善了不同应用场景对模型进行微调时的计算与存储开销难题,为终端设备带来了轻量化的大模型推理能力,同时为大模型在多任务、多租户、端侧场景的模型部署提供了全新的低成本、高效率解决方案。


下一步,或许我们正在迈向一个“模型共享”而非“模型堆叠”的时代,让每个参数都发挥最大效能,让每台设备都能加载无限可能。



➤  论文链接:🔗 https://arxiv.org/abs/2406.08903


➤  GitHub 地址:🔗__https://github.com/thunlp/Delta-CoMe


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 实现方式,带来近 3x 的推理速度提升;

  • 超过 Delta-tuning 支持多精度 Backbone,Delta-CoMe 显著优于 Delta-tuning 并可以用在多种精度的 Backbone 上。



Delta-CoMe 首先采用 SVD 进行低秩分解,Delta 具有低秩性,秩降低到原来的 1/8 性能基本保持不变。经过低秩分解之后,我们发现奇异向量是长尾分布的,较大奇异向量对最终的结果贡献较大。一个自然的想法,我们可以根据奇异向量大小进行混合精度量化,将较大的奇异值对应的奇异向量用较高精度表示。

实验结果


多个开源模型和 Benchmark 的实验验证了该方法的有效性。



使用 Llama-2-7B 作为主干模型,在数学、代码、对话、多模态等多个任务中进行实验,Delta-CoMe 展现出平均几乎无损的性能。




此外,实验还在 Mistral、Llama-3 等其它主干模型上进行验证。



通过实现 Triton kernel,相比于 Pytorch 的实现方式,推理速度提升了约 3 倍。



实验结果表明,使用一块 80G 的 A100 GPU 可以加载 50 个 7B 模型。



Delta-CoMe 对比 Delta-tuning 在相同的存储开销下,性能显著提升。



总结


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.


2024-12-09 14:525249

评论

发布
暂无评论
发现更多内容

阿里面试官:就说最后一遍,有关Spring这13点我们必问!

Java 程序员 后端

面试中常见的问题总结

Java 程序员 后端

面试官一口气问了MySQL事务、锁和MVCC,

Java 程序员 后端

面试官:多线程环境下,HashMap为什么会出现死循环?

Java 程序员 后端

阿里面试官整理出面试必问:java面试核心知识原理+框架笔记

Java 程序员 后端

面向对象知识点整理

Java 程序员 后端

阿里面试官:你好,谈谈对Synchronized的理解?(一

Java 程序员 后端

面试官:你如何利用-MySQL-Cluster-实现整体高可用?

Java 程序员 后端

MatrixDB 从 4018 个参赛项目中脱颖而出,荣获 HICOOL 全球创业大赛第三名!

YMatrix 超融合数据库

时序数据库 分布式时序数据库 Hicool

震惊!2022 年秋招 Java 后端开发岗竟然一片红海!算法岗都不香了吗?

Java 程序员 后端

道与术丨华为云数据库战略启示录

华为云开发者联盟

数据库 opengauss 华为云 GaussDB 战略

面试官最喜欢问的Spring Boot知识点整理【附解答】(下)

Java 程序员 后端

面试官问我什么是扩展自适应机制

Java 程序员 后端

面试官:如何提升TCP三次握手的性能?(1)

Java 程序员 后端

Flink CDC 实时数据同步详细解析

五分钟学大数据

flink 11月日更

面试字节、阿里等大厂后,总结了今年的Java面试必问的微服务面试题(含答案)

Java 程序员 后端

面试官:Java-线程池中的线程复用是如何实现的?

Java 程序员 后端

面试太难?技术面考察太底层?二面被拒到收割阿里架构offer,复盘成功经历分享!

Java 程序员 后端

面向对象-抽象性思想(知识整理)

Java 程序员 后端

面试前夕,你一定要先来看看阿里和京东都问些啥!(阿里+京东Java岗面试题概要

Java 程序员 后端

教你如何用Keras搭建分类神经网络

华为云开发者联盟

神经网络 keras 分类神经网络 MNIST 数字图像

面试官都爱问的Spring源码:Spring与Mybatis高级整合

Java 程序员 后端

阿里面试确实严格,面了整整5轮,还好我技高一筹!

Java 程序员 后端

震撼发布!阿里老兵亲手操刀微服务架构实战,整理出140个案例

Java 程序员 后端

面试大厂一定离不开的——ThreadLocal,它的实现原理你知道吗

Java 程序员 后端

面试官再问分布式事务,求你看完这份至尊级分布式笔记,给年轻的面试官上一课

Java 程序员 后端

阿里面试官:HashMap 为什么是线程不安全的?

Java 程序员 后端

靠谱,这是我见过最好的编程指南了!赶快收藏吧,错过大学就白上了!

Java 程序员 后端

面向对象设计的九大基本原则 (GRASP)

Java 程序员 后端

面试官求你别再问我hook了

CRMEB

阿里蚂蚁金服超全126道面试题,都会的话,你也能去面阿里了

Java 程序员 后端

清华&面壁开源高效压缩技术:一块 80 G A100 轻松加载 50 个 7B 模型_AI&大模型_OpenBMB 开源社区_InfoQ精选文章