Open2
AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration (Jun 2023)

paper: AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
概要
- Edgeデバイスで高速に動作するLLMの量子化手法として提案された。
- 重要な少数のアクティベーションチャネルの精度に着目した量子化手法。calibration setと呼ばれる少量のデータセットを用いてパラメータを調整する。
量子化手法の分類
本提案手法はモデルの重みのみ量子化する。
- 重みの精度: INT4
- アクティベーションの精度: FP16
上記の場合、W4A16
と表記する。
関連手法
- Quantization-Awared Training(QAT): 量子化された重みで少数ステップfine-tuningを行う。過学習による性能劣化が課題。
- GPTQ: 執筆時点でのSOTA。量子化誤差の補正に二次の項を用いる。
- Activation-Aware Quantization (AWQ): 提案手法。追加で調整するパラメータ数が少数なので過学習しにくいと考えられる。
ベースとなる知見
- 均質に量子化するのでなく、0.1%~1%の重要なチャネル(salient channels)の精度をFP16で計算することで性能を落とさずに量子化できる
- 重要なチャネルの決め方: 重み or アクティベーション。重みで決めるやり方だと対して効果がなかったのでアクティベーションをベースに決めるアプローチをとった
- 課題: FP16とINT4が混在するので実装が複雑になる→全てINT4でやるには?
提案手法: AWQ(Activation-Aware Quantization)
- 提案手法のアイデア: 1%の重要なチャネルのダイナミックレンジをスケールする。
- スケールするパラメータは勾配法を用いずに、grid searchを使って調整する。
評価
- 性能評価: GPTQと比べてPPL、下流タスクで一貫して優位性が確認できた
- 速度評価: FP16精度と比べてx3の推論を高速化

考察: 愚直にgrid searchを行った場合の探索空間のサイズ
提案手法ではスケールサイズをアクティベーションの平均値で代替し、冪乗のパラメータ
このような推定値を用いずに、愚直にgrid searchをやる場合の探索空間のサイズを計算してみる。
Qwen2.5-7bの例
- レイヤ数: 28
- hidden_size: 3,584
- 1%のチャネルをスケールする
このとき、1層分のパラメータ数は
- QKV(3d) + LN(1d) + FF(5d) + LN(1d) = 10d
全層でのパラメータの総数は、
であり、grid数を10とした時の探索空間は
論文のように