AI模型“减肥”风潮:量化究竟带来了什么?
量化对大模型的影响是什么
©作者|YXFFF
来源|神州问学
引言
大模型在NLP和CV领域的广泛应用中展现了强大的能力,但随着模型规模的扩大,对计算和存储资源的需求也急剧增加,特别是在资源受限的设备上面临挑战。量化技术通过将模型参数和激活值从浮点数转换为低精度表示,不仅减小了模型的存储占用,还能加速推理过程,从而成为应对大模型资源挑战的关键手段。随着量化技术的不断优化,大模型将在更多领域展现更高效和可扩展的能力。
一、量化的基本概念与方法
1、 量化的定义与实现
量化定义了一种数学过程,其中变量的值被映射到一个固定数量的比特位上。在模型中实现量化,通常涉及将变量(例如权重和激活函数)转换为特定位数的数据表示。这意味着当我们计算模型中的某个元素时,我们得到的是这个元素对应的比特值的乘积。
常见的量化方法包括后训练量化(PTQ)、量化感知训练(QAT)和动态量化(Dynamic Quantization)、混合精度量化(Mixed-Precision Quantization)等。
PTQ:在模型训练完成后进行量化,不需要重新训练模型。适用于已经训练好的模型,尤其是当训练数据不可用或训练时间受限时。简单易行,不需要额外的训练过程。在某些情况下,量化后模型的性能(尤其是精度)可能显著下降。
QAT:在模型训练过程中模拟量化操作,使模型逐渐适应低精度表示。通常在训练阶段就引入量化操作,模型在量化环境下学习参数。相比PTQ,能够更好地保持模型的精度。需要重新训练模型,训练时间较长,且需要有足够的训练数据。
动态量化:在推理阶段对激活值进行动态量化,通常应用于权重和激活值。相比静态量化,动态量化在推理时更具灵活性。不需要训练,推理时更具灵活性。相比QAT,性能提升有限。
混合精度量化:不同的部分使用不同的量化精度,如部分使用FP32,部分使用INT8。通常在性能和精度之间进行折中。灵活性高,可以在性能和精度之间找到最佳平衡点。实现复杂度较高,可能需要手动调优。
2、 量化的多重效益
模型尺寸:量化可以显著减少模型尺寸,尤其是对于那些因规模庞大而难以部署的模型来说,这一点尤为重要。通过减少数据的表示位数,我们能够在不损失精度或增加计算时间的情况下减小模型大小。
推理速度:量化提高了模型在推理过程中的效率。由于量化减少了数据存储需求,模型可以在较低的计算资源上运行,从而加快推理速度。此外,适当的量化还可以帮助模型在低精度硬件上运行,进一步提升速度。
功耗:量化通过减少模型处理数据的数量来降低功耗。尽管量化可能会增加一些计算负担,但总体而言,它有助于减少模型整体的能耗。特别是在移动设备和嵌入式系统中,量化是一个提高能效比的有效手段。
二、 量化对模型性能的影响
1、 推理速度的提升
量化显著提升了模型的推理速度和资源利用率。通过将模型的计算过程转换到更低精度的数字表示,减少了内存访问和计算时间,从而加快了模型的执行速度。在边缘设备、移动设备等资源受限环境中,量化可以有效减少模型的内存消耗和计算需求,从而提高部署效率。
2、 资源利用率优化
在资源受限的环境下,量化提供了一种有效的解决方案。在移动设备上,由于资源有限,传统的模型可能无法达到理想的性能。通过量化技术,如INT8量化和FP4量化,可以有效降低内存需求,同时保持模型的推理性能,使得模型在这些设备上能够以较高的效率运行。
3、 实测案例
香港大学在《How Good Are Low-bit Quantized LLAMA3 Models?An Empirical Study》一文中对Llama3采用多种PTQ和QAT方法,实验结果表明,各种训练后量化PTQ方法在不同比特宽度上的表现存在显著差异,推理速度的提升会伴随模型性能的显著下降。在2比特时模型性能大幅度下降,但在3比特及以上能够维持较为稳定的性能。AWQ通过抑制异常通道提高了量化的稳定性,尤其是在3比特时表现良好。BiLLM在极限压缩条件下表现出色,使LLAMA3-8B在低至1.1比特的配置下优于其他PTQ方法,特别是在2比特及以下配置中表现出色。对LoRA-FT方法,其主要用于在低比特宽度下进行性能补偿。QLoRA和IR-QLoRA在4比特的LLAMA3-8B模型上的表现虽然有所下降,但与未经LoRA-FT的模型相比,其精度仍然较高,尤其是在MMLU数据集上。然而,这些方法仍无法完全弥补量化所带来的性能损失。
三、量化对模型准确性的影响
1、 精度的潜在下降
量化过程中,模型参数被转换为低精度的整数形式,这通常会导致模型精度的下降。使用8位或更低精度的量化时,模型的预测性能会受到影响,尤其是在处理高维度输入数据时。此外,量化误差还可能导致特定类型的错误,如预测的正确答案被错误地标记为错误答案。
2、 量化方法对比
不同的量化方法可能会以不同的影响方式改变模型的准确性。一些研究表明,训练时量化能够获得接近浮点模型的精度,尤其适合4bit量化。另一方面,训练后量化(PTQ)方法虽然可以提供更高的准确性,但计算开销相对较高。还有研究发现,动态量化比静态量化能更好地保持精度,尽管代价是模型的推理速度有所下降。
3、 性能与精度的权衡
为了在保证模型性能的同时尽量减少量化的精度损失,研究人员和工程师正在探索多种策略。一种策略是优化映射函数的设计,使其在减少精度损失的同时保持模型性能。通过调整映射阈值或优化量化操作,可以在一定程度上缓解精度损失的问题。另一种方法是选择性地量化模型的各个层,而不是整个模型。这样做可以帮助研究者根据模型的具体应用场景选择最合适的量化策略。
四、量化对实际应用场景的影响
1、 工业与智能设备应用
在工业自动化领域,模型量化被用来提高处理速度,减少模型在硬件上的存储和计算成本。例如,通过将模型从浮点数转换为整数,可以有效提升计算性能,同时保持模型的精度不变。在汽车制造行业,通过模型量化,可以将驾驶模拟系统的性能提升了50%以上。此外,量化模型在解决复杂的工业控制问题时,如过程监控和故障诊断中,也显示出其独特的优势。以工业视觉检测为例,量化后的模型使得图像处理速度提高了3倍,同时精度保持不变,显著提高了生产效率。
2、 部署与维护挑战
模型部署和更新过程中,量化面临的挑战主要包括如何平衡模型的性能、速度和安全性。由于不同模型可能对量化的敏感性不同,优化量化参数以保持最佳性能需要仔细考量。此外,针对特定硬件平台的量化实现也面临技术挑战,以确保模型能够在各种设备上高效部署和运行。例如,在自动驾驶领域,一个实际的挑战是在边缘计算平台上实现高性能的实时决策支持系统,这要求模型在不同硬件设备上都能保持较高的性能和稳定性。
五、量化技术的进展与趋势
1、 向极限推进
清华大学和哈尔滨工业大学的研究人员联合提出了一种名为OneBit的1位量化感知训练框架,将大模型量化做到1比特,同时保持至少83%的原始模型性能。OneBit框架采用了创新的1比特参数表示方法,结合高效的矩阵分解初始化策略Sign-Value-Independent Decomposition(SVID),显著提升框架收敛速度。通过量化感知知识蒸馏,成功将教师模型的能力迁移至1比特对应模型。
2、 与其他优化技术的结合
量化技术与其他优化技术的结合是一个重要的研究方向。与剪枝技术的结合可以有效降低大模型的计算复杂度,同时通过知识蒸馏将知识转移到更简单的模型中。这种结合不仅能够提高模型性能,还能扩大模型的应用范围。量化优化技术还可以与其他优化方法结合使用,如梯度下降法等,进一步提高模型的性能。
3、 量化技术的未来定位
小型移动平台(如智能手机、机器人、无人驾驶汽车等)的硬件限制和有限计算资源,阻碍了神经网络模型的直接部署。为这些平台设计独特的压缩方法,尤其是量化技术,是未来的重要研究方向。量化技术通过降低模型的计算需求和存储空间,使得在资源受限的环境中,复杂的神经网络也能高效运行。未来,量化技术将进一步优化,适应不同硬件需求,成为推动小型设备智能化应用的关键技术。
结论
量化技术在大模型的发展中十分重要。随着计算资源的日益紧张和模型性能的持续追求,量化技术的发展前景广阔。从智能量化算法的开发到自适应量化策略的引入,再到与其他优化技术的结合,未来的量化技术将更加智能化和高效,为AI技术的发展提供强有力的技术支持。
相关文章:

