文章基本信息

  • 文章名称:AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
  • 发表会议/年份:MLSys 2024
  • 作者:Ji Lin, Jiaming Tang, Haotian Tang, Shang Yang
  • 单位:MIT, SJTU, NVIDIA, Tsinghua MIT-IBM, UMass

摘要

大型语言模型(LLMs)显著提升了许多AI应用的性能,而将其部署到设备端可以降低云计算成本并保护用户隐私。然而,模型规模过大和硬件资源有限使得部署面临挑战。本文提出了Activation-aware Weight Quantization (AWQ),一种面向硬件的低比特量化方法,用于压缩LLM的权重。AWQ发现仅需保护约1%的重要权重即可显著降低量化误差,并通过参考激活分布(activation distribution)而非权重分布来确定重要权重。为避免混合精度量化带来的硬件效率低下,AWQ通过数学推导保护重要权重通道并利用激活统计数据进行缩放。该方法无需反向传播或重建,因此能够很好地泛化到不同领域和模态,而不会过拟合校准数据集。AWQ在多种任务和模型上优于现有方法,首次实现了指令调优模型和多模态LLM的优异量化性能。同时,本文实现了高效灵活的推理框架TinyChat,将4-bit LLM部署到多种边缘平台,在桌面和移动GPU上实现了超过3倍的加速。

之前工作存在的问题

  1. 低比特量化在模型推理中可以显著减少内存占用,但当前的量化感知训练(QAT) 成本高昂,而训练后量化(PTQ) 在低比特场景下准确性大幅下降。
  2. GPTQ方法虽然使用二阶信息进行误差补偿,但可能在重建过程中过拟合校准集,从而失去对分布外领域的泛化能力。
  3. 混合精度量化(如FP16和低比特结合)虽然可以提升性能,但在硬件实现中效率较低。

主要贡献/创新

  1. 提出了基于激活感知(activation-aware) 的低比特权重量化方法AWQ,能够显著降低量化误差,同时避免过拟合。
  2. 开发了一个硬件友好的权重缩放方法,保护重要权重通道,避免硬件效率低下的混合精度实现。
  3. 实现了支持4-bit推理的高效框架TinyChat,通过核融合(kernel fusion)和平台感知的权重打包(weight packing),在多种边缘设备上实现了显著的推理加速。
  4. AWQ首次在多模态模型(如OpenFlamingo和LLaVA)上验证了其量化效果,并将Llama-2-70B部署到移动GPU上,具有广泛适应性和低资源需求。

相关工作

模型量化方法

模型量化主要有两种方法,量化感知训练(QAT)和训练后量化(PTQ)。QAT需要反向传播更新权重,而PTQ通常无需训练。由于QAT难以扩展到大型模型,因此对大型语言模型(LLMs)的量化通常采用PTQ方法。量化能够减少模型尺寸并加速推理。

LLMs的量化

针对LLMs的量化研究有两种设置:

  1. W8A8量化,将激活值和权重均量化为INT8格式(Dettmers et al., 2022; Xiao et al., 2022; Yao et al., 2022; Wei et al., 2022a; 2023)。

  2. 低位权重量化(Low-bit weight-only quantization),例如W4A16,仅对权重进行低位整数的量化(Frantar et al., 2022; Dettmers & Zettlemoyer, 2022; Sheng et al., 2023; Park et al., 2022)。

本文的研究聚焦于第二种设置,因为它不仅降低了硬件门槛(需要更小的内存容量),还加快了token生成速度(缓解了内存受限的工作负载)。除了基础的“舍入到最近值”方法(Round-to-Nearest,RTN),GPTQ(Frantar et al., 2022)是与本研究最接近的方法。然而,GPTQ的重建过程会导致校准集过拟合的问题,可能无法保持LLMs在其他模态和领域中的泛化能力。此外,它对某些模型(例如LLaMA-7B(Touvron et al., 2023a)和OPT-66B(Zhang et al., 2022))需要重新排序的技巧才能正常工作。

