Progressive Mixed-Precision Decoding for Efficient LLM Inference
作者: Hao Mark Chen, Fuwen Tan, Alexandros Kouris, Royson Lee, Hongxiang Fan, Stylianos I. Venieris
分类: cs.LG, cs.CL
发布日期: 2024-10-17 (更新: 2025-02-27)
💡 一句话要点
提出渐进式混合精度解码(PMPD),加速LLM推理并降低资源需求。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大语言模型 量化 混合精度 推理加速 资源受限设备
📋 核心要点
- 现有LLM量化方法采用统一精度,忽略了推理各阶段对精度需求的多样性,导致低精度下性能显著下降。
- 提出阶段感知的渐进式混合精度解码(PMPD),在预填充阶段保持高精度,解码阶段逐步降低精度,兼顾性能与效率。
- 实验表明,PMPD在Nvidia GPU上实现了高达12.2倍的加速,在LLM优化NPU上实现了高达8倍的吞吐量提升。
📝 摘要(中文)
大型语言模型(LLM)在各种任务中展现出巨大潜力,但由于其过高的计算和内存需求,在资源受限设备上的部署仍然具有挑战性。量化是一种有效的解决方案,通过降低精度来存储权重。然而,使用低精度(例如2/3位)虽然可以显著缓解LLM解码的内存瓶颈,但仍然会遭受严重的性能下降。本文认为,现有方法未能探索LLM推理不同阶段的计算模式、冗余和对近似的敏感性的多样性,而是采用统一的量化策略。因此,我们提出了一种新颖的阶段感知方法,该方法在LLM推理的不同阶段选择性地分配精度,从而在预填充期间实现强大的上下文提取,并在解码期间实现高效的内存带宽利用率。为了进一步解决解码阶段的内存瓶颈,我们引入了渐进式混合精度解码(PMPD),该技术能够随着生成序列的深入而逐步降低精度,并提供一系列精度切换调度器,以任务自适应或提示自适应的方式动态驱动精度降低决策。在各种语言任务上的广泛评估表明,当针对Nvidia GPU时,PMPD在矩阵向量乘法中实现了1.4-12.2倍于fp16模型的加速,而当针对LLM优化的NPU时,我们的方法提供了3.8-8.0倍于fp16模型的吞吐量增益,并且在保持输出质量的同时,比统一量化方法提高了高达1.54倍。
🔬 方法详解
问题定义:现有的大型语言模型(LLM)推理在资源受限的设备上部署面临挑战,主要原因是其巨大的计算和内存需求。虽然量化是一种常见的解决方案,但简单地采用统一的低精度量化(如2/3位)会导致显著的性能下降,无法充分利用LLM推理过程中不同阶段的特性。
核心思路:论文的核心思路是观察到LLM推理的不同阶段(预填充和解码)对精度的需求不同。预填充阶段需要更高的精度以提取上下文信息,而解码阶段更受内存带宽限制。因此,通过在不同阶段采用不同的精度,可以更好地平衡性能和效率。
技术框架:PMPD方法包含两个主要部分:阶段感知的精度分配和渐进式精度降低。阶段感知的精度分配根据LLM推理的阶段(预填充和解码)选择不同的精度。渐进式精度降低在解码阶段,随着生成序列的深入,逐步降低精度。此外,还引入了一系列精度切换调度器,以动态地控制精度降低的决策,可以是任务自适应或提示自适应的。
关键创新:PMPD的关键创新在于其非均匀量化策略,它根据LLM推理的不同阶段和生成序列的深度动态调整精度。这与传统的统一量化方法形成对比,后者在整个推理过程中使用相同的精度。PMPD能够更好地适应LLM推理的特性,从而在保持输出质量的同时提高效率。
关键设计:PMPD的关键设计包括:1) 阶段感知的精度选择策略,根据预填充和解码阶段的不同需求选择合适的精度;2) 渐进式精度降低策略,随着生成序列的深入逐步降低精度,以减少内存带宽需求;3) 精度切换调度器,动态控制精度降低的决策,可以是任务自适应或提示自适应的。这些调度器可以基于任务的特性或提示的内容来调整精度降低的速度和幅度。
🖼️ 关键图片
📊 实验亮点
PMPD在Nvidia GPU上实现了1.4-12.2倍于fp16模型的矩阵向量乘法加速,在LLM优化NPU上实现了3.8-8.0倍于fp16模型的吞吐量增益,并且在保持输出质量的同时,比统一量化方法提高了高达1.54倍的吞吐量。这些结果表明PMPD在提高LLM推理效率方面具有显著优势。
🎯 应用场景
该研究成果可应用于各种资源受限设备上的LLM部署,例如移动设备、边缘计算设备和嵌入式系统。通过提高LLM推理的效率,可以使这些设备能够运行更复杂的语言模型,从而改善用户体验并扩展LLM的应用范围。例如,可以用于移动设备上的智能助手、边缘服务器上的实时翻译和嵌入式系统中的自然语言控制。
📄 摘要(原文)
In spite of the great potential of large language models (LLMs) across various tasks, their deployment on resource-constrained devices remains challenging due to their excessive computational and memory demands. Quantization has emerged as an effective solution by storing weights in reduced precision. However, utilizing low precisions (i.e.~2/3-bit) to substantially alleviate the memory-boundedness of LLM decoding, still suffers from prohibitive performance drop. In this work, we argue that existing approaches fail to explore the diversity in computational patterns, redundancy, and sensitivity to approximations of the different phases of LLM inference, resorting to a uniform quantization policy throughout. Instead, we propose a novel phase-aware method that selectively allocates precision during different phases of LLM inference, achieving both strong context extraction during prefill and efficient memory bandwidth utilization during decoding. To further address the memory-boundedness of the decoding phase, we introduce Progressive Mixed-Precision Decoding (PMPD), a technique that enables the gradual lowering of precision deeper in the generated sequence, together with a spectrum of precision-switching schedulers that dynamically drive the precision-lowering decisions in either task-adaptive or prompt-adaptive manner. Extensive evaluation across diverse language tasks shows that when targeting Nvidia GPUs, PMPD achieves 1.4$-$12.2$\times$ speedup in matrix-vector multiplications over fp16 models, while when targeting an LLM-optimized NPU, our approach delivers a throughput gain of 3.8$-$8.0$\times$ over fp16 models and up to 1.54$\times$ over uniform quantization approaches while preserving the output quality.