一键部署 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
第二条本事路子是量化权重和激活,使用低精度的张量中枢来普及系统的费解。
奏凯将激活量化为低比特可能会出现较大的精度耗费。其原因在于激活矩阵中存在离群值(图 4)。
a片 男同一个灵验的方法是 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
标题注明【投稿】,告诉咱们:
你是谁,从哪来,投稿内容
附上论文 / 技俩主页连络,以及有关形态哦
咱们会(尽量)实时恢复你
点这里� � 柔柔我,难忘标星哦~
一键三连「共享」、「点赞」和「在看」
科技前沿进展日日相逢 ~