[論文レビュー] SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models
SmoothQuant は、 activation quantization difficulty を重みに移すことにより、訓練不要の 8 ビット 重み・活性化量子化(W8A8)を大規模言語モデルに提供し、非常に大きな LLM において精度損失を最小限に抑えつつ、効率的な INT8 GEMM を実現します。
Large language models (LLMs) show excellent performance but are compute- and memory-intensive. Quantization can reduce memory and accelerate inference. However, existing methods cannot maintain accuracy and hardware efficiency at the same time. We propose SmoothQuant, a training-free, accuracy-preserving, and general-purpose post-training quantization (PTQ) solution to enable 8-bit weight, 8-bit activation (W8A8) quantization for LLMs. Based on the fact that weights are easy to quantize while activations are not, SmoothQuant smooths the activation outliers by offline migrating the quantization difficulty from activations to weights with a mathematically equivalent transformation. SmoothQuant enables an INT8 quantization of both weights and activations for all the matrix multiplications in LLMs, including OPT, BLOOM, GLM, MT-NLG, Llama-1/2, Falcon, Mistral, and Mixtral models. We demonstrate up to 1.56x speedup and 2x memory reduction for LLMs with negligible loss in accuracy. SmoothQuant enables serving 530B LLM within a single node. Our work offers a turn-key solution that reduces hardware costs and democratizes LLMs. Code is available at https://github.com/mit-han-lab/smoothquant.
研究の動機と目的
- 大規模言語モデルにおける量子化のボトルネック、特に activations のアウトライヤを特定すること。
- 訓練不要の PTQ 手法を開発し、精度損失なしで W8A8 量子化を達成すること。
- Transformer ブロックのエンドツーエンドの量子化フローをハードウェアに配慮して提供すること。
- 複数のオープン LLM およびスケール設定で適用性を示すこと。
- 提供を容易にし、提供コストを削減し大規模モデルのデプロイを可能にするためのターンキーソリューションを提供すること。)
- method:[
提案手法
- X を平滑化因子 s で割ることにより、チャネルごとの活性化平滑化変換を導入し、同時に W を拡張して Y = X W を hat{X} hat{W} と等価にスケーリングする。
- 活性化と重みの量子化難易度をバランスさせる移行強度 alpha を定義し、s_j = max(|X_j|)^alpha / max(|W_j|)^(1-alpha) とする。
- 推論時には静的なチャネルごとの平滑化を可能にするため、小さな較正セットを用いて s と量子化ステップをオフラインで較正する。
- 計算負荷の高い演算子(線形層と BMM)を INT8 に量子化し、軽量な演算を FP16 のままにして Transformer ブロックに SmoothQuant を適用する。
- CUTLASS INT8 GEMM カーネルを用いた PyTorch/HuggingFace および FasterTransformer への統合により、エンドツーエンドの INT8 推論を実現する。
- 三段階の効率スペクトル(O1–O3)を提供し、精度と速度をトレードオフする量子化設定を提供する。
実験結果
リサーチクエスチョン
- RQ1訓練なしで W8A8 量子化を再訓練なしで極めて大規模な LLM に対して lossless に達成できるのか?
- RQ2ハードウェアに非対応なチャネルごとの activations 量子化を用いずに、活性化のアウトライヤをどのように緩和できるのか?
- RQ3ハードウェアに適した形で、 activations から weights へ量子化難易度を移す数学的に等価な変換は存在するのか?
- RQ4SmoothQuant は異なる LLM ファミリやスケールで、精度・速度・メモリの観点でどのように性能を発揮するのか?
- RQ5SmoothQuant を実運用フレームワークへ組み込む際の実務的な展開上の利点(レイテンシーとメモリ)は何か?
主な発見
- SmoothQuant は FP16 の精度を、OPT-175B などの大規模モデルに対して W8A8 量子化で保つことができる。
- 3 つの進化モード(O1–O3)は、ハードウェアに優しいものから極めて積極的な量子化まで、測定可能な速度向上とメモリ削減を提供する。
- PyTorch および FasterTransformer 上で、SmoothQuant は FP16 と比較して推論速度を最大で約 1.56 倍、メモリを約 2 倍削減し、精度損失はほとんどない。
- 非常に大規模なモデル(MT-NLG 530B)を半数の GPU で単一ノード内に W8A8 に量子化でき、待機遅延も同様。
- SmoothQuant は LLaMA 系列モデル(WikiText-2 の perplexity)に対して lossless な W8A8 量子化を実現し、OPT、BLOOM、GLM 及び命令調整版でも頑健な性能を示す。
- 活性化アウトライヤを計算カーネルから分離し、注意機構と前向きフィードフォワード層のすべての GEMM を INT8 にしつつ、一部の演算を FP16 のまま維持する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。