AI模型“减肥”风潮:量化究竟带来了什么?
量化对大模型的影响是什么 ©作者|YXFFF 来源|神州问学 引言 大模型在NLP和CV领域的广泛应用中展现了强大的能力,但随着模型规模的扩大,对计算和存储资源的需求也急剧增加,特别是在资源受限的设备上面临挑战。量化技术通过将模型参数和…...

第四届“长城杯”网络安全大赛 暨京津冀网络安全技能竞赛(初赛) 全方向 题解WriteUp
战队名称:TeamGipsy 战队排名:18 SQLUP 题目描述:a website developed by a novice developer. 开题,是个登录界面。 账号admin,随便什么密码都能登录 点击头像可以进行文件上传 先简单上传个木马试试 测一下&…...

ETCD的备份和恢复
一、引言 ETCD是一个高度可用的键值存储系统,被广泛应用于Kubernetes等分布式系统中以存储关键配置数据和服务发现信息。由于ETCD的重要性,确保其数据的安全性和可靠性至关重要。本文将介绍ETCD备份与恢复的基础知识、常用方法及最佳实践。 二、概述 …...

Linux Makefile文本处理函数知识详解
1.Makefile函数 GNU make 提供了大量的函数用来处理文件名、变量、文本和命令。通过这些函数,用户可以节省很多精力,编写出更加灵活和健壮的Makefile。函数的使用和变量引用的展开方式相同: $(function arguments)${function arguments}关于…...