除了针对通用硬件的量化方法外,SpAtten(Wang et al., 2020)设计了一种渐进式的方法,通过逐步增加softmax计算中使用的位数来优化性能。

低位量化LLMs的系统支持

低位量化的大型语言模型(LLMs)因其能够降低推理成本而成为一种热门设置。目前已有一些系统支持以实现实际的加速效果。例如:

  • GPTQ(Frantar et al., 2022)为OPT模型提供了INT3内核,并通过Triton(Tillet et al., 2019)的支持,扩展了对LLaMA模型INT4重排序量化的内核支持。
  • FlexGen(Sheng et al., 2023)、llama.cppexllama 执行组间INT4量化,以减少I/O成本和卸载数据的开销。
  • FasterTransformer 实现了基于FP16×INT4的GEMM(通用矩阵乘法)用于权重量化(每个张量的量化),但不支持组间量化。
  • LUT-GEMM(Park et al., 2022)借助查找表,在GPU的CUDA核心上执行基于比特的计算。
  • 本文的并行工作MLC-LLM(MLC-Team, 2023),通过强大的TVM后端(Chen et al., 2018; Feng et al., 2023),在多种边缘CPU和GPU平台上取得了优异的结果。

AWQ: ACTIVATION-AWARE WEIGHT QUANTIZATION

Figure2

图2:我们观察到,我们可以根据激活分布(中)找到 LLM 中 1% 的显着权重。将显着权重保留在 FP16 中可以显着提高量化性能(PPL 从 43.2(左)到 13.0(中)),但混合精度格式并不具有硬件效率。我们遵循激活感知原则并提出 AWQ(右)。 AWQ 执行每通道缩放以保护显着权重并减少量化误差。我们测量了 INT3-g128 量化下 OPT-6.7B 的困惑度。

量化将浮点数映射为低位整数,是一种有效的方法,可以减小LLMs(大型语言模型)的模型尺寸并降低推理成本(Dettmers et al., 2022; Frantar et al., 2022; Yao et al., 2022; Xiao et al., 2022)。在本节中,我们首先提出了一种仅对权重进行量化的方法,通过保护更多“重要”的权重,在无需训练或回归(without training/regression) 的情况下提高准确性。随后,我们开发了一种数据驱动方法,用于搜索减少量化误差的最优缩放比例(详见图2)。

1. 通过保留 1% 的显著权重改进 LLM 量化

我们观察到,大型语言模型(LLMs)的权重并不是同等重要的:其中有一小部分显著权重(salient weights)对 LLM 的性能更为关键。跳过这些显著权重的量化过程可以在不进行任何训练或回归(如图 2(b) 所示)的情况下,减少量化损失带来的性能下降。

为验证这一观点,我们在表 1 中测试了跳过部分权重通道的量化 LLM 的性能。我们测量了 INT3 量化模型的性能,同时将部分权重通道保留为 FP16(16位浮点数)。一种广泛使用的方法是通过权重的范数(如 L2L_2-范数)来确定权重的重要性(Han et al., 2015; Frankle & Carbin, 2018)。然而,我们发现基于权重 L2L_2-范数(即以权重 WW 为基础的 FP16%)跳过权重通道并不能显著提升量化模型的性能,其效果与随机选择的提升幅度类似。

有趣的是,基于激活幅值(activation magnitude) 选择权重可以显著提升性能,即便只保留 0.1%-1% 的通道为 FP16。我们推测,输入特征的幅值较大时通常更重要,保留这些对应权重为 FP16 可以保留这些特征,从而有助于模型性能的提升。

限制

尽管仅保留 0.1% 的权重为 FP16 可以在量化性能上实现改进且对模型大小(以总比特数衡量)没有显著影响,但这种混合精度数据类型会增加系统实现的难度。我们需要找到一种方法,在不实际将权重保留为 FP16 的情况下保护这些重要权重。

