Weight-Only Quantization(ウェイトオンリークオンタイゼーション)
Weight-Only Quantization(重みのみ量子化)とは、LLMの重みパラメータのみを低ビット精度(INT4/INT8)に量子化し、アクティベーション(中間計算結果)はFP16/BF16のまま保持する量子化手法である。GPTQ・AWQ・GGUFの大多数がこの方式を採用しており、メモリ削減と推論品質のバランスに優れる。
Weight-Only Quantization(W-only、重みのみ量子化)は、2026年現在のLLM量子化で最も広く採用されている手法カテゴリである。モデルの重みパラメータを低ビット整数(INT4/INT8)に変換する一方、推論時のアクティベーション計算はFP16/BF16精度で実行する。この方式により、モデルの保存サイズとメモリフットプリントを大幅に削減しつつ、出力品質の劣化を最小限に抑えることができる。
Weight-Only vs Weight-Activation 量子化の原理
LLMの推論は行列積 Y = X * W が基本演算である(X: アクティベーション、W: 重み)。量子化のアプローチは大きく2つに分かれる。
Weight-Only Quantization (W4A16 / W8A16)
重みWのみをINT4/INT8に量子化し、アクティベーションXはFP16のまま保持する。推論時に重みをデクォンタイズ(FP16に復元)してから行列積を計算する。
- メリット: メモリ帯域のボトルネック(memory-bound)を解消。重みのロード量が1/4-1/2に削減
- デメリット: デクォンタイズのオーバーヘッド。計算自体はFP16で実行するためcompute-boundな改善は限定的
- 代表手法: GPTQ、AWQ、GGUF Q系、BitsAndBytes NF4
Weight-Activation Quantization (W8A8 / W4A4)
重みとアクティベーションの両方を量子化する。INT8同士の整数行列積を実行できるため、計算量も大幅に削減される。
- メリット: 推論スループットが2-4倍向上(INT8 Tensor Coreの活用)
- デメリット: アクティベーションの外れ値(outlier)により精度劣化が大きい。特にLLMでは顕著
- 代表手法: SmoothQuant、QSERVE、Atom、QuaRot
なぜWeight-Onlyが主流なのか
LLMの推論は多くの場合 memory-bound(メモリ帯域がボトルネック)である。特にバッチサイズ1のインタラクティブ推論では、GPU演算ユニットの大部分がアイドル状態で、重みデータのロード待ちが支配的となる。Weight-Only Quantizationはこの重みのロード量を直接削減するため、memory-boundな推論で最大の効果を発揮する。
| 推論パターン | ボトルネック | Weight-Only効果 | W-A量子化効果 |
|---|---|---|---|
| バッチ1生成 | メモリ帯域 | 高(2-4x高速化) | 中(帯域+演算改善) |
| バッチ32以上 | 演算量 | 低(帯域は余裕) | 高(INT8演算が効く) |
| プリフィル(長文入力) | 演算量 | 低 | 高 |
| デコード(トークン生成) | メモリ帯域 | 高 | 中-高 |
バッチサイズが大きい大規模サービング環境ではW8A8(SmoothQuant)が有効だが、ローカル推論やインタラクティブなチャットアプリケーションではWeight-Onlyが最適解となる。
主要なWeight-Only手法の比較
| 手法 | ビット数 | グループサイズ | 校正 | 精度 | 速度 | 特徴 |
|---|---|---|---|---|---|---|
| RTN (Round-to-Nearest) | 4-8 | - | 不要 | 低 | 高 | 最も単純。各重みを最近整数に丸め |
| GPTQ | 2-8 | 32-128 | 必要 | 高 | 高 | Hessian情報で量子化誤差を最小化 |
| AWQ | 4 | 128 | 必要 | 最高 | 最高 | 活性化分布から重要チャネルを保護 |
| SpQR | 3-4 | 16 | 必要 | 高 | 中 | 外れ値を高精度で保持 |
| QuIP | 2-4 | - | 必要 | 最高(2bit) | 低 | 格子量子化による理論最適 |
| HQQ | 4 | 64 | 不要 | 高 | 高 | GPTQの高速代替(校正不要) |
グループ量子化(Group Quantization)
Weight-Only Quantizationの精度を高める鍵がグループ量子化である。重み行列をg個(通常32-128個)の要素からなるグループに分割し、各グループに独自のスケールファクターとゼロポイントを割り当てる。
- g=128(GPTQ/AWQのデフォルト): 各128要素に1つのFP16スケール。追加メモリはわずか0.125bit/weight
- g=32: より細かい粒度でスケーリング。精度向上するが追加メモリ0.5bit/weight
- g=channel-wise: チャネル全体で1つのスケール。追加メモリ最小だが精度劣化大
- 2026年のトレンド: g=128が標準。g=32は低ビット(Q2/Q3)での精度回復に使用
GPTQの量子化アルゴリズム
GPTQ(Generative Pre-trained Transformer Quantization)は、OBS(Optimal Brain Surgeon)に基づく二次近似手法である。
- 校正データ(128サンプル程度)でアクティベーションの統計を収集
- 各重み列に対してHessian行列(二次導関数)を計算
- 量子化誤差を他の未量子化重みに分散(lazy batch更新)
- 列順序を重要度の低い順に処理(Act-Order)
この手法により、単純なRTN量子化と比べてPerplexityの劣化を50-70%削減できる。70Bモデルの4ビットGPTQ量子化はA100 80GBで約4時間を要する。
AWQの活性化意識量子化
AWQ(Activation-aware Weight Quantization)は、アクティベーションの分布を分析して「重要な重みチャネル」を特定し、それらを保護する手法である。
- 全重みの1%未満が出力に支配的な影響を持つことを発見
- 重要チャネルをスケールアップしてから量子化し、推論時にスケールダウン
- GPTQより高速(校正データの処理が軽い)かつ同等以上の精度
- vLLMやTensorRT-LLMのINT4カーネルに最適化され、推論速度が最速
よくある質問(FAQ)
Q1: Weight-Only Quantizationで推論速度はどのくらい向上しますか? A: バッチ1のトークン生成では、FP16比で1.5-3倍の速度向上が得られる。これは主にメモリ帯域の節約による効果で、4ビット量子化で重みのロード量が1/4になるため、VRAM帯域がボトルネックの場合に最大効果を発揮する。RTX 4090(1TB/s帯域)では、70B Q4モデルで20-35 tok/sが典型的。
Q2: Weight-Only QuantizationはTransformerの全層に適用すべきですか? A: 一般的にはEmbedding層とLM Head(出力層)はFP16のまま保持し、Attention層とMLP層のみを量子化する。Embedding層は語彙全体の意味表現を担うため量子化の影響が大きく、LM Headは出力確率分布に直結するため精度を維持する必要がある。
Q3: 量子化モデルをさらにファインチューニングできますか? A: BitsAndBytes NF4で量子化したモデルにはQLoRAアダプタを追加してファインチューニングが可能。ただしGPTQ/AWQで量子化済みのモデルに対するファインチューニングは一般的ではない。ファインチューニング→量子化の順序が推奨される。
まとめ
- Weight-Only QuantizationはLLMの重みのみを低ビット化し、アクティベーションはFP16で維持する手法
- memory-boundなLLM推論(バッチ1生成)で1.5-3倍の速度向上を実現
- GPTQ・AWQ・GGUFが主要な実装で、4ビット量子化が2026年の標準
- バッチサイズが大きいサービング環境ではWeight-Activation(W8A8)も検討すべき