SmoothQuant+: Accurate and Efficient 4-bit Post-Training WeightQuantization for LLM

📄 arXiv: 2312.03788v1 📥 PDF

作者: Jiayi Pan, Chengcan Wang, Kaifu Zheng, Yangguang Li, Zhenyu Wang, Bin Feng

分类: cs.LG, cs.CL

发布日期: 2023-12-06


💡 一句话要点

SmoothQuant+:实现LLM无损精度的高效4比特后训练权重量化

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

关键词: 后训练量化 大型语言模型 权重量化 激活平滑 无损精度

📋 核心要点

  1. 现有4比特后训练量化方法在压缩LLM时会造成精度损失,限制了其在资源受限环境中的部署。
  2. SmoothQuant+通过通道平滑激活异常值,并调整权重以保持数学等价性,从而减少量化误差。
  3. 实验表明,SmoothQuant+在Code Llama-34B上实现了无损精度,并显著提升了推理吞吐量和降低了延迟。

📝 摘要(中文)

大型语言模型(LLM)在各种任务中表现出卓越的能力。然而,其庞大的模型规模以及随之而来的对计算和内存资源的需求也对模型部署提出了挑战。目前,4比特后训练量化(PTQ)在LLM中取得了一些成功,与FP16模型相比,内存占用减少了约75%,但存在一定的精度损失。本文提出了SmoothQuant+,一种精确高效的4比特纯权重PTQ方法,无需额外训练,首次实现了LLM的无损精度。基于权重量化损失会被激活异常值放大的事实,SmoothQuant+在量化前通过通道平滑激活异常值,同时调整相应的权重以保持数学等价性,然后对线性层执行分组4比特权重量化。我们将SmoothQuant+集成到vLLM框架中,这是一个专为LLM开发的高级高吞吐量推理引擎,并配备了高效的W4A16 CUDA内核,使vLLM可以无缝支持SmoothQuant+ 4比特权重量化。结果表明,使用SmoothQuant+,Code Llama-34B模型可以在A100 40GB GPU上进行量化和部署,实现无损精度,并且与部署在两个A100 40GB GPU上的FP16模型相比,吞吐量提高了1.9到4.0倍。此外,每个token的延迟仅为部署在两个A100 40GB GPU上的FP16模型的68%。据我们所知,这是LLM最先进的4比特权重量化方法。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)的4比特后训练权重量化(PTQ)过程中的精度损失问题。现有的4比特量化方法虽然能有效压缩模型,但通常会牺牲一定的模型性能,这限制了LLM在资源受限设备上的部署。激活值中的异常值会放大权重量化的误差,导致显著的精度下降。

核心思路:SmoothQuant+的核心思路是通过平滑激活值中的异常值来减少权重量化带来的误差。具体来说,该方法在量化之前,对每个通道的激活值进行平滑处理,降低异常值的幅度。为了保证模型的数学等价性,在平滑激活值的同时,会相应地调整权重。通过这种方式,可以有效地降低量化误差,从而实现更高的量化精度。

技术框架:SmoothQuant+的整体框架包括以下几个主要步骤:1) 激活值平滑:对每个通道的激活值进行平滑处理,降低异常值的幅度。2) 权重调整:根据激活值的平滑程度,相应地调整权重,以保证模型的数学等价性。3) 分组量化:对线性层的权重进行分组4比特量化。4) 集成到vLLM框架:将SmoothQuant+集成到vLLM框架中,并配备高效的W4A16 CUDA内核,以实现高效的推理。

关键创新:SmoothQuant+的关键创新在于其激活值平滑和权重调整的策略。与传统的量化方法不同,SmoothQuant+不是直接对原始的激活值和权重进行量化,而是先对激活值进行平滑处理,然后再进行量化。这种方法可以有效地降低量化误差,从而实现更高的量化精度。此外,SmoothQuant+还通过调整权重来保证模型的数学等价性,避免了因激活值平滑而导致的模型性能下降。

关键设计:SmoothQuant+的关键设计包括:1) 通道级别的激活值平滑:对每个通道的激活值进行平滑处理,以降低异常值的幅度。2) 数学等价的权重调整:根据激活值的平滑程度,相应地调整权重,以保证模型的数学等价性。3) 分组4比特量化:对线性层的权重进行分组4比特量化,以实现更高的压缩率。4) W4A16 CUDA内核:配备高效的W4A16 CUDA内核,以实现高效的推理。

📊 实验亮点

SmoothQuant+在Code Llama-34B模型上实现了无损精度,并且与部署在两个A100 40GB GPU上的FP16模型相比,吞吐量提高了1.9到4.0倍。此外,每个token的延迟仅为部署在两个A100 40GB GPU上的FP16模型的68%。这些结果表明SmoothQuant+是目前LLM最先进的4比特权重量化方法。

🎯 应用场景

SmoothQuant+在资源受限的边缘设备和移动设备上部署大型语言模型具有广阔的应用前景。它可以降低LLM的内存占用和计算需求,使得在这些设备上运行复杂的AI模型成为可能。该技术可以应用于智能助手、机器翻译、语音识别等领域,提升用户体验并扩展LLM的应用范围。

📄 摘要(原文)

Large language models (LLMs) have shown remarkable capabilities in various tasks. However their huge model size and the consequent demand for computational and memory resources also pose challenges to model deployment. Currently, 4-bit post-training quantization (PTQ) has achieved some success in LLMs, reducing the memory footprint by approximately 75% compared to FP16 models, albeit with some accuracy loss. In this paper, we propose SmoothQuant+, an accurate and efficient 4-bit weight-only PTQ that requires no additional training, which enables lossless in accuracy for LLMs for the first time. Based on the fact that the loss of weight quantization is amplified by the activation outliers, SmoothQuant+ smoothes the activation outliers by channel before quantization, while adjusting the corresponding weights for mathematical equivalence, and then performs group-wise 4-bit weight quantization for linear layers. We have integrated SmoothQuant+ into the vLLM framework, an advanced high-throughput inference engine specially developed for LLMs, and equipped it with an efficient W4A16 CUDA kernels, so that vLLM can seamlessly support SmoothQuant+ 4-bit weight quantization. Our results show that, with SmoothQuant+, the Code Llama-34B model can be quantized and deployed on a A100 40GB GPU, achieving lossless accuracy and a throughput increase of 1.9 to 4.0 times compared to the FP16 model deployed on two A100 40GB GPUs. Moreover, the latency per token is only 68% of the FP16 model deployed on two A100 40GB GPUs. This is the state-of-the-art 4-bit weight quantization for LLMs as we know.