2. 通过激活感知缩放保护显著权重

我们提出了一种替代方法,通过逐通道缩放(per-channel scaling) 来减少显著权重的量化误差。该方法避免了硬件低效问题。

分析量化误差

我们首先从权重量化误差开始分析。设一组或一个区块的权重为 ww,线性操作可表示为 y=wxy = wx,而量化后的对应操作为 y=Q(w)xy = Q(w)x。具体来说,量化函数定义如下:

Q(w)=ΔRound(wΔ),Δ=max(w)2N1Q(w) = \Delta \cdot \text{Round}\left(\frac{w}{\Delta}\right), \quad \Delta = \frac{\max(|w|)}{2^{N-1}}

其中,NN 表示量化的比特数,Δ\Delta 是根据绝对最大值确定的量化缩放因子。

现在考虑 ww 中的一个权重元素 ww,如果将其乘以 s>1s > 1,并将输入 xx 按比例缩小为 xs\frac{x}{s},则我们有:

Q(ws)xs=ΔRound(wsΔ)xsQ(ws) \cdot \frac{x}{s} = \Delta' \cdot \text{Round}\left(\frac{ws}{\Delta'}\right) \cdot \frac{x}{s}

其中,Δ\Delta' 是应用 ss 后的新量化缩放因子。通过实验,我们发现以下结论:

  1. 量化舍入误差(RoundErr)的期望值不变:因为舍入函数将浮点数映射到整数,其误差在 [0,0.5][0, 0.5] 之间均匀分布,平均误差为 0.250.25(即 RoundErr0.25\text{RoundErr} \sim 0.25)。
  2. 单独放大权重 ww 通常不会改变整个组的最大值,因此 ΔΔ\Delta' \approx \Delta
  3. Δ\DeltaΔ\Delta' 在 FP16 中表示,不会引入额外量化误差。

因此,量化误差可以表达为:

Err(Q(w)x)=ΔRoundErr(wΔ)x\text{Err}(Q(w)x) = \Delta \cdot \text{RoundErr}\left(\frac{w}{\Delta}\right) \cdot x

Err(Q(ws)xs)=ΔRoundErr(wsΔ)xs\text{Err}\left(Q(ws)\frac{x}{s}\right) = \Delta' \cdot \text{RoundErr}\left(\frac{ws}{\Delta'}\right) \cdot \frac{x}{s}

新误差与原始误差的比值为:

