专栏名称: GiantPandaCV
专注于机器学习、深度学习、计算机视觉、图像处理等多个方向技术分享。团队由一群热爱技术且热衷于分享的小伙伴组成。我们坚持原创,每天一到两篇原创技术分享。希望在传播知识、分享知识的同时能够启发你,大家一起共同进步(・ω<)☆
目录
相关文章推荐
普象工业设计小站  ·  全网卖断货的原创绘本?!快来一探究竟 ·  昨天  
普象工业设计小站  ·  2024读的最有“分量”的一本书 ·  昨天  
普象工业设计小站  ·  好物有好价!这么好吃的小黄象!99元6件建议 ... ·  2 天前  
银行家杂志  ·  农信社机构改革分析与建议 ·  4 天前  
能建国际集团  ·  李丽娜与星展银行(中国)董事总经理郑可会谈 ·  3 天前  
51好读  ›  专栏  ›  GiantPandaCV

I-LLM:首次实现了LLM全整形量化,精度逼近浮点,超过Smooth/Omini/AffineQuant

GiantPandaCV  · 公众号  ·  · 2024-06-05 17:52

正文



作者丨Austin
来源丨https://zhuanlan.zhihu.com/p/701393483
编辑丨GiantPandaCV

宣传一下我们的工作I-LLM,(据我们所知)这是第一个在LLM上实现了integer-only量化的方法,精度逼近浮点,超过Smooth/Omini/Affine Quant等SOTA方法。

  • https:// arxiv.org/abs/2405.1784 9

  • 单位:后摩智能、南京大学、东南大学

Abstract

PTQ能够有效加速LLMs的推理。然而,现有针对LLM的PTQ方案在推理过程中仍然需要相当多的浮点操作,例如额外的量化和反量化操作,以及复杂的非线性算子(如RMSNorm和Softmax)。这些约束阻碍了LLMs在边缘和云端设备上的部署。我们认为LLMs integer-only量化的主要问题在于linear和non-linear计算时激活值中在跨channel和跨token维度上有巨大波动。

为了解决这个问题,我们提出了I-LLM,这是一种针对LLM量身定制的integer-only PTQ框架。具体来说,(1)我们开发了Fully-Smooth Block-Reconstruction (FSBR)来平滑所有激活和权重channel间的变化。(2)为了减轻token间变化的影响,我们提出了Dynamic Integer-only MatMul (DI-MatMul)方法。该方法仅通过整数运算实现了全整形GEMM的动态量化输入和输出。(3)我们设计了DI-ClippingSoftmax、DI-Exp和DI-Normalization,它们利用高效的bit shift来计算非线性算子,同时保持了精度。

实验结果表明,I-LLM实现了与FP baseline相当的准确度,并且优于非整数量化方法。例如,I-LLM 可以在W4A4上运行,精度损失几乎可以忽略不计。据我们所知,I-LLM是第一个在LLM上实现了integer-only量化的工作。

Introduction

来源:I-Bert

LLMs的计算量和带宽需求很大,往往需要通过量化进行部署加速。然而,现有的LLMs量化方法在推理过程中仍然需要大量的浮点运算,例如Matmul引入了额外的量化和反量化操作、以及Softmax等非线性算子。如下图所示,(a) W8A8量化方案,推理时需要对输入的 X 进行量化,并且对输出的 Y 值也需要进行反量化到FP16;(b) W4A16量化方案,推理时需要将 W 反量化到FP16,随后执行FP16的GEMM运算。 这阻碍了LLMs在边缘和云设备上的部署,这是因为浮点运算代价较高,甚至有些设备没有浮点算力。


来源:QServe

现有的Integer-only量化方案(如I-Vit、I-Bert)在LLMs上表现很差,因为这些方案是为CNN、Transformer等相对较小的模型设计的,无法处理LLMs激活值存在大量的离群点,包括线性算子(如FC)和非线性算子(如Softmax、SwiGlu)。

为了解决上述问题,我们发表了I-LLM这篇文章,(据我们所知)这是首个在LLMs上实现了Inter-only量化的工作,主要贡献包括:

  1. 提出了Fully-Smooth Block-Reconstruction (FSBR),用于平滑LLMs中所有激活和权重的通道间变化。

  2. 提出了Dynamic Integer-only MatMul (DI-MatMul),在INT GEMM的基础上利用整数操作实现激活的动态量化。

  3. 设计了DI-ClippedSoftmax、DI-Exp和DI-Norm等整形推理的非线性算子,采用了高效的位移操作同时保持了精度。

