# 量子化
## 定義
量子化(Quantization)とは、モデルの重みや活性化値を、よく用いられる32ビット浮動小数点数(FP32)からより幅の小さい数値形式(16ビットのFP16/BF16、8ビットのFP8/INT8、4ビットのFP4/INT4など)に変換し、必要メモリサイズ・転送データ量・演算量を削減する技法である。低精度演算に特化したハードウェア(NVIDIA GPUのTensor Core等)を活用すれば演算速度自体の高速化にもつながる。一方で、学習済みモデルを単純に量子化すると情報損失により精度が劣化する可能性が高く、特にFP32からINT8のように表現幅(Dynamic Range)が極端に縮小する場合ほど危険性が高い(Source: [[@2026__技術評論社__実践的パフォーマンスエンジニアリングによるAI高速化 - Chapter 3 パフォーマンス改善]] §3.3.4)。
### 精度維持のための主要技法
- **混合精度量子化(Mixed Precision Quantization)**: 精度劣化の影響が小さい層・ブロックだけを選択的に量子化し、量子化先の数値形式も層の特性に応じて選ぶ(FP8/BF16等)。どの部分をどれだけ量子化するかの選定には、モデル特性の詳細な把握と、数値形式変換コストを抑えるための量子化範囲のまとめ方が重要になる。
- **量子化パラメータ(Quantization parameter)**: スケール値$S$と零点移動$Z$を導入し、量子化後の値$x$から表現幅を広げた値$y = S(x-Z)$を復元する(式3.1)。パラメータの共有範囲(層・ブロック丸ごと ↔ テンソルごと ↔ チャンネル/行列単位ごと)を狭めるほど精度は上がるがメモリ消費が増える、というトレードオフがある。活性値の量子化パラメータは推論時の入力に依存して変動するため、動的量子化(Dynamic Quantization、その場で計算しオーバーヘッドが生じる)か静的量子化(Static Quantization、調整用データで事前に範囲を決めるが精度劣化リスクを伴う)のいずれかを選ぶ必要がある。
- **量子化前提学習(Quantization Aware Training; QAT)と学習後量子化(Post Training Quantization; PTQ)**: 量子化後にもう一度軽く学習(ファインチューニング)することで精度を回復させるのがQAT。追加の再学習を行わないPTQに対するレトロニムである。
- **混合精度学習(Mixed Precision Training)**: 学習の最初から小さいデータ幅で実行し量子化されたモデルを作る手法。QATの一種とみなされることもある。パラメータのマスターコピーをFP32で保持する必要があるため、データ幅を縮小してもメモリ消費量が却って増える場合があることに注意が必要である。
(Source: [[@2026__技術評論社__実践的パフォーマンスエンジニアリングによるAI高速化 - Chapter 3 パフォーマンス改善]] §3.3.4)
## 横断的知見
- 第3章では量子化を主に学習・大規模モデル文脈の技法(混合精度学習・QAT/PTQ)として説明するのに対し、第8章(自動運転AI推論のエッジデプロイ)では車載向け推論の実務的な定石が加わる: 重みは対称量子化(Symmetric)・チャネル単位(Per-Channel)、活性値は非対称量子化(Asymmetric)・テンソル単位(Per-Tensor)が一般的で、キャリブレーション手法の選定が精度を左右する。量子化パラメータの共有範囲(層/テンソル/チャンネル単位)というトレードオフ構造は両章で一致するが、第8章はその選択が「重みか活性値か」で非対称に決まる実例を提供する点で第3章の一般論を具体化する。(Source: [[@2026__技術評論社__実践的パフォーマンスエンジニアリングによるAI高速化 - Chapter 3 パフォーマンス改善]] §3.3.4, [[@2026__技術評論社__実践的パフォーマンスエンジニアリングによるAI高速化 - Chapter 8 実践5:自動運転AI推論]])
- 第8章の実測(CUDA-BEVFusionのCamera Backboneで処理時間12.0%短縮)は、量子化が数ある高速化施策(枝刈り1.3%・データ転送隠蔽5.3%)の中で最も効果が大きい部類に入ることを示す一方、これはメモリ律速ではなく演算律速の処理に対する効果であり、[[枝刈り]]の横断的知見にあるメモリ律速下での限定効果とは逆の条件で効くという対比が観察できる。
- 第3章・第8章が量子化パラメータの共有粒度(層/テンソル/チャンネル)というトレードオフを一般論として整理するのに対し、[[@2025__OReilly__AI Systems Performance Engineering - Chapter 16 Profiling, Debugging, and Tuning Inference at Scale]] は「実時間推論」という文脈に特化した具体的な数値と手法群(GPTQ・AWQによる4ビット重み限定量子化で精度99%以上維持・約2倍高速化・約4倍フットプリント削減、FP4はFP8比約1.8倍・FP16比約3.5倍のメモリ削減だがブロック単位マイクロスケーリング必須)を提供する。さらに、INT4重み+FP8/INT8活性値のW4A8ハイブリッド量子化という「重みと活性値で異なる精度を使う」設計を導入しており、これは第3章の混合精度量子化(層ごとに数値形式を選ぶ)の考え方を「同一層内で重みと活性値に異なる精度を割り当てる」方向へさらに一段細かくした具体例と位置づけられる。(Source: [[@2026__技術評論社__実践的パフォーマンスエンジニアリングによるAI高速化 - Chapter 3 パフォーマンス改善]] §3.3.4, [[@2025__OReilly__AI Systems Performance Engineering - Chapter 16 Profiling, Debugging, and Tuning Inference at Scale]] §Quantization Approaches for Real-Time Inference, §Combining Weight and Activation Quantization)
- Chapter 16 は「量子化の効果はワークロード依存であり、本番投入前に必ず実サービングプロファイルで検証すべき」と明示的に警告する。これは第3章・第8章の実測値(処理時間12.0%短縮等)が特定のモデル・ハードウェア条件下での一事例に過ぎないことを裏付けており、量子化concept全体を通じて「一般的な数値目安(2倍高速化・4倍フットプリント削減等)はあくまで出発点であり、個別ワークロードでの再検証が必須」という運用上の共通原則が浮かび上がる。(Source: [[@2025__OReilly__AI Systems Performance Engineering - Chapter 16 Profiling, Debugging, and Tuning Inference at Scale]] §Quantization Approaches for Real-Time Inference)
## 未解決の問い
- 混合精度量子化における「どの層をどの数値形式に量子化するか」の選定は、本ソースでは経験的な手順として説明されるが、この選定を自動化するツール(自動チューニングとの関係、[[並列化戦略]]の未解決の問いにある探索コスト問題)とどう統合できるか。
- KV キャッシュの量子化([[KVキャッシュ量子化]])は活性値量子化の一種と位置づけられるが、通常の活性値量子化(推論時の動的量子化)とどのような設計上の違いがあるか。
- 混合精度学習でメモリ消費が「却って増える」場合の閾値は、モデル規模・オプティマイザの種類にどのように依存するか。
- W4A8(INT4重み+FP8/INT8活性値)ハイブリッド量子化は、第3章の混合精度量子化(層/ブロック単位で数値形式を選ぶ)の枠組みでどう位置づけられるか。同一層内で重み/活性値ごとに異なる精度を割り当てる設計は、既存の混合精度量子化の選定手順(経験的手順)にどう統合できるか。
## 関連
- ソース: [[@2026__技術評論社__実践的パフォーマンスエンジニアリングによるAI高速化 - Chapter 3 パフォーマンス改善]] / [[@2025__OReilly__AI Systems Performance Engineering - Chapter 16 Profiling, Debugging, and Tuning Inference at Scale]]
- 概念: [[混合精度訓練]] / [[KVキャッシュ量子化]] / [[並列化戦略]] / [[LLM推論]]
- エンティティ: [[TensorRT-LLM]]
- 関連 MOC: [[分散深層学習 - MOC]]
## 出典
- [[@2026__技術評論社__実践的パフォーマンスエンジニアリングによるAI高速化 - Chapter 3 パフォーマンス改善]](§3.3.4 演算するデータ幅を小さくする:量子化。混合精度量子化・量子化パラメータ・QAT/PTQ・混合精度学習)
- [[@2025__OReilly__AI Systems Performance Engineering - Chapter 16 Profiling, Debugging, and Tuning Inference at Scale]](§Quantization Approaches for Real-Time Inference, §Reducing Precision from FP16 to FP8 and FP4, §Weight-Only Quantization (GPTQ, AWQ), §Combining Weight and Activation Quantization。実時間推論向けGPTQ/AWQ/FP8/FP4/W4A8)