🗒️AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
00 分钟
2024-1-11
2024-1-18
type
status
date
slug
summary
tags
category
icon
password
😀
本文提出激活值感知权重量化(AWQ),一种用于 LLM 低位权重量化的硬件友好的方法。该方法基于“权重并不同样重要”的观察:只需要保护 1% 的重要权重就可以大大减少量化误差。

1 简介

LLM 低位量化可以节省显存,但是量化感知训练成本较高,训练后量化在低位设置下又会出现较大精度损失。最近的工作 GPTQ 使用二阶信息来进行误差补偿,但可能会过拟合校准集从而扭曲分布外域上的学习特征。
本文观察到权重对 LLM 表现的重要程度不同,只有一小部分(0.1% - 1%)的权重是显著重要的。为了找到这些重要权重通道,我们的目光应该集中在激活值分布上而不是权重分布。尽管是在做权重量化,但是本文认为激活值较大的对应的权重通道是更加重要的因为他们处理更多重要特征。
为了避免硬件效率低下的混合精度实现,本文设计了一种每通道缩放方法来自动搜索最佳缩放尺度来最小化与全量化的量化误差。

2 背景

论文背景: 大型语言模型(LLMs)在各种任务上表现出色,但巨大的模型大小增加了硬件的负担(内存大小)并降低了令牌生成的速度(内存带宽)。
过去方案: 过去的低比特权重量化方法存在问题,如量化感知训练(QAT)的高训练成本和后训练量化(PTQ)在低比特设置下的大幅精度降低。最接近的工作是GPTQ,但它在重构过程中可能过拟合校准集,导致在分布不同的领域中学到的特征失真。
论文的Motivation: 鉴于过去方法的问题,本文提出了一种基于激活感知的LLM权重量化方法(AWQ)。通过观察激活分布来选择重要的权重,并进行硬件友好的低比特量化。AWQ不依赖于反向传播或重构,能够保持LLM在不同领域和模态上的泛化能力,并在各种语言建模和特定领域基准测试中取得了优异的量化性能。

3 方法

作者提出了一种通过使用通道级缩放来减少显著权重的量化误差的方法。该方法不会受到硬件效率问题的影响。他们分析了量化误差,并发现放大显著通道可以有效提高性能。他们还考虑了保护显著通道时非显著通道的误差。他们寻找一个最优的缩放因子,以使量化后的输出差异最小化。该方法不依赖于回归或反向传播,并且在量化过程中需要更少的数据。它在与混合精度相当的性能的同时,更加友好于硬件。

4 结果:

a. 详细的实验设置:
  • AWQ系统在RTX 4090上相比Huggingface FP16实现,使三个LLMs系列(Llama-2、MPT和Falcon)加速2.7-3.9倍。
  • 在只有8GB内存的笔记本RTX 4070 GPU上,AWQ系统可以以33个标记/秒的速度运行Llama-2-13B模型,而FP16实现无法适应7B模型。
  • AWQ系统在NVIDIA Jetson Orin(32GB)上运行Llama-2模型时,实现了每秒33个标记的交互处理速率。
  • AWQ系统提供了最佳的两全之策:最先进的推理速度和出色的可扩展性。
b. 详细的实验结果:
  • AWQ方法相比GPTQ方法需要更小的校准集,并且在数据效率方面表现更好。
  • AWQ方法对校准集分布不太敏感,表现出了其鲁棒性。

 
如何寻找最优的缩放因子:
  • 首先,我们提出了一种通过通道缩放来减少显著权重量化误差的替代方法。通过将权重元素与大于1的缩放因子相乘,并将输入特征按比例缩小,可以减小量化误差。
  • 我们通过实验证明,对显著通道进行缩放是非常有效的。在实验中,我们将1%的显著通道与大于1的缩放因子相乘,并测量每个组中∆的变化。结果显示,对显著通道进行缩放可以显著改善模型的性能。
  • 然而,当缩放因子过大时,会增加非显著通道的相对误差,从而损害模型的整体准确性。因此,在保护显著通道的同时,我们还需要考虑非显著通道的误差。
  • 为了同时考虑显著和非显著权重,我们选择自动搜索每个输入通道的最优缩放因子,以最小化经过量化后输出与原始输出之间的差异。
  • 为了稳定该过程,我们定义了一个搜索空间,通过分析影响缩放因子选择的因素来确定最优缩放因子。我们使用一个简单的搜索空间,其中缩放因子与激活的幅度相关,并使用一个超参数来平衡显著和非显著通道的保护程度。
  • 最后,我们还通过最小化均方误差来应用权重剪裁,以进一步减小量化误差。