实验表明,I-LLM在W6A6的配置下取得了与浮点模型相当的精度,在W4A4的甚至远优于Weight-only的量化方法。

I-LLM在LLaMA上的效果

Method

Fully-Smooth Block-Reconstruction (FSBR)

问题识别 :在大型语言模型中,线性和非线性操作的激活值在不同通道和token之间会有较大的波动。这种波动导致量化后的模型性能下降。

为了缓解LLMs激活中的离群点,我们提出了FSBR。虽然相比Omniquant和Smoothquant的方法有一些相似之处,但他们主要集中于Serial norm-linear和Parallel linear-linear两种运算中的激活。我们认为有效缓解LLMs中所有的激活-激活和激活-权重对的差异能够显著提高准确性,在此基础上,我们的smooth方法增加了Serial Linear-Linear和Nonlinear Act-Smooth,如下图所示。

I-LLM的FSBR示意图


LLMs中非线性层的激活在通道和token维度上也存在较大差异,如下图所示。因此,我们考虑所有非线性层的激活,并在通道级别学习所有可能的等效平滑变换的平滑系数。一种直观的方法是为所有激活和权值训练一个平滑系数,以帮助恢复模型的量化精度。 然而,这对于Linear层比较容易实现,但是对Non-linear算子不能直接进行等价变换。

LLM异常值很多

这里以SwiGLU为例:

观察图2可以发现,SwiGLU函数的通道和token维度上的的分布不平衡经过FSBR得到了有效缓解。FSBR 的主要目的是平滑不同通道和token之间激活值的波动,从而提高量化模型的准确性。相比Smoothquan和Omniquant,FSBR提供了更多优化权重和激活分布的可能性,为优化权值和激活分布提供了更多可能性。通过跨通道的相互优化,网络对量化的鲁棒性有所提高,如论文中的表4所示。

I-LLM的消融实验

以下是FSBR的一些关键点:

  1. 平滑激活值 :FSBR 通过为所有激活值和权重学习平滑系数来解决这个问题。这些平滑系数有助于在量化过程中保持模型的精度。

  2. 等效平滑变换 :FSBR 考虑了所有可能的等效平滑变换,并在通道级别上学习平滑系数。这包括了Serial norm-linear、Parallel linear-linear、Serial Linear-Linear、Nonlinear Act-Smooth共四种范式。

  3. 非线性操作的平滑 :对于非线性操作,如SwiGLU(一种门控激活函数),FSBR 通过分解操作来应用平滑。

Dynamic Interger-only MatMul (DI-MatMul)

在LLMs中,即使应用了channel间平滑技术,token维度上仍然存在相当大的分布范围,而静态量化方法(即量化参数在运行时固定不变)在遇到超出校准集范围的输入时,往往准确性会严重下降。 因此,现有的量化方案为了保证精度,普遍采用per-token的量化方案,这种在线量化引入了大量的浮点操作 。而全整形GEMM量化的最大难点在于量化参数(scale和zero point)必须是浮点数。

我们提出了DI-MatMul,旨在解决LLMs中GEMM量化推理中(如W4A4)的动态量化问题。为了避免浮点运算,我们dyadic number近似浮点乘法。以下是DI-MatMul实现的关键步骤:




整个过程中,DI-MatMul只使用整数运算,仅引入了一些额外的整数标量计算,使其比之前的方法更高效。 此外,DI-MatMul 能够主动识别并适应输入数据的多样性,从而减少量化误差,提高整体模型性能。 DI-MatMul 是 I-LLM 框架中实现整数量化推理的重要组成部分,它通过动态量化输入和输出,使得模型能够在保持精度的同时,充分利用整数运算单元的效率,加速模型的推理过程。这对于在边缘设备上部署大型语言模型具有重要意义。







请到「今天看啥」查看全文


推荐文章
普象工业设计小站  ·  全网卖断货的原创绘本?!快来一探究竟
昨天
普象工业设计小站  ·  2024读的最有“分量”的一本书
昨天
银行家杂志  ·  农信社机构改革分析与建议
4 天前
历史震惊你  ·  中国古今官职对照表,涨姿势!
8 年前
玩物志  ·  为了工作,我抽起人生第一口烟
7 年前