大数跨境
0
0

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

I-LLM:首次实现了LLM全整形量化,精度逼近浮点,超过Smooth/Omini/AffineQuant 极市平台
2024-06-07
0
↑ 点击蓝字 关注极市平台
作者丨Austin@知乎(已授权)
来源丨https://zhuanlan.zhihu.com/p/701393483
编辑丨极市平台

极市导读

 

这项工作首次在LLMs上实现了全整形量化,为LLMs的高效部署和推理开辟了新的途径,尤其是边缘设备上。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

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

论文链接:https://arxiv.org/abs/2405.17849

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

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量化方案,推理时需要对输入的XXX进行量化,并且对输出的YYY值也需要进行反量化到FP16;(b) W4A16量化方案,推理时需要将WWW反量化到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实现的关键步骤:

1.量化表示:DI-MatMul使用dyadic number来表示量化步长 , 即 , 其中 都是8位整数。零点 也以类似的方式表示。

2.矩阵乘法公式: DI-MatMul将定点矩阵乘法表达为 , 其中 是量化输出, 是量化输入。

中间结果:定点矩阵乘法的中间结果 (partial sum) 为 , 对应的浮点结果 , 可以参考对称量化输出

1.量化尺度计算: 为了获得输出的量化 scale, DI-MatMul , 其中 中的最大和最小值。

2.优化和迭代: 为了找到最优的 , 可能需要多次迭代, 例如: , 但是可以设置 只搜索 的值。

3.位移操作:DI-MatMul利用位移操作来实现指数函数和除法操作,这些操作是动态量化所必需的。例如,使用位移操作来近似指数函数,而不是使用传统的浮点运算。

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

Dynamic Non-Linear Integer-only Operations

由于DI-MatMul支持了动态量化,导致激活值的scale在运行时是变化的,因此我们也提出了DI-ClippedSoftmax、DI-Exp、DI-Normalization等非线性算子的全整形动态量化方案。详情可以参考论文。

Experiments

实验结果表明,I-LLM在LLaMA和OPT系列的7B、13B、30B模型上都取得了惊人的效果,甚至超过了weight-only的量化方案,远超其他的Integer-only量化方案。例如其W6A6的精度逼近浮点,其W4A4也是超过了SmoothQuant、OnmiQuant、AffineQuant等SOTA方法。

I-LLM在LLaMA上的性能
I-LLM在OPT上的性能

I-LLM在zero-shot的任务上同样表现出色。

I-LLM zero-shot性能

这项工作首次在LLMs上实现了全整形量化,为LLMs的高效部署和推理开辟了新的途径,尤其是边缘设备上。


公众号后台回复“数据集”获取100+深度学习各方向资源整理

极市干货

技术专栏:多模态大模型超详细解读专栏搞懂Tranformer系列ICCV2023论文解读极市直播
极视角动态欢迎高校师生申报极视角2023年教育部产学合作协同育人项目新视野+智慧脑,「无人机+AI」成为道路智能巡检好帮手!
技术综述:四万字详解Neural ODE:用神经网络去刻画非离散的状态变化transformer的细节到底是怎么样的?Transformer 连环18问!

点击阅读原文进入CV社区

收获更多技术干货


【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读7.6k
粉丝0
内容8.2k