Rust的数据类型
【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust到底值不值得学,之一 -CSDN博客 Rust到底值不值得学,之二-CSDN博客 3.5 数据类型的定义和分类 在Rust…...

如何在vim中批量注释和取消注释
一、批量注释 首先在你需要注释的初始所在行在命令模式下输入CTRL v,然后按下HJKL来控制方向(不能使用键盘上的箭头方向键): 然后输入 shifti: 输入两个斜杠然后加exc就可以完成批量注释: 二、批量取消注…...

Centos7.9 安装Elasticsearch 8.15.1(图文教程)
本章教程,主要记录在Centos7.9 安装Elasticsearch 8.15.1的整个安装过程。 一、下载安装包 下载地址: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-8-15-1 你可以通过手动下载然后上传到服务器,也可以直接使用在线下载的方式。 wget https://artifacts…...

哈希表-数据结构
一、哈希表基本概念 哈希表(也称为散列表)是根据键而直接访问在内存存储位置的数据结构,也就是说实际上是经过哈希函数进行映射,映射道表中一个位置来访问记录,这个存放记录的数组称为散列表。 哈希函数:就…...

指针之旅(4)—— 指针与函数:函数指针、转移表、回调函数
目录 1. 函数名的理解 1.1 “函数名”和“&函数名”的含义 1.2 函数(名)的数据类型 2. 函数指针(变量) 2.1 函数指针(变量)的创建格式 2.2 函数指针(变量)的使用格式 2.3 例子 判别 3. typedef 关键字 3.1 typedef的作用 3.2 typedef的运作逻辑 和 函数指针类型…...

打造线上+线下相结合的O2O平台预约上门服务小程序源码系统 带完整的安装代码包以及搭建部署教程
系统概述 本系统采用前后端分离的设计架构,前端以微信小程序为载体,提供直观、易用的用户界面;后端则采用稳定的服务器架构,确保数据处理的高效与安全。系统主要包括用户端、商户端和管理员端三大模块,通过API接口实现…...

python sys模块
在Python中,sys模块提供了访问和使用解释器的许多功能的方法,包括命令行参数、环境变量、路径管理、标准输入输出流等。sys模块是Python的标准库的一部分,不需要额外安装即可使用。 常用的sys模块功能 1. sys.argv sys.argv是一个包含命令…...

