一键部署 LLM 搀和精度推理,端到端糊涂比 AWQ 最大普及 6 倍!
清华大学计较机系 PACMAN 本质室发布开源搀和精度推理系统——MixQ。
MixQ 守旧 8 比特和 4 比特搀和精度推理,可完好意思近无损的量化部署并普及推理的糊涂。
△图 1 MixQ 糊涂与已有开源职责相比
MixQ 同期量化权重和激活,使用低精度张量中枢(INT8/INT4 Tensor Core)完好意思推理加快;同期,MixQ 索要激活中少许的离群值,使用高精度张量中枢(FP16 Tensor Core)保握推理准确性,通过系统优化笼罩高精度访存支拨。
不仅保握推理的准确性,并且通过使用低精度算力有用普及糊涂,充分阐扬硬件计较后劲(图 1)。
同期,推敲团队提供了基于 VLLM 和 Tensorrt-LLM 的搀和精度推理,用户不错浮浅地一键部署模子。
△图 2 使用 VLLM 一键部署 4 比特和 8 比特搀和精度量化并推理
MixQ 已守旧多个主流大模子 LLaMA3,Qwen2,Baichuan2,ChatGLM 等。据了解,现时 MixQ 开源技艺已被清程极智等 AI 行业公司利用在本色家具中。
该职责同期于高性能计较领域顶级国外会议 SC ’ 24 发表,第一作家清华大学博士后陈逸东、通信作家为翟季冬训诫。
推敲布景:已有量化技艺回想
量化的主要技艺阶梯有两条,第一条是权分量化。
权分量化的表面加快比是 16/ 量化的比特数。举例,将模子压缩成为 4bit,那么表面加快比为 16/4=4 倍。
然则,当就业商濒临迢遥的用户同期拜谒时,权分量化的系统糊涂会低于 FP16 的糊涂,其主要原因是权分量化计较历程中将低精度权重还原成 FP16 然后计较,这导致权分量化并不使用低精度算力,速即景发达为 compute bound 的时代,性能较低。
△图 3 用户肯求多权分量化糊涂低于 FP16
冠军奖金高达40万美元的应氏杯每四年举行一次,且在奥运会举办年举办,所以被称为“围棋奥运”。本届应氏杯在赛制上做了重大改革,其中第二阶段赛程涵盖了从上海开始的十六强赛至在应昌期故乡慈城的半决赛。中国棋手整体表现出色,尤其在十六强将韩国前三棋手如数淘汰出局,是称大捷。而八强之战柯洁惊险逆转上海名将王星昊,被视为“第一人”状态回猛的标志。
第二条技艺阶梯是量化权重和激活,使用低精度的张量中枢来普及系统的糊涂。
凯旋将激活量化为低比特可能会出现较大的精度失掉。其原因在于激活矩阵中存在离群值(图 4)。
一个有用的样式是 SmoothQuant,主要想想是通过平滑激活矩阵来裁汰量化激活的误差。
△图 4 激活矩阵中存在离群值
搀和精度量化则是一类全新的量化样式,该决策先作念了一个矩阵判辨,对绝大部均权重和激活用低比特存储,将离群值用 FP16 存储,小程序开发区别作念矩阵乘法。
△图 5 搀和精度量化暗示图
搀和精度量化的一个上风便是不错完好意思近乎无损精度的量化。使用搀和精度量化的 LlaMA 模子在 MMLU 20 个领域上的数据集进行推理准确率测试标明,继承 8bit 搀和精度量化后的准确率下落不到 0.1%:
△图 6 搀和精度量化分类准确率
不外,此前已有的搀和精度量化的系统的性能迢遥不高,主要瓶颈在针对离群点进行查找、访存和计较的支拨占比大。
以搀和精度库 Bitsandbytes 为例,实测试标明,Bitsandbytes 在用户肯求数目为 512 时仅有 1.08 倍的加快。
△图 7 Bitsandbytes 的在 LLaMA70B 上的 Kernel 性能测试
△图 8 Atomic operator 是搀和精度推理系统的瓶颈之一
那么,若何优化对离群点的查找、访存和计较的支拨呢?
MixQ 的责罚决策
MixQ 的中枢想想是基于离群点的局部性对搀和精度的计较图作念等价变换,使得变换后的搀和精度的计较图不错幸免离群点查找的迥殊支拨;在此基础上,通过图层交融和蓄意高效的搀和精度数据结构裁汰访存支拨;临了通过 CUTLASS 生成高性能的搀和精度算子,达到普及系统性能的成果。
MixQ 的蓄意基于以下的不雅察:
离群点的局部性。对 LLM 的激活矩阵分析发现,在不同的 decode 阶段的离群点的漫衍是有轨则的。
如图 9,红色的点线路的是第一次出现的离群点,绿色的点线路的是访佛出现的离群点,跟着 decode 的进行,多数离群点出当今了固定的 channel。
△图 9 decode 阶段离群点的漫衍轨则
因此,推敲东说念主员获得一个进击的论断:在大部分的 decode 阶段是不需要访佛检测离群点的,也便是说咱们不错幸免检讨离群点的支拨。
剩下的问题是,若何知说念哪些时代不需要访佛检讨离群点呢?这个谜底就荫藏在量化总共中。
在量化的历程中需要对矩阵进行 amax 的操作。因此,通过 amax 获得的限定不错判断矩阵中是否存在离群点。如 amax 的值大于阈值,那矩阵中存在离群点。反之则不存在。
更进击的是,amax 操作不错和前一个操作交融。这么不仅以极低的代价检测离群点的存在,还通过对图层进行交融来裁汰量化的支拨。
基于以上的分析,MixQ 的蓄意使用了三个关节技艺:
一是对计较图的等价变换。
针对搀和精度的计较逻辑进行了等价变换以后,通过计较激活矩阵的 amax 的值,幸免了检测离群点的支拨。
△图 10 优化搀和精度的计较逻辑
二是蓄意搀和精度数据结构。
MixQ 将离群点"拼接"成了一个新的矩阵。这相通式相较于 ATOM 继承的重摆列(reorder)具有更低的支拨。
△图 11 MixQ:order-reserved 数据结构
三是使用 CUTLASS 编写高性能的搀和精度的算子,这一关节技艺的完好意思依赖于 NVIDIA 提供的高性能矩阵乘法模板 CUTLASS 3.x。
MixQ 在寄存器中反量化低精度的计较限定并与高精度的限定进行相加。
△图 12 交融 dequantize、scale 和 add 操作
底下来看 MixQ 的本质限定,以 LLaMA 70B 为例。
在准确率发达方面,MixQ 的准确率和 Bitsandbytes 一致。
△图 13 MixQ 的推理精度
在性能发达方面,MixQ 8bit kernel 是 Bitsandbytes 的 1.9 倍。
MixQ 4bit Kernel 的性能达 724TFLOPs,是 FP16 的 3.13 倍。
△图 14 MixQ Kernel 性能
端到端测试下,MixQ 在 batch=512 相对 Bitsandbytes 和 AWQ 加快 1.78 和 6 倍。
△图 15 多 batch 测试;上:MIXQ 的推理输出(19.21it/s);下:FP16 的推理输出 (13.56it/s)
情势地址:
[ 1 ] https://github.com/Qcompiler/MixQ_Tensorrt_LLM
[ 2 ] https://github.com/Qcompiler/MIXQ
[ 3 ] https://github.com/Qcompiler/vllm-mixed-precision
— 完 —
投稿请发邮件到:
ai@qbitai.com
标题注明【投稿】,告诉咱们:
你是谁,从哪来,投稿内容
app附上论文 / 情势主页连络,以及相干方式哦
咱们会(尽量)实时回话你
点这里� � 存眷我,难忘标星哦~
一键三连「共享」、「点赞」和「在看」
科技前沿进展日日相遇 ~