AI・機械学習
上級

LLM量子化(エルエルエムリョウシカ)

LLM量子化とは、大規模言語モデルの重みパラメータを32ビット浮動小数点(FP32)から4ビット・8ビット整数などの低ビット表現に変換し、モデルサイズの削減と推論速度の向上を実現する圧縮技術である。Llama 3.1 405Bモデルの場合、FP16で約810GBのVRAMが必要だが、4ビット量子化により約200GBまで削減できる。

0 回閲覧
0 いいね

大規模言語モデル(LLM)の量子化は、モデルの重みやアクティベーションを低ビット精度に変換することで、推論に必要なメモリ量と計算コストを大幅に削減する技術である。2026年現在、GPTQ・AWQ・GGUF・BitsAndBytesなど複数の量子化手法が実用化され、RTX 4090(24GB VRAM)1枚で70Bパラメータクラスのモデルを動作させることが可能になっている。

量子化の基本原理

量子化は、高精度な浮動小数点数を低ビットの整数や浮動小数点数にマッピングする処理である。FP32(32ビット)の重みを INT8(8ビット)に変換すると、モデルサイズは理論上1/4に圧縮される。INT4(4ビット)では1/8まで圧縮可能だが、精度劣化のリスクが高まるため、グループ単位でスケールファクターを保持する Group Quantization が標準的に採用されている。

  • FP32 → FP16: メモリ50%削減、精度劣化はほぼゼロ。NVIDIA A100/H100のTensor Coreで高速演算可能
  • FP16 → INT8: さらに50%削減(FP32比75%削減)。NVIDIA TensorRT-LLMで最適化済み
  • FP16 → INT4: 75%削減(FP32比87.5%削減)。GPTQ/AWQの主力ターゲット
  • FP16 → NF4: QLoRAで採用された4ビット正規浮動小数点形式。情報理論的に最適な量子化分布
  • FP16 → INT2/INT3: 研究段階。BitNetシリーズで1.58ビット(三値: -1, 0, 1)まで到達

主要な量子化手法の比較

手法ビット数校正データ速度精度保持主な用途
GPTQ2-8bit必要(128サンプル程度)高速(GPU最適化)良好(Perplexity +0.5以内)サーバー推論
AWQ4bit必要(少量)最高速(INT4カーネル)最良(顕著チャネル保護)本番デプロイ
GGUF2-8bit不要(RTN方式も可)CPU/GPU両対応手法依存ローカル推論
BitsAndBytes4/8bit不要中速良好(NF4)ファインチューニング
SmoothQuant8bit必要高速優秀(W8A8)INT8サーバー
QuIP#2-4bit必要研究段階2bitで最良極限圧縮研究

Post-Training Quantization(PTQ)vs Quantization-Aware Training(QAT)

量子化には大きく2つのアプローチがある。PTQ(訓練後量子化)は既にトレーニング済みのモデルに対して量子化を適用する手法で、追加の学習が不要なため手軽に実行できる。GPTQやAWQがこの分類に属する。一方、QAT(量子化意識トレーニング)は、トレーニング中に量子化ノイズをシミュレートすることで、量子化後の精度劣化を最小化する。Googleの Gemma 2やMetaの Llama 3シリーズの一部ではQATが適用されている。

  • PTQの利点: 実装が容易、校正データのみで完了(数分〜数時間)、既存モデルに即適用可能
  • QATの利点: 低ビット(2-3bit)でもPTQより高い精度を維持、モデル提供元が事前に適用可能
  • 2026年のトレンド: PTQが主流だが、Llama 4やGemma 3ではQAT版が公式に提供され始めている

Weight-Only vs Weight-Activation 量子化

Weight-Only Quantization は重みのみを量子化し、アクティベーション(中間計算結果)はFP16のまま保持する。GPTQ・AWQ・GGUFの多くがこの方式を採用している。一方、SmoothQuantやLLM.int8()はアクティベーションも量子化するWeight-Activation方式で、推論速度の向上が大きいが、精度劣化のリスクも高い。

  • W4A16(重み4bit・活性化FP16): GPTQ/AWQの標準。メモリ削減が主目的
  • W8A8(重み8bit・活性化INT8): SmoothQuant。スループット2倍の高速化
  • W4A4(重み4bit・活性化4bit): 研究段階。QuaRot/Atom等で検証中