ΔΔ1s\frac{\Delta'}{\Delta} \cdot \frac{1}{s}

由于 ΔΔ\Delta' \approx \Deltas>1s > 1,显著权重 ww 的相对误差会减小。

实验验证

为了验证这一思想,我们对 OPT-6.7B 模型的 1% 显著通道进行放大(乘以 s>1s > 1),并测量每组的 Δ\Delta 变化(见表 2)。结果表明,放大显著通道效果显著:当 s=1s = 1(即简单的 RTN 方法)时,困惑度(perplexity, PPL)为 23.54,而 s=2s = 2 时,PPL 降至 11.92。

随着 ss 增大,变化的 Δ\Delta 比例一般会变大,但对于 s<2s < 2,该比例仍然较小(小于 5%)。同时,显著通道的相对误差随着 ss 的增加而继续减小。然而,当 ss 非常大时,Δ\Delta 的增加会放大非显著通道的相对误差(比例为 ΔΔ\frac{\Delta'}{\Delta}),并且当 s=4s = 4 时,这种比例放大影响了 21.2% 的非显著通道,可能损害模型的整体准确性。

搜索最优比例

为了同时考虑显著权重和非显著权重,我们选择自动搜索每个输入通道的最优缩放因子,以最小化量化后在某一层的输出差异。正式地,我们需要优化以下目标函数:

s=argminsL(s)s^* = \arg\min_s \mathcal{L}(s)

L(s)=Q(Wdiag(s))(diag(s)1X)WX\mathcal{L}(s) = \| Q(W \cdot \text{diag}(s))(\text{diag}(s)^{-1} \cdot X) - WX \|

其中,QQ 表示权重量化函数(例如 INT3/INT4 量化,组大小为 128),WW 是原始的 FP16 权重,XX 是从小型校准集(calibration set)中缓存的输入特征。校准集从预训练数据集中随机抽取,避免针对特定任务过拟合。ss 是每个输入通道的缩放因子;对于 s1s^{-1}XX,它通常可以与前一个算子融合(参考 Wei et al., 2022b; Xiao et al., 2022)。

由于量化函数不可微分,无法通过常规反向传播优化。尽管一些技术依赖于近似梯度(Bengio et al., 2013; Esser et al., 2019),但我们发现这些方法在收敛性上仍然不够稳定。

为使优化过程更加稳定,我们通过分析影响缩放因子选择的因素,定义了一个搜索空间。如上一节所述,权重通道的显著性实际上由激活幅值(activation scale)决定(因此称为“激活感知”)。因此,我们使用一个非常简单的搜索空间:

s=sXα,α=argminαL(sXα)s = s_X^\alpha, \quad \alpha^* = \arg\min_\alpha \mathcal{L}(s_X^\alpha)

其中,sXs_X 是每通道激活幅值的平均值,我们通过单个超参数 α\alpha 来平衡显著通道与非显著通道的保护。通过快速网格搜索,可以在区间 [0,1][0, 1] 中找到最佳 α\alpha(0 表示不进行缩放,1 表示搜索空间中的最强缩放)。我们还通过应用权重裁剪(weight clipping)来最小化量化的均方误差(MSE)。

在表 5 中,我们对 OPT 模型在 INT3-g128 量化下进行了消融研究。AWQ(激活感知量化)始终优于最近舍入量化(RTN),并且在硬件友好的情况下实现了与混合精度(1% FP16)相当的性能。

优势

我们的方法不依赖任何回归(Frantar et al., 2022)或反向传播,这是许多量化感知训练方法所需的。此外,该方法对校准集的依赖极少,因为我们仅测量每个通道的平均幅值,从而避免了过拟合(如图 8 所示)。因此,我们的方法在量化过程中需要更少的数据,并且能够保留 LLM 的知识,使其不受校准集分布的限制。有关更多细节,请参见第 5.3 节。

TINYCHAT: MAPPING AWQ ONTO EDGE PLATFORMS

AWQ 可以显著减小 LLM 的模型大小。然而,将 W4A16(4-bit 权重,16-bit 激活)的量化所带来的理论内存节省转化为实际的加速效果并非易事。另一种替代方法,例如 SmoothQuant(Xiao et al., 2022),在存储和计算中保持相同的数据精度(W8A8 量化方法)。这允许反量化过程无缝集成到计算内核的结尾阶段。

另一方面,W4A16 量化为内存访问和计算引入了不同的数据类型。因此,其反量化过程必须被集成到主计算循环中以实现最佳性能,这增加了实现的难度。

为解决这一问题,我们提出了 TinyChat:一个灵活的系统,用于 AWQ 模型的推理。它采用 PyTorch 前端,并使用特定设备指令集(例如 CUDA/PTX、Neon、AVX)的后端来增强性能。

1. 为什么 AWQ 能加速本地设备上的 LLM

Figure3

图3:Llama-2-7B 模型在 NVIDIA RTX 4090 上的瓶颈分析。

  • 左图: 在本地设备上的 LLM 应用中,生成阶段比上下文阶段慢得多。
  • 中图: 生成阶段是内存受限的,且具有较低的算术强度(arithmetic intensity)。W4A16 量化可以将算术强度提高 4 倍。
  • 右图: 权重访问量比激活访问量高出若干个数量级。因此,权重量化对于本地设备上的 LLM 更为有效。

为了理解量化 LLM 在边缘设备上的加速潜力,我们首先对 LLaMA-7B(Touvron et al., 2023a)模型在 RTX 4090 GPU 上的延迟组成进行了分析。我们采用推理批量大小为 1,以适应边缘设备的使用场景,并在 NVIDIA FasterTransformer 中使用 FP16 实现该模型。

上下文阶段 vs. 生成阶段的延迟

如图 3(a) 所示,生成 20 个 token 需要 310 毫秒,而对包含 200 个 token 的提示(prompt)进行摘要仅需 10 毫秒。因此,生成阶段的延迟显著高于上下文阶段,尤其是在针对交互式本地设备应用时。

生成阶段是内存受限的

为了加速生成阶段,我们在图 3(b) 中进行了 Roofline 分析。RTX 4090 GPU 的峰值计算吞吐量为 165 TFLOPS,内存带宽为 1TB/s。因此,任何算术强度(即计算与内存访问的比率)小于 165 的工作负载都受到内存限制。

值得注意的是,当以 FP16 执行时,本地设备 LLM 的生成阶段算术强度约为 1。这表明工作负载的内存受限特性。由于给定模型的 FLOPs 是固定的,唯一提高峰值性能的方法是减少内存访问量。AWQ 通过将权重内存减少至原来的四分之一,显著降低了内存流量。

权重访问占主导的内存流量

我们进一步对权重和激活的内存访问进行了分解分析,如图 3© 所示。显然,权重访问占据了本地设备 LLM 的大部分内存流量。将模型权重量化为 4-bit 整数,可以将算术强度从 1 FLOPs/Byte 提升到约 4 FLOPs/Byte,从而在图 3(b) 中达到 4TFLOPS 的峰值性能。

由于权重量化减少了权重的位宽(因此提高了理论性能上限),对于本地设备上的 LLM 应用,遵循这种量化设置是合理的。AWQ 专注于权重量化,非常适合此类应用场景。

2. 使用 TinyChat 部署 AWQ

我们证明了 4-bit 权重量化可以带来 4 倍的理论峰值性能提升。为了实现这种加速效果,我们进一步设计了 TinyChat 系统。在 GPU 上,我们专注于实现关键组件,包括注意力机制、层归一化和线性投影内核。灵活的前端允许轻松定制并快速支持新模型。TinyChat 使用 4-bit AWQ,与 Huggingface 的 FP16 实现相比,在不同家族的 LLM 上获得了超过 3 倍的加速。在 CPU 上,我们将整个计算图转为 C++ 实现,以最小化开销。

即时权重反量化(On-the-fly Weight Dequantization)

对于量化层,由于硬件通常不提供 INT4 和 FP16 之间的乘法指令,我们需要将整数即时反量化为 FP16。

SIMD 感知权重打包(SIMD-aware Weight Packing)

即时反量化减少了对中间 DRAM 的访问,但仍然比较昂贵。例如,反量化单个 4-bit 权重需要执行 1 次移位(shift)、1 次按位与操作(bitwise AND)和 1 次 FMA(乘加运算)缩放操作,而反量化的权重只进行 1 次 FMA 计算。
这一过程在具有 SIMD 架构(单指令多数据)的 CPU 上尤其昂贵,因为这些架构偏向于矢量化指令。为此,我们建议根据设备的 SIMD 单元位宽量身定制权重打包方案。

图 4 展示了我们针对 ARM CPU(具有 128-bit SIMD 寄存器)的策略,这种策略提供了高达 1.2 倍的加速。在这种方法中,每个寄存器包含 32 个 4-bit 权重,按照以下顺序存储:w0,w16,w1,w17,...,w15,w31w_0, w_{16}, w_1, w_{17}, ..., w_{15}, w_{31}。该方法只需要 3 条 SIMD 指令即可解包所有 32 个权重,而传统打包方式中,每个权重需要 3 条标量指令来解包(如 w0,w1,...,w31w_0, w_1, ..., w_{31})。

一般而言,对于 2n2^n-bit 的 SIMD 寄存器,相邻权重的索引偏移量为 1/8×2n1/8 \times 2^n,因为每个寄存器可以容纳 1/8×2n1/8 \times 2^n 个 8-bit 整数。在 GPU 上,我们发现将每 8 个权重打包为 w0,2,4,6,1,3,5,7w_{0,2,4,6,1,3,5,7} 更为高效(参考 Kim et al., 2022)。

内核融合(Kernel Fusion)

我们还广泛应用内核融合来优化本地设备上的 LLM 推理。对于层归一化(layer normalization),我们将所有算子(如乘法、除法和平方根)融合到单个内核中。对于注意力层(attention layers),我们将 QKV 投影融合到一个内核中,并在其中即时计算位置嵌入(positional embedding)。此外,我们在注意力内核中预分配 KV 缓存并进行缓存更新。

内核融合对于前向传播实现效率较低的模型(如 Falcon 和 StarCoder)尤为有用。例如,在 4090 GPU 上,每个 FP16 内核的计算时间约为 0.01 毫秒,这与 GPU 内核的启动开销相当。因此,通过内核融合减少内核调用数量可以直接实现加速效果。

实验结果

实验设置

量化

本研究重点关注仅针对权重的分组量化(weight-only grouped quantization)。如之前的研究(Dettmers & Zettlemoyer, 2022;Frantar et al., 2022)所示,分组量化对提高性能和模型尺寸的权衡(performance/model size trade-off)总是有帮助的。在本文中,除非特别说明,我们在实验中使用了组大小为128(group size = 128)。我们主要研究了 INT4/INT3 量化方法,因为这些方法可以很好地保留大语言模型(LLMs,Large Language Models)的性能(Dettmers & Zettlemoyer, 2022)。对于 AWQ 方法,我们从 Pile 数据集(Gao et al., 2020)中选取了一个小型校准集,以避免过拟合到某个特定的下游领域。此外,我们使用了网格大小为20(grid size = 20)来搜索公式5中最优的 α\alpha

模型

我们在 LLaMA(Touvron et al., 2023a)和 OPT(Zhang et al., 2022)系列模型上对方法进行了基准测试。此外,尽管还有其他开源的大语言模型(如 BLOOM(Scao et al., 2022)),但由于其质量通常较差,我们未将其纳入研究中。我们还进一步在指令调优模型 Vicuna(Chiang et al., 2023)以及视觉语言模型 OpenFlamingo-9B(Awadalla et al., 2023)和 LLaVA-13B(Liu et al., 2023a)上进行了测试,以验证方法的通用性(generability)。

评价

按照之前的文献(Dettmers et al., 2022;Xiao et al., 2022;Frantar et al., 2022;Dettmers & Zettlemoyer, 2022;Yao et al., 2022),我们主要在语言建模任务中评估量化模型的表现(例如 WikiText-2 数据集上的困惑度评估(perplexity evaluation),Merity et al., 2016),因为困惑度能够稳定地反映大语言模型(LLMs)的性能(Dettmers & Zettlemoyer, 2022)。

基线

我们的主要基线是基础的最近舍入量化(vanilla round-to-nearest quantization, RTN)。当使用小的组大小(如128)时,RTN 实际上表现非常强(Frantar et al., 2022;Dettmers & Zettlemoyer, 2022)。此外,我们还与最先进的量化方法 GPTQ(Frantar et al., 2022)进行了比较。对于 GPTQ,我们还比较了一种改进版本,该版本采用了“重排序(reorder)”技巧(称为 GPTQ-Reorder 或 GPTQ-R)。其他方法,如 ZeroQuant(Yao et al., 2022)、AdaRound(Nagel et al., 2020)和 BRECQ(Li et al., 2021),依赖于反向传播来更新量化权重,这些方法在扩展到大模型规模时可能会遇到困难;同时,它们的性能也不如 GPTQ(Frantar et al., 2022),因此未纳入研究范围。

评价结果

  1. LLaMA 模型:AWQ 在 LLaMA 和 LLaMA-2 模型上的评估显示,在量化前后及不同模型规模(7B-70B)下,其性能始终优于其他方法(如 RTN 和 GPTQ)。
  2. Mistral/Mixtral 模型:AWQ 在 Mistral 和 Mixtral 模型中也表现优异,证明了其在不同模型架构中的通用性和有效性。
  3. 指令调优模型:AWQ 方法在指令调优模型 Vicuna 上表现优异,使用 GPT-4 得分评估,证明了其在量化配置下对模型性能的增强效果以及在指令调优任务中的通用性。
  4. 多模态语言模型:AWQ 在多模态模型(如 OpenFlamingo-9B 和 VILA)上实现了高效的低比特量化,展示了其在零样本和小样本任务中的优越性,并提供了显著的模型压缩能力,同时性能几乎无损。
  5. 视觉推理结果:在 LLaVA-13B 模型的视觉推理任务中,AWQ 在量化配置下比 RTN 产生了更合理的回答,例如能够正确理解图像内容。
  6. 编程与数学任务结果:AWQ 在编程(MBPP 数据集)和数学(GSM8K 数据集)任务中表现出色,在量化配置(INT4-g128)下实现了与 FP16 模型相当的性能,同时优于其他量化方法。

校准集的数据效率和泛化能力

  1. 数据效率:AWQ 方法对校准集需求较小,仅需 GPTQ 所需校准集规模的1/10,即可实现更优的量化性能。

  2. 泛化能力和鲁棒性:AWQ 在不同校准集分布下表现出优异的鲁棒性,其困惑度的增加幅度显著小于 GPTQ,证明了其方法对校准集分布变化的低敏感性和更强的泛化能力。

加速性能评估

  • 加速结果:TinyChat 对主流 LLM(如 LLaMA-2 和 Falcon)在不同硬件平台上提供了显著加速效果,尤其在资源受限的设备上仍表现优异。
  • 与其他系统比较:相比现有推理系统(如 llama.cpp 和 exllama),TinyChat 展现了更广的适配性和更高的加速性能,同时支持多种模型并显著快于 AutoGPTQ。

总结

在本研究中,我们提出了一种名为激活感知权重量化(Activation-aware Weight Quantization, AWQ)的方法。这是一种简单但有效的低比特权重压缩技术,专用于大语言模型(LLMs)。基于权重在 LLM 中的重要性并不均等的观察,AWQ 对每个通道进行缩放(per-channel scaling),以减少显著权重的量化损失。

AWQ 不会对校准集过拟合,同时保留了 LLM 在各种领域和模态上的通用能力。它在语言建模任务上优于现有方法,并适用于指令调优模型(instruction-tuned LMs)和多模态模型(multi-modal LMs)。

我们的 TinyChat 系统进一步将 AWQ 实现的理论内存节省转化为实测的 3.2-3.3 倍加速效果(相较于 Huggingface 的 FP16 实现),支持桌面和移动 GPU。这使得边缘设备上的 LLM 部署成为可能,从而推动了 LLM 的普及化。

  1. 方法亮点:AWQ 提出了一种通道级缩放的量化方法,减少显著权重的量化损失,同时避免了对校准集的过拟合。
  2. 适用性:AWQ 适用于多种任务和模型类型,包括语言建模、指令调优模型和多模态模型。
  3. 加速性能:通过 TinyChat 系统,AWQ 在桌面和移动 GPU 上实现了 3.2-3.3 倍的加速,显著提升了低资源设备上 LLM 部署的可行性。

本站由 @anonymity 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。