BCQ: Block Clustered Quantization for 4-bit (W4A4) LLM Inference

📄 arXiv: 2502.05376v1 📥 PDF

作者: Reena Elangovan, Charbel Sakr, Anand Raghunathan, Brucek Khailany

分类: cs.LG

发布日期: 2025-02-07


💡 一句话要点

提出块聚类量化(BCQ)方法,实现LLM的W4A4低精度推理且精度损失小于1%。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 后训练量化 大型语言模型 低比特量化 块聚类 码本设计

📋 核心要点

  1. 现有后训练量化方法难以在保证精度的前提下,将LLM的权重和激活都量化到8bit以下。
  2. 论文提出块聚类量化(BCQ)方法,通过对张量分块并聚类,为每个簇设计最优码本,降低量化误差。
  3. 实验结果表明,使用BCQ方法将LLM量化到W4A4格式,推理精度损失小于1%,显著优于现有技术。

📝 摘要(中文)

后训练量化(PTQ)是一种有前景的方法,可以在不增加额外训练成本的情况下,降低大型语言模型(LLM)的存储和计算需求。最近的PTQ研究主要集中在将权重量化到8位以下,同时保持激活值为8位或更高。在不依赖量化感知训练的情况下,对权重和激活值进行精确的亚8位量化仍然是一个重大挑战。我们提出了一种新的量化方法,称为块聚类量化(BCQ),其中每个操作数张量被分解成块(一个块是一组连续的标量),块根据它们的统计数据进行聚类,并为每个集群设计一个专用的最佳量化码本。作为这种方法的一个具体实施,我们提出了一种称为局部最优BCQ (LO-BCQ)的PTQ算法,该算法在块聚类和码本设计步骤之间迭代,以贪婪地最小化量化均方误差。当权重和激活标量被编码为W4A4格式(使用0.5位的开销来存储缩放因子和码本选择器)时,我们通过在几个LLM和下游任务中展示<1%的推理精度损失,从而推进了当前最先进的技术。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)的低比特量化问题,尤其是在后训练量化(PTQ)场景下,如何将权重和激活都量化到4比特(W4A4)且保持可接受的精度损失。现有的PTQ方法通常只量化权重到较低比特,而保持激活为8比特或更高,或者需要量化感知训练,这限制了其应用范围和效率。

核心思路:论文的核心思路是将张量分解为块,并基于块的统计特性进行聚类。每个簇共享一个优化的量化码本。通过这种方式,可以更精细地控制量化过程,并为不同统计特性的数据选择最合适的量化方案,从而降低整体的量化误差。

技术框架:论文提出的块聚类量化(BCQ)方法包含以下主要步骤:1. 张量分块:将权重和激活张量分解为小的连续块。2. 块聚类:基于块的统计信息(如均值、方差等)将块聚类成不同的簇。3. 码本设计:为每个簇设计一个优化的量化码本,该码本旨在最小化该簇的量化误差。4. 量化与推理:使用设计的码本对相应的块进行量化,并在推理时使用量化后的模型。论文还提出了Locally-Optimal BCQ (LO-BCQ)算法,通过迭代块聚类和码本设计来贪婪地最小化量化均方误差。

关键创新:BCQ的关键创新在于其块聚类和码本设计的结合。与传统的均匀量化或简单的非均匀量化相比,BCQ能够根据数据的局部统计特性自适应地调整量化方案。这种自适应性使得BCQ能够在低比特量化下保持更高的精度。

关键设计:LO-BCQ算法的关键设计在于迭代优化过程。算法交替进行块聚类和码本设计,每次迭代都旨在降低整体的量化误差。此外,论文还考虑了存储缩放因子和码本选择器所需的额外比特开销(0.5 bits),并在设计码本时进行了相应的调整。具体实现中,可以使用K-means等聚类算法进行块聚类,并使用最小均方误差(MMSE)准则设计码本。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,BCQ方法在多个LLM和下游任务上实现了小于1%的推理精度损失,显著优于现有的W4A4量化方法。该方法在保持较高精度的同时,显著降低了LLM的存储和计算需求,为低资源设备上部署大型模型提供了可行的解决方案。

🎯 应用场景

该研究成果可广泛应用于资源受限的设备上部署大型语言模型,例如移动设备、嵌入式系统和边缘计算设备。通过降低LLM的存储和计算需求,BCQ方法使得这些设备能够运行更复杂的AI模型,从而提升用户体验并扩展AI的应用范围。未来,该方法可以进一步优化,以支持更低的比特量化,并应用于更多类型的模型。

📄 摘要(原文)

Post-training quantization (PTQ) is a promising approach to reducing the storage and computational requirements of large language models (LLMs) without additional training cost. Recent PTQ studies have primarily focused on quantizing only weights to sub-8-bits while maintaining activations at 8-bits or higher. Accurate sub-8-bit quantization for both weights and activations without relying on quantization-aware training remains a significant challenge. We propose a novel quantization method called block clustered quantization (BCQ) wherein each operand tensor is decomposed into blocks (a block is a group of contiguous scalars), blocks are clustered based on their statistics, and a dedicated optimal quantization codebook is designed for each cluster. As a specific embodiment of this approach, we propose a PTQ algorithm called Locally-Optimal BCQ (LO-BCQ) that iterates between the steps of block clustering and codebook design to greedily minimize the quantization mean squared error. When weight and activation scalars are encoded to W4A4 format (with 0.5-bits of overhead for storing scaling factors and codebook selectors), we advance the current state-of-the-art by demonstrating <1% loss in inference accuracy across several LLMs and downstream tasks.