Delta-CoMe:清华联合OpenBMB等高校开源的新型增量压缩算法

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: Delta-CoMe是由清华大学NLP实验室联合OpenBMB开源社区、北京大学和上海财经大学提出的新型增量压缩算法。该算法通过结合低秩分解和低比特量化技术,显著减少了大型语言模型的存储和内存需求,同时保持了模型性能几乎无损。Delta-CoMe特别适用于处理数学、代码和多模态等复杂任务,并在推理速度上有所提升。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 模型压缩:显著减少大型语言模型的存储和内存需求。
  2. 性能保持:在压缩的同时保持模型性能,尤其在复杂任务中表现出色。
  3. 多任务处理:支持同时部署多个模型,提高模型部署的灵活性和效率。

正文(附运行示例)

Delta-CoMe 是什么

公众号: 蚝油菜花 - 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.

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
20天前
|
算法
基于电导增量MPPT控制算法的光伏发电系统simulink建模与仿真
本课题基于电导增量MPPT控制算法,使用MATLAB2022a的Simulink进行光伏发电系统的建模与仿真,输出系统电流、电压及功率。电导增量调制(IC)算法通过检测电压和电流变化率,实时调整光伏阵列工作点,确保其在不同光照和温度条件下始终处于最大功率输出状态。仿真结果展示了该算法的有效性,并结合PWM技术调节逆变流器占空比,提高系统效率和稳定性。
|
4月前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
96 0
|
7月前
|
算法 数据处理 数据安全/隐私保护
|
8月前
|
算法 Java
Java面试题:解释垃圾回收中的标记-清除、复制、标记-压缩算法的工作原理
Java面试题:解释垃圾回收中的标记-清除、复制、标记-压缩算法的工作原理
97 1
|
9月前
|
数据采集 算法 安全
CVPR 2024:给NeRF开透视眼!稀疏视角下用X光进行三维重建,9类算法工具包全开源
【6月更文挑战第28天】CVPR 2024亮点:SAX-NeRF框架开源!融合X光与NeRF,提升3D重建效果。X3D数据集验证,Lineformer+MLG策略揭示物体内部结构,增强几何理解。虽有计算成本及泛化挑战,但为计算机视觉和医学影像开辟新路径。[论文链接](https://arxiv.org/abs/2311.10959)**
275 5
|
8月前
|
算法 Java 程序员
Java面试题:解释Java的垃圾回收机制,包括常见的垃圾回收算法。介绍一下Java的垃圾回收算法中的标记-压缩算法。
Java面试题:解释Java的垃圾回收机制,包括常见的垃圾回收算法。介绍一下Java的垃圾回收算法中的标记-压缩算法。
67 0
|
8月前
|
机器学习/深度学习 算法 搜索推荐
一个开源且全面的C#算法实战教程
一个开源且全面的C#算法实战教程
127 0
|
11天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
83 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
2天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-LSTM-SAM网络时间序列预测算法。使用Matlab2022a开发,完整代码含中文注释及操作视频。算法结合卷积层提取局部特征、LSTM处理长期依赖、自注意力机制捕捉全局特征,通过粒子群优化提升预测精度。适用于金融市场、气象预报等领域,提供高效准确的预测结果。
|
2天前
|
算法 数据安全/隐私保护
基于Big-Bang-Big-Crunch(BBBC)算法的目标函数最小值计算matlab仿真
该程序基于Big-Bang-Big-Crunch (BBBC)算法,在MATLAB2022A中实现目标函数最小值的计算与仿真。通过模拟宇宙大爆炸和大收缩过程,算法在解空间中搜索最优解。程序初始化随机解集,经过扩张和收缩阶段逐步逼近全局最优解,并记录每次迭代的最佳适应度。最终输出最佳解及其对应的目标函数最小值,并绘制收敛曲线展示优化过程。 核心代码实现了主循环、粒子位置更新、适应度评估及最优解更新等功能。程序运行后无水印,提供清晰的结果展示。

热门文章

最新文章