【Linux 报错】SSH服务器拒绝了密码。请再试一次。(xshell)
出现该错误 可能的原因: 你写入的登录密码错误了,错误原因有: 1、本来输入就错误了 2、创建用户时,只创建了用户名,但密码没有重新设置 3、多人使用同一台服务器时,该服务器管理员(本体&#x…...

云计算实训43——部署k8s基础环境、配置内核模块、基本组件安装
一、前期系统环境准备 1、关闭防火墙与selinux [rootk8s-master ~]# systemctl stop firewalld[rootk8s-master ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus…...

TAbleau 可视化 干货分享 | 简单三步助你打造完美仪表板
只需单击几下,你将能轻松创建美观、信息丰富的可视化效果、节省时间并推动业务向前发展! 借助精心设计的仪表板,分析师可以更好地理解复杂数据背后的信息,更有效地向他人分享你的见解,从而做出更明智的决策。 值得思考…...

JVM性能调优之5种垃圾收集器
JDK垃圾收集器 一、Serial GC垃圾收集器Serial GC的工作原理Serial GC的特点Serial GC的配置参数Serial GC的适用场景Serial GC的优缺点优点:缺点: Serial GC的总结 二、Parallel GC垃圾收集器Parallel GC的工作原理Parallel GC的特点Parallel GC的配置参…...

基于单片机的仔猪喂饲系统设计
文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设…...

Helm Deploy Online Rancher v2.9.1
文章目录 准备安装查看下载 准备 $ kubectl get node NAME STATUS ROLES AGE VERSION kube-master01 Ready control-plane 19d v1.29.5 kube-node01 Ready <none> 19d v1.29.5 kube-node02 Ready <none&…...

【办公效率】Axure会议室预订小程序原型图,含PRD需求文档和竞品分析
作品说明 作品页数:共50页 兼容版本:Axure RP 8/9/10 应用领域:中小型企业的会议室在线预订 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本作品为会议室预订小程序原型图,定位于拥有中大型…...

论文解析一: SuperPoint 一种自监督网络框架,能够同时提取特征点的位置以及描述子
目录 SuperPoint:一种自监督网络框架,能够同时提取特征点的位置以及描述子1.特征点预训练2.自监督标签3.整体网络结构3.1 先对图像进行卷积3.2 特征点提取部分(Interest Point Decoder)3.3 特征描述子提取部分(Descrip…...

【评估指标】Fβ-score
1. Fβ-score 概述 Fβ-score 是一种综合考量精确率(precision)和召回率(recall)的分类评估指标。其公式为: 1.1 Precision(精确率):预测为正类的样本中,实际为正类的比…...

1963Springboot个性化音乐推荐管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
博主介绍:专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的可以…...

solidity从入门到精通(持续更新)
我一度觉得自己不知何时变成了一个浮躁的人,一度不想受外界干扰的我被干扰了,再无法平静的去看一本书,但我仍旧希望我能够克服这些,压抑着自己直到所有的冲动和奇怪的思想都无法再左右我行动。 自律会让你更加自律,放纵…...

UEFI入门(二):edk2项目编译流程
UEFI入门(二):edk2项目编译流程 一、编译构建流程:1. 安装依赖工具2. 初始化构建环境3. 配置工具链和目标4. 定义平台配置5. 构建并编译 二、uefi-tools编译edk2实践:1. 克隆EDK2 项目2. 构建并编译 参考文章ÿ…...

局域网一套键鼠控制两台电脑(台式机和笔记本)
服务端(有键盘和鼠标的电脑作为服务端) 下载软件 分享文件:BarrierSetup-2.3.3.exe 链接:https://pan.xunlei.com/s/VO66rAZkzxTxVm-0QRCJ33mMA1?pwd4jde# 配置服务端 一, 二, 客户端屏幕名称一定要和…...

最新Nessus2024.9.8版本主机漏洞扫描/探测工具下载Windows版
Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描…...

关于使用 @iconify/vue2图标库组件的离线使用
Iconify 是最通用的图标框架,将各种图标库的图标集中在这里的一个组件库,例如ant-design,element-ui等 网站地址如下 https://iconify.design/getting-started/ 1.安装依赖 这两个包提供了图标组件和离线图标数据的支持。 npm install iconify/vue2 i…...

pdfmake生成pdf的使用
实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdf…...

PLM系统有哪些品牌推荐?国内不错的PLM厂商有哪些?
在当今快速变化的商业环境中,产品生命周期管理PLM系统已成为企业技术创新和管理创新的重要工具。PLM系统涵盖了产品从概念设计到市场推出、使用维护直至最终报废的整个生命周期,通过整合与产品相关的所有信息,助力企业实现高效、协同的产品开…...

Linux网络:网络套接字-TCP回显服务器——多进程/线程池(生产者消费者模型)
1.多进程版本 这里选择创建子进程,让子进程再创建子进程。父进程等待子进程,子进程的子进程处理业务逻辑。因为子进程是直接退出,子进程的子进程变成孤儿进程被系统管理,所以父进程在等待的时候不是阻塞等待的,所以可…...

Redis 篇-深入了解基于 Redis 实现消息队列(比较基于 List 实现消息队列、基于 PubSub 发布订阅模型之间的区别)
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 消息队列的认识 2.0 基于 List 实现消息队列 2.1 基于 List 实现消息队列的优缺点 3.0 基于 PubSub 实现消息队列 3.1 基于 PubSub 的消息队列优缺点 4.0 基于 St…...