実用的な量子化パイプライン

2026年現在の典型的な量子化ワークフローは以下の通りである。

  1. ベースモデル選択: Llama 3.1 70B / Qwen 2.5 72B / Mistral Large 2 123B など
  2. 量子化手法決定: ローカル推論→GGUF、サーバー推論→AWQ/GPTQ、ファインチューニング→BitsAndBytes
  3. 校正データ準備: WikiText-2やC4データセットから128〜512サンプル抽出(GPTQ/AWQ用)
  4. 量子化実行: AutoGPTQ / AutoAWQ / llama.cpp の convert スクリプト
  5. 品質評価: Perplexity測定(WikiText-2)、MMLU/HellaSwagベンチマーク
  6. デプロイ: vLLM(AWQ/GPTQ対応)、llama.cpp(GGUF)、TGI(BitsAndBytes)

ハードウェア別の推奨量子化設定

GPUVRAM推奨モデルサイズ量子化ビット推定スループット
RTX 4060 Ti16GB7-13BQ4_K_M (GGUF)30-50 tok/s
RTX 4070 Ti Super16GB13-30BQ4_K_M (GGUF)25-40 tok/s
RTX 409024GB30-70BQ4_K_M / AWQ 4bit20-35 tok/s
RTX 509032GB70-120BQ4_K_M / AWQ 4bit30-50 tok/s
A100 80GB80GB70B FP16 / 120B Q8FP16 or INT850-100 tok/s
H100 80GB80GB70B FP16 / 405B Q4FP8/INT8100-200 tok/s

量子化による精度への影響

量子化ビット数を下げるほどメモリ効率は向上するが、モデルの出力品質は劣化する。以下はLlama 3.1 70Bモデルでの実測値(WikiText-2 Perplexity、低いほど良い)である。

量子化方式PerplexityFP16比劣化モデルサイズ
FP16(ベースライン)3.12-140GB
GPTQ 8bit3.14+0.0270GB
AWQ 4bit3.25+0.1338GB
GPTQ 4bit (128g)3.28+0.1638GB
GGUF Q4_K_M3.30+0.1840GB
GGUF Q3_K_M3.58+0.4631GB
GGUF Q2_K4.85+1.7325GB

よくある質問(FAQ)

Q1: 量子化するとモデルの性能はどのくらい低下しますか? A: 4ビット量子化(Q4_K_MやAWQ 4bit)であれば、ベンチマークスコアの低下は通常2-5%以内に収まる。8ビット量子化ではほぼ劣化なし(1%未満)。ただし2ビット以下では顕著な劣化が発生し、特にコード生成や数学的推論タスクで影響が大きい。

Q2: GPTQとAWQはどちらを選ぶべきですか? A: 推論速度を最優先するならAWQが推奨される。AWQはActivation-aware Weight Quantizationの略で、重要度の高いチャネルを保護するため、同じ4ビットでもGPTQより高い精度を維持する傾向がある。vLLMやTGIとの統合もスムーズ。

Q3: CPUで量子化モデルを実行できますか? A: GGUF形式であればllama.cppを使ってCPUのみで実行可能。Apple Silicon Mac(M1/M2/M3/M4)のUnified Memoryを活用すれば、M4 Pro 48GBで70Bモデル(Q4_K_M)を10-15 tok/sで動作させられる。Intel/AMDのAVX-512対応CPUでも動作するが、速度はGPU比で大幅に低い。

Q4: 量子化はファインチューニング後に行うべきですか? A: 一般的にはファインチューニング後にPTQ(訓練後量子化)を適用する。ただし、QLoRAを使えば4ビット量子化されたモデル上で直接ファインチューニングが可能で、フルFP16ファインチューニングの95%以上の性能を維持しつつ、必要VRAM量を75%削減できる。

まとめ

  • LLM量子化はメモリ削減と高速化の必須技術で、4ビット量子化が2026年の標準
  • GPTQ/AWQはGPUサーバー向け、GGUFはローカル推論向け、BitsAndBytesはファインチューニング向け
  • RTX 4090(24GB)で70Bクラスの4bit量子化モデルが実用的に動作
  • 量子化による精度劣化は4bitで2-5%以内、用途に応じてビット数とトレードオフを選択する