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(精确率):预测为正类的样本中,实际为正类的比…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...