研發背景
SmoothQuant是由
麻省理工學院和
英偉達的研究人員聯合提出的一項量化算法,其核心論文發表於2022年。該算法旨在解決大型語言模型量化過程中,由於激活值中存在異常值而導致的激活量化困難這一核心挑戰。SmoothQuant是一種通用的訓練後量化方案,無需對模型進行重新訓練或微調即可保持模型精度。SmoothQuant的核心目標是在保持模型精度的同時,實現8位權重與8位激活的量化,從而降低模型的存儲和計算成本,提升推理效率。
技術原理
SmoothQuant的核心思想是通過數學上等效的變換,將量化難度從激活值遷移到相對容易量化的權重上。SmoothQuant引入平滑因子s對激活值進行按通道平滑處理,以抑制異常值的影響,同時為了保持數學等價性,對權重進行反向調整。
SmoothQuant通過超參數α控制量化難度在激活和權重之間的分配比例,例如對於OPT和BLOOM模型,α=0.5是一個平衡的選擇。平滑因子s_j的計算公式為s_j = (max(|X_j|)^α) / (max(|W_j|)^(1-α)),其中j表示通道,X_j為激活值,W_j為權重。
經過上述平滑和權重調整後,SmoothQuant實現對權重和激活均進行8比特INT8量化,即W8A8量化。
技術原理與特性
SmoothQuant是一種高效、精確的訓練後量化方法,其方法在於通過數學等價變換將量化難度從激活值轉移到權重上,從而實現對大型語言模型的8比特權重與8比特激活量化。該方法在保持模型精度的同時,提升了推理效率並降低了記憶體需求。
SmoothQuant能夠對超過100B參數的大型語言模型進行W8A8量化,保持與原始FP16模型相近的精度。其O1和O2量化級別可保持浮點精度。
作為一種無需額外訓練的後訓練量化方法,SmoothQuant量化後的模型能夠利用INT8或FP8計算單元,實驗表明可實現1.56倍的推理加速並將模型記憶體占用減半。
SmoothQuant通過引入超參數α(遷移強度)來平衡激活與權重的量化難度,以適應不同模型結構的量化需求。該方法具有通用性,可套用於
Transformer架構中計算密集型運算元的量化。
基於其壓縮和精度保持特性,SmoothQuant適用於資源受限的邊緣設備上的大模型部署。通過降低模型的存儲和計算成本,為模型部署提供了解決方案。
套用與效果
SmoothQuant能夠對所有LLM的各種層中權重和激活量化到INT8,包括OPT-175B、BLOOM-176B和
GLM-130B。
實測可實現最高1.56倍的推理加速,並將GPU記憶體占用降低至約一半,例如在NVIDIA A100 GPU上對OPT-30B模型當序列長度為256時獲得了1.51倍的速度提升。
該技術已被集成到多種主流推理框架和平台中以提升部署效率,例如NVIDIA TensorRT-LLM、
PyTorch、FasterTransformer和百度智慧型雲千帆大模型平台等。
基於SmoothQuant的核心思想,業界還衍生出多種變體或組合量化方法,例如專注於僅權重量化的SmoothQuant+以及結合了SmoothQuant平滑處理與GPTQ權重量化的SmoothQuant-GPTQ等。
團隊與影響
SmoothQuant由
麻省理工學院和
英偉達的研究人員聯合提出,主要提出者為MIT EECS的博士生肖光烜,本科畢業於
清華大學,導師為MIT副教授Song Han,研究方向為高效深度學習,曾提出深度壓縮技術。相關論文《SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models》於2022年在arXiv發布。
SmoothQuant已被集成到NVIDIA TensorRT-LLM、
HuggingFace、Intel Neural Compressor、FasterTransformer及
PyTorch等平台中,被視為解決大模型激活值量化難題的有效方案之一,推動了大型語言模型在資源受限環境下的部署;實驗顯示可實現高達1.56倍的推理加速,並將記憶體占用減半,同時保持模型精度。