发布日期:2024-11-08 12:26 点击次数:67
放手激活值 ( outliers ) 伊人网,大说话模子低比特量化有新招了——
自动化所、清华、港城大团队最近有一篇论文入选了NeurIPS 2024(Oral Presentation),他们针对 LLM 权重激活量化提议了两种正交变换,灵验缩小了 outliers 征象,达到了 4-bit 的新 SOTA。
浅薄归并,在大说话模子(LLM)中,有一些中间层输出的数值(激活值 Activation)会变得极端大,它们被称为" outliers(离群值)",这些 outliers 给模子量化带来了挑战。
补充一下,量化不错将模子中的数值从浮点数养息为整数,以减少模子的大小和磋商需求。
而一朝在量化过程中存在深广 outliers,会导致量化后的模子性能下落。
赫然了这层预见 , 咱们再来看他们团队的一项名为 DuQuant 的新磋议。
首先 , 他们发当今 LLM 的前馈网罗 ( FFN ) 模块中的down_proj 层, 存在彰着的Massive Outliers ( 极端大的激活值 ) 。
这种 outliers 不同于以往发现的 Normal Outliers,发达为大于饱和值几百的额外值并局限于个别的 tokens 中——
它们导致现存的量化算法(如 SmoothQuant 和 OmniQuant)在将模子的权重和激活值量化为 4 位二进制数时发达欠安。
对此,团队提议了一种新的量化法式,叫作念DuQuant。
DuQuant 通过学习旋转和置换变换矩阵,在 Activation 矩阵里面将 outliers 漂浮到其他通说念,最终得到平滑的激活矩阵,从而大幅缩小了量化难度。
施行闪现,使用 DuQuant 法式,在 4 位权重和激活量化的培育下,模子达到了 SOTA。
同期,DuQuant 的历练极端快速,不错在50s 内完成 7B 模子的量化过程,即插即用。
配景
在每个 Transformer 块的常见模块中,多头镇定意力(MSA)和前馈网罗(FFN)基本上齐由线性层构成,将其示意为:
其中是激活输入,示意权重矩阵。
模子量化通过将浮点数(FP16, BF16)示意的模子权重或激活值养息为低位的浮点数或整数来减少内存占用,权重激活量化不错通过使用低比特乘法的算子进一步加速模子推理的速率。
该职责重心关怀低比特整型量化,磋议是赢得更好的硬件复古。
具体来说, � � 位量化过程将 FP16 张量� � 映射为低位整数� � � � :
标志⎣ · ⎤示意最接近的舍入操作, ∆是量化步长, � � 示意零点。
苦守主流量化法式,作家对激活� � 接纳逐 token 量化,对权重� � 接纳逐通说念量化,这意味着为� � 的每个 token 分拨不同的步长( ∆� � ∊ ℝ� �x1),为� � 的每个输出通说念分拨不同的步长。
动机(Motivation)
据作家先容,他们初次在施行中发现,LLM FFN 模块中的down_proj layer存在彰着的 Massive Outliers(极端大的激活值),发达为饱和值大于几百的额外值并局限于个别的 token 中。
PS:先前职责发现 Massive Outliers 存在于每个 transformer block 的输出中,DuQuant 的作家进一步将其定位在 FFN 模块中。
论文:https://link.zhihu.com/?target=https://eric-mingjie.github.io/massive-activations/index.html
这些 Massive Outliers 酿成 SmoothQuant 和 OmniQuant 等算法在 4bit WA 量化中发达较差。
△图 1:Massive outliers 权贵加大了低比特权重激活量化的难度
图 1 ( a ) ( b ) 对比了深广常见的 Normal Outliers,和在 FFN 中出现的 Massive Outliers。
SmoothQuant通过将激活值除以每通说念平滑因子并将其乘回权重矩阵,尝试将量化难度从激活值漂浮到权重。
具体来说,SmoothQuant 使用逐通说念的平滑对角矩阵,记为� � ,将原始线性层从头抒发为:� �= � � · � �=(� � · � �)(� �-1 · � �),对角矩阵� � 中的元素� � � � 的磋商样式为:
其中 α 是一个超参数,示意迁徙强度。
然则,作家不雅察到在输入端进行这种漂浮可能会导致权重矩阵也出现彰着的难以量化的 outliers(如图 1 ( d ) 所示),这一问题的根源在于 Massive Outliers 使平滑因子� � � � 变得额外大。
此外伊人网,极大的 outliers 还可能导致基于优化的法式出现梯度爆炸的问题,是以基于梯度优化的 OmniQuant 和 AffineQuant 等职责会径直跳过 down_proj layer,径直退化为 SmoothQuant 的处理样式。
这些 preliminary experiments 齐标明需要一种更新更好的样式处理两种 outliers,非常是平滑掉 down_proj 输入侧的 Massive Outliers。
法式
DuQuant 提议通过学习旋转和置换变换矩阵,在 Activation 矩阵里面将 outliers 漂浮到其他通说念,最终得到平滑的激活矩阵,从而大幅度缩小了量化难度。
( a ) 渐渐展示了 DuQuant 算法对 Normal outlier 的处理过程, ( b ) DuQuant 权贵缩小了 Massive outlier, ( c)一个 Tony Example 讲明 DuQuant 灵验缩小了激活矩阵的量化难度。
△图 2:DuQuant 算法讲明
浅薄来说,DuQuant 算法包含三个设施:
1)旋转矩阵的构造灵验诳骗了特定 outlier channel 的位置索引,作家使用了分块对角的旋转矩阵,在每个 block 里面通过贪默算法将 outlier 平摊到其他的 channels 中。
2)由于 block size 的升天,可能导致某些 block 在旋转之后组内的平均值大于其他 blocks,因此作家进一步使用通说念置换时代从头分拨 activation channel,使用 zigzag 法例胪列使各组均值的方差大幅减小。
3) 进一步奉行一次旋转机换达到更均匀的 activation 散布,从而大幅缩小了量化难度。
旋转矩阵:作家但愿应用旋转矩阵� � 进行行或列变换,减弱 Normal Outliers 和 Massive Outliers 的影响。
由于 Massive Outliers 通常立时散布在激活空间中,径直找到大概通过单次旋转机换减弱 outliers 的最优旋转矩阵� � 是具有挑战性的。
为了处置这一问题,作家接纳带有先验学问的规划搜索法式来磋商旋转矩阵,从而雷同梦想的旋转矩阵� �。
具体来说,的磋商包括以下设施:
1、识别 outliers 主要荟萃的特征维度 ,即:,其中, � � � � � � 示意� � 中第� � 行和第� � 列的元素。
2、基于搜索到的维度,构建旋转矩阵如下:
是用于交换激活值的第 1 列和第 d ( 1 ) 列的交换矩阵,示意一个正交入手化的旋转矩阵,其第一溜均匀散布。
这么作念的意见是通过变换后减弱第 1 列中的 outliers。
为了进一步增多立时性,保留减弱 outliers 后的第 1 列,并通过与立时正交矩阵� � ’相乘,立时旋转其他列。
3、设 N 为规划搜索的步数,则雷同的旋转矩阵,其中。每个� � � � 字据公式 ( 2 ) 和识别到的特征维度 d ( � � ) 构建。
通过这种构建样式,不错确保雷同的最优旋转矩阵大概灵验减弱具有较大幅度的 outliers,而不单是是使用立时遴荐的正交旋转矩阵。
然则,径直构建通盘这个词旋转矩阵极端耗时,况兼会导致深广的内存支出。
为了杀青快速矩阵乘法,参考 Training Transformer with 4ibts ,作家遴荐以分块的样式雷同旋转矩阵。
其中,示意第� � 个块的方阵,该矩阵按照上述三步构建。块的数目 K 通过 K=C � �n/2n 磋商得出。
通说念置换矩阵:尽管接纳了块对角旋转矩阵来提高时刻和存储遵守,但其专注于局部信息的特质带来了进一步减少 outliers 的潜在升天。
由于在每个小块内进行的旋转机换无法整合跨不同块的信息,一个块中可能有相对较大的 outliers,而另一个块中则有较小的 outliers,导致不同块之间存在较高的方差。
因此,作家提议诳骗通说念置换矩阵平衡不同 blocks 之间 outliers 的幅度。
具体来说,在每个小块中,将维度 d � � 中最大的 outlier 记为 O � �。
同期, Mb � � 示意第� � 个块中通盘 O � � 的平均值,其中� �=1,2,……,K ,各个块之间激活幅度的方差不错示意为:
作家引入了之字形置换矩阵P 。
具体来说,通过生成一个之字形序列,首先将激活值最高的通说念分拨给第一个块,接着,将激活值次高的通说念按递减法例分拨到后续的块,直到第 K 个块。
在到达终末一个块后,法例回转,从下一个激活值最高的通说念入手,按递加法例分拨。
这个走动模式趋奉通盘块,确保莫得单个块握续禁受最高或最低激活值的通说念。
通过使用之字形置换,DuQuant 杀青了不同块之间 outliers 的平衡散布,从而大概使用额外的旋转机换进一步平滑 outliers,如图 2 所示。
需要在意的是:
1、通说念置换其实长短常艰难的一步,也很浅薄快速(关于推理遵守的影响很小,可见后头施行部分),既不错幸免像 SpinQuant 那样复杂的历练经由,也比 QuaRot 的 Hadamard 旋转性能发达更好。
2、旋转矩阵和置换变换矩阵齐是正交矩阵,保证了� � � � 输出的不变性,作家还通过严谨的表面推导了讲解了两种变换灵验缩小了量化粗疏,具体讲解不错阅读 Paper 里面的 Appendix。
施行
在 4-bit setting 下达到了 SOTA 的后果,DuQuant 考证了 LLaMA、Vicuna、Mistral 系列模子,在 PPL、QA、MMLU 和 MT-Bench 等任务上齐彰着升迁了量化模子的性能。
此外作家还在 LongBench 评测了量化模子长文本生成的才气,DuQuant 相似大幅率先了 baselines。
△DuQuant 在 LLaMA3-8B 的低比特量化中权贵率先了基线法式
上头是 DuQuant 在 LLaMA3 模子的量化后果,更多的模子和 task 上的发达不错参见论文。
硬件测速也讲解了 DuQuant 在 pre-filing 阶段不错达到 2.08 倍的加速比,在 decoding 阶段灵验缩小了 3.50 倍内存支出。
同期如右图所示,DuQuant 比拟 INT4 推理带来额外的 10% 驾驭速率支出,微高于 QuaRot,但带来更多性能升迁。
此外,DuQuant 与使用 Hadamard 旋转矩阵的QuaRot主要有以下两点不同:
大香蕉1、DuQuant 构造的旋转矩阵诳骗了先验学问(具体的 outlier channel 索引),因此它不错比 QuaRot 更好地平滑激活空间,如下图展示了 DuQuant 单次旋转和 Hadamard 旋转对 LLaMA2-7B Attention Key_proj 输入的变换后果。
2、QuaRot 依赖于耗时的 GPTQ 算法来升迁性能,而作家引入的通说念置换矩阵不错匡助 DuQuant 在极短时刻内进一步平衡 outliers 的散布,两种正交变换不错同期平滑权重矩阵的空间,缩小权重矩阵的量化难度,从而取得更好后果。
小结一下,DuQuant 通过两种正交变换,诳骗 activation 激活值的先验学问达到了比 QuaRot 中 Hadamard 旋转更好的量化后果。
该职责赢得了审稿东说念主一致的高度评价,并最终被选为 Oral Presentation,中式率 0.4%。
更多细节迎接查阅原论文。
花样主页:
https://duquant.github.io/
论文:
https://arxiv.org/abs/2406.01721
代码:
https://github.com/Hsu1023/DuQuant
— 完 —
投稿请发邮件到:
ai@qbitai.com
标题注明【投稿】,告诉咱们:
你是谁,从哪来,投稿本体
附上论文 / 花样主页相接,以及干系样式哦
咱们会(尽量)实时恢复你
点这里� � 关怀我,铭记标星哦~
一键三连「共享」、「点赞」和「在看」
科技前沿进展日日再会 ~