❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 模型压缩:显著减少大型语言模型的存储和内存需求。
- 性能保持:在压缩的同时保持模型性能,尤其在复杂任务中表现出色。
- 多任务处理:支持同时部署多个模型,提高模型部署的灵活性和效率。
正文(附运行示例)
Delta-CoMe 是什么
Delta-CoMe是清华大学NLP实验室联合OpenBMB开源社区、北京大学和上海财经大学提出的新型增量压缩算法。该算法通过结合低秩分解和低比特量化技术,利用模型参数增量(Delta)的低秩特性,实现混合精度压缩。这种方法能在大幅降低存储和推理成本的同时,保持模型性能几乎无损,尤其在处理数学、代码和多模态等复杂任务时表现出色。
Delta-CoMe 的主要功能
- 模型压缩:基于混合精度压缩技术,显著减少大型语言模型(LLMs)的存储和内存需求,让在有限的硬件资源上部署更多的模型成为可能。
- 性能保持:在压缩的同时,保持模型的性能,尤其是在复杂的任务如数学问题解决、代码生成和多模态任务中,确保压缩后的模型性能接近未压缩的微调模型。
- 多任务处理:支持同时部署多个具有不同能力的模型,适用于多租户和多任务处理场景,提高模型部署的灵活性和效率。
- 推理速度提升:基于实现Triton kernel算子,在推理速度上相比PyTorch实现方式提升近3倍,进一步优化模型的运行效率。
Delta-CoMe 的技术原理
- 低秩分解:用奇异值分解(SVD)对模型参数增量(Delta)进行低秩分解,发现Delta参数具有低秩特性,即大部分变化集中在少数几个主成分上。
- 混合精度量化:基于低秩分解的结果,采用混合精度量化方法,对不同的奇异向量分配不同的位宽。较大奇异值对应的奇异向量用较高精度表示,而较小奇异值对应的奇异向量用较低精度表示,减少存储需求。
- 长尾分布利用:Delta-CoMe观察到Delta参数的奇异值呈现长尾分布,即大部分奇异值较小,只有少数奇异值较大。因此,对于小奇异值对应的奇异向量进行更激进的压缩,对于大奇异值对应的奇异向量保留更高的精度。
- 兼容性和泛化性:Delta-CoMe方法适用于特定的模型或任务,而且具有很好的泛化性,能与不同的主干模型(如Llama-2、Llama-3和Mistral)兼容,并在多种任务上保持良好性能。
- 硬件优化:为进一步提升推理速度,Delta-CoMe实现针对混合精度量化的Triton kernel算子,让在硬件上的部署更加高效。
如何运行 Delta-CoMe
安装
conda create -n Delta-CoMe python=3.9
conda activate Delta-CoMe
pip install -r requirements.txt
压缩
我们发布了llama和mistral系列的模型。详情请参见llama.py和mistral.py。
bash run.sh # 运行llama系列模型,详情请参见run.sh
评估
See ./evaluation for more details.
资源
- 项目官网:https://thunlp.github.io/Delta-CoMe/
- GitHub 仓库:https://github.com/thunlp/Delta-CoMe
- arXiv 技术论文:https://arxiv.org/pdf/2406.08903
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