Agile-Quant: Activation-Guided Quantization for Faster Inference of LLMs on the Edge

📄 arXiv: 2312.05693v2 📥 PDF

作者: Xuan Shen, Peiyan Dong, Lei Lu, Zhenglun Kong, Zhengang Li, Ming Lin, Chao Wu, Yanzhi Wang

分类: cs.LG, cs.AI, cs.CL

发布日期: 2023-12-09 (更新: 2025-04-21)

备注: Accepted by AAAI 2024

🔗 代码/项目: GITHUB


💡 一句话要点

Agile-Quant:面向边缘设备LLM加速,提出激活引导量化框架。

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

关键词: 大语言模型 边缘计算 模型量化 激活量化 硬件加速 token剪枝 低比特推理

📋 核心要点

  1. 现有LLM量化方法主要集中于权重,忽略了激活量化,且在边缘设备上效率仍然受限。
  2. Agile-Quant提出激活引导的量化框架,结合激活量化、token剪枝和硬件加速,优化LLM在边缘设备的推理速度。
  3. 实验表明,Agile-Quant在保持任务性能的同时,实现了权重和激活的联合量化,并在边缘设备上获得了显著的加速。

📝 摘要(中文)

大型语言模型(LLM)在复杂的语言建模任务中表现出色。然而,它们对计算和内存的需求对在边缘设备上的广泛使用构成了障碍。因此,量化被引入以提高LLM的设备端效率。最近的研究表明,8比特或更低的权重量化是可行的,对端到端任务性能的影响最小,而激活仍然没有被量化。另一方面,主流的商用边缘设备仍然难以有效地执行这些低于8比特的量化网络。在本文中,我们提出了Agile-Quant,一个用于流行的大型语言模型(LLM)的激活引导量化框架,并在多个边缘设备上实现了一个端到端加速器,以实现更快的推理。考虑到硬件分析和激活分析,我们首先引入了一个基本的激活量化策略,以平衡任务性能和实际推理速度的权衡。然后,我们利用激活感知的token剪枝技术来减少异常值和对注意力的不利影响。最终,我们利用基于SIMD的4比特乘法器和我们高效的TRIP矩阵乘法来实现边缘设备上LLM的加速器。我们将我们的框架应用于不同规模的LLM,包括LLaMA、OPT和BLOOM,激活使用4比特或8比特,权重使用4比特量化。实验表明,Agile-Quant实现了模型权重和激活的同时量化,同时保持了与现有仅权重量化方法相当的任务性能。此外,在8比特和4比特场景中,Agile-Quant在多个边缘设备上实现了高达2.55倍的设备端加速,标志着该领域的开创性进展。

🔬 方法详解

问题定义:现有的大型语言模型(LLM)虽然性能强大,但计算和内存需求高昂,难以在资源受限的边缘设备上高效部署。现有的量化方法主要集中于权重,而忽略了激活的量化,导致整体加速效果不佳。此外,即使是权重量化后的模型,在主流边缘设备上的推理速度仍然有待提升。

核心思路:Agile-Quant的核心思路是同时量化模型的权重和激活,并结合硬件加速,以实现LLM在边缘设备上的高效推理。通过激活引导的量化策略,平衡任务性能和推理速度之间的权衡。利用激活感知的token剪枝技术,减少异常值,进一步提升量化效果。

技术框架:Agile-Quant框架主要包含以下几个阶段:1) 硬件profiling和激活分析:分析边缘设备的硬件特性和激活值的分布情况,为量化策略提供指导。2) 激活量化:引入基本的激活量化策略,平衡任务性能和推理速度。3) 激活感知的token剪枝:利用token剪枝技术减少激活中的异常值,提高量化精度。4) 硬件加速:利用SIMD指令和优化的矩阵乘法(TRIP)实现加速器,提升推理速度。

关键创新:Agile-Quant的关键创新在于:1) 提出了激活引导的量化框架,实现了权重和激活的联合量化。2) 结合激活感知的token剪枝技术,进一步提升了量化效果。3) 设计了基于SIMD指令和TRIP矩阵乘法的硬件加速器,充分利用了边缘设备的计算资源。

关键设计:Agile-Quant的关键设计包括:1) 激活量化策略的选择,需要在精度和速度之间进行权衡,作者可能探索了不同的量化方案,例如均匀量化、非均匀量化等。2) Token剪枝策略的设计,需要考虑如何选择需要剪枝的token,以及如何避免对模型性能产生过大的影响。3) TRIP矩阵乘法的具体实现,需要针对边缘设备的硬件特性进行优化,例如数据排布、内存访问等。

📊 实验亮点

Agile-Quant在LLaMA、OPT和BLOOM等不同规模的LLM上进行了实验,权重量化为4比特,激活量化为4比特或8比特。实验结果表明,Agile-Quant在保持任务性能与现有仅权重量化方法相当的同时,在多个边缘设备上实现了高达2.55倍的加速,显著提升了LLM在边缘设备的推理效率。

🎯 应用场景

Agile-Quant可应用于各种需要边缘端LLM推理的场景,如智能家居、自动驾驶、移动设备上的自然语言处理应用等。该研究降低了LLM部署的硬件门槛,使得更强大的AI能力可以在资源受限的设备上运行,具有广阔的应用前景。

📄 摘要(原文)

Large Language Models (LLMs) stand out for their impressive performance in intricate language modeling tasks. However, their demanding computational and memory needs pose obstacles for broad use on edge devices. Quantization is then introduced to boost LLMs' on-device efficiency. Recent works show that 8-bit or lower weight quantization is feasible with minimal impact on end-to-end task performance, while the activation is still not quantized. On the other hand, mainstream commodity edge devices still struggle to execute these sub-8-bit quantized networks effectively. In this paper, we propose Agile-Quant, an activation-guided quantization framework for popular Large Language Models (LLMs), and implement an end-to-end accelerator on multiple edge devices for faster inference. Considering the hardware profiling and activation analysis, we first introduce a basic activation quantization strategy to balance the trade-off of task performance and real inference speed. Then we leverage the activation-aware token pruning technique to reduce the outliers and the adverse impact on attentivity. Ultimately, we utilize the SIMD-based 4-bit multiplier and our efficient TRIP matrix multiplication to implement the accelerator for LLMs on the edge. We apply our framework on different scales of LLMs including LLaMA, OPT, and BLOOM with 4-bit or 8-bit for the activation and 4-bit for the weight quantization. Experiments show that Agile-Quant achieves simultaneous quantization of model weights and activations while maintaining task performance comparable to existing weight-only quantization methods. Moreover, in the 8- and 4-bit scenario, Agile-Quant achieves an on-device speedup of up to 2.55x compared to its FP16 counterparts across multiple edge devices, marking a pioneering advancement in this domain. Code: https://github.com/shawnricecake/agile-quant