aliases:
- "AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration"
created_date: 2024-11-19
modified_date: 2024-11-27
2024-11-19
尽管我们只做了权重量化,但要找到显著的权重通道,我们应该根据激活分布而不是权重分布。与较大激活幅度 (activation magnitudes) 相对应的权重通道更加突出,因为它们处理了更重要的特征。
核心观察:为了避免硬件效率低下的混合精度实现,我们分析了权重量化产生的误差,并推导出放大显著通道(salient channels)可以减少其相对量化误差。根据这一直觉,我们设计了一种按通道缩放的方法,以自动搜索最优缩放(scaling),使全部权重下的量化误差最小。
这个和
smoothquant
的观察结果好像;不过 AWQ 只是量化了权重
和 GPTQ 的继承关系
最接近的工作是 GPTQ(Frantar 等人年),它使用二阶信息进行误差补偿。然而,在重建过程中可能会过度拟合校准集,扭曲在分布外域上学习到的特征 (图 8),这在 LLM 是 generalist 模型时是一个问题。
本文提出了一种硬件友好的低比特权重量化方法—激活感知权重量化 (AWQ),用于大型语言模型 (LLMs)。我们的方法基于以下观察:LLMs 的性能与 weights are not equally important 有关。其中只有一小部分 (0.1%-1%) 的 salient 权重; 跳过这些显著权重的量化将显著减少量化损失 (表 1)。为了找到这些显著的权重通道,我们的见解是应该参考 activation 分布而不是 weight 分布,尽管我们正在进行 weight- only 量化:
对应于较大激活幅度的权重通道更为显著,因为它们处理更重要的特征。为了避免硬件效率低下的混合精度实现,我们分析了权重量化的误差,并推导出scaling up the salient channel scan reduce the irrelative quantizationerror(方程 2)。根据这一直觉,我们设计了一种逐通道缩放方法,以自动搜索在全权重量化下最小化量化误差的最优缩放。
也是在显著的权重通道上做文章,不过是通过激活值的异常值对应寻找的显著权重通道
确定权重重要性的一种常用方法是查看其大小或 L2 范数。但我们发现,跳过具有较大范数的权重通道 (即,基于 W 的 FP16%) 并不会显著提高量化性能,导致与随机选择类似的边际改进。有趣的是,基于 activation magnitude 选择权重可以显著提高性能,尽管只保留了 0.1%-1% 的通道在 FP16 中。我们假设,具有较大幅度的输入特征通常更为重要。保持相应的权重在 FP16 中可以保留这些特征,从而有助于更好的模型性能
局限性: 尽管将 0.1% 的权重保留为 FP16 可以提高量化性能,而不会显著增加模型大小 (以总比特数衡量) ,但这种混合精度数据类型将使系统实现变得困难。我们需要找到一种方法来保护重要权重,而不实际将它们保留为 FP16
多模态语言模型的量化。大型多模态模型 (LMMs) 或视觉语言模型 (VLMs) 是增加了视觉输入的 LLMs。这些模型能够根据图像/视频输入进行文本生成。由于我们的方法不存在对校准集的过拟合问题,因此可以直接应用于 VLMs。
主要使用的方式是 per-channel 的缩放,同时是根据激活的异常值决定异常的权重值,因此是激活感知。此外就是使用缩放的方式保护显著权重,也就是给异常值的权重部分先乘上一个 s,然后再集体除以 scaling ,从而起到保护显著值的作用。
此处的