📦

量子化(Quantization)

モデルの重みを低精度に変換して軽量化

量子化(Quantization)はニューラルネットワークの重みと活性化値を低いビット数で表現してモデルを軽量化する技術です。一般的なLLMはFP16(16ビット浮動小数点)で保存され、70Bモデルが約140GBメモリを占めます。これをINT4(4ビット)に量子化すると約35GBに減少し、一般GPUでも実行可能になります。Post-Training Quantization(PTQ)は学習なしで変換する方式、Quantization-Aware Training(QAT)は学習中に量子化を考慮します。GPTQ、AWQ、GGUF等の多様な量子化フォーマットがあり、llama.cppのGGUFがローカル実行で最も広く使われています。

キーコンセプト

1

元モデルの重み分布を分析(外れ値、範囲等)

2

量子化範囲を決定 — 重み値を低ビットにマッピングする区間を設定

3

重みを指定ビット数に変換(FP16 → INT4: 各値を0〜15範囲にスケーリング)

4

スケールファクターとゼロポイントを別途保存(逆量子化に使用)

5

推論時: 量子化された重み×スケールファクターで近似値を復元 → 計算

6

精度検証: 量子化前後の性能比較(perplexity、ベンチマーク等)

メリット

  • モデルサイズ1/2〜1/8に減少
  • 推論速度向上(メモリ帯域幅ボトルネック解決)
  • 一般コンシューマGPUで大型モデル実行可能
  • コスト削減(サービングインフラ)

デメリット

  • 精度損失(特に4ビット以下)
  • 外れ値(outlier)の処理が困難
  • 量子化フォーマット別の互換性問題
  • 一部タスクで性能低下が深刻化

ユースケース

llama.cpp + GGUF(CPU/Apple SiliconでLLM実行) GPTQ(GPU量子化) AWQ(Activation-aware Quantization) Ollama / LM Studio ローカルLLM Edge AI / モバイルデバイスデプロイ