第5章 — 量子化を解き明かす
LLM Primer VI: AIシステムのスケーリング を章ごとに紹介していくウォークスルー、第5回。70Bモデルが4ビット量子化を生き延び1Bモデルが生き延びない理由、そしてレシピの選び方を説明する章です。
なぜこの章があるのか
デコードはメモリ帯域律速で、帯域の通貨は重みあたりのバイト数です。BF16の70Bモデルは順伝播あたり140 GBを読みます。同じモデルをINT4にすれば35 GBを読む。算術は同じ。ボトルネックは4倍動きます。この一つの観察が、量子化を研究上の物珍しさから本番推論の既定配備パスへと押し上げた理由です。第5章は機構を歩きます — 精度が実際に何を意味するか、なぜ攻撃的な量子化が小さなモデルを壊すようには大きなモデルを壊さないか、AWQ、GPTQ、SmoothQuant、GGUFが内部で本当に何をやっているか、そして量子化が安全でなくなり静かに品質を劣化させ始める場所。
5.1 大きなモデルが4ビットを生き延び、小さなモデルは生き延びない
大規模モデルの量子化を支える観察が3つあります。第一に、大きなTransformerの1つの重みが持つ情報量は少ない。予測的振る舞いは、ゼロ付近に鋭くピークを持つ分布の何十億もの重みの集団的相互作用から立ち現れる。重みを0.0031から0.003へ丸めても、次の層が検知できるものは何も変わらない。第二に、訓練済みTransformerはパラメータ空間の平坦な領域に位置し、その近くの多くの構成がほぼ同じ出力を生みます。30B程度を超えるモデルでは、その領域は4ビット摂動を1ポイント未満のMMLU劣化で吸収できるほど広い。第三に、混合精度により、敏感な層 — アテンションスコア、レイヤーノルム、最終ロジット — はBF16に留め、大部分の線形射影をINT4に落とせる。70BのINT4モデルは経験的にBF16版と区別が難しく、1BのINT4モデルは目立って悪い。平坦な領域が小さく、摂動がモデルをそこから押し出すからです。「小さいモデルほど量子化しやすい」という素直な直感は、まさに逆です。
5.2 AWQ、GPTQ、SmoothQuant、GGUFはそれぞれ別のことをする
GPTQは重み行列を列ごとに歩き、小さなキャリブレーションセットに対する出力誤差を最小化する量子化レベルを選び、まだ量子化されていない列を更新して残差を吸収します — ヘッシアン近似の補償で、層の出力を元に近く保つ。AWQは別の観察から出発 — アクティベーションの外れ値は重みの外れ値と同じくらい重要 — で、量子化前に顕著な重みチャネルをスケールアップ(そしてアクティベーションを補償のためスケールダウン)し、その重みが実際に占める範囲に量子化レベルを広げます。SmoothQuantはアクティベーション側を攻めます。LLMには巨大な大きさを持つ数個のチャネルがあり、ナイーブなアクティベーション量子化を壊す。SmoothQuantはその外れ値の大きさをアクティベーションから重みへチャネルごとに移し、W8A8をほぼ損失なく着地させる。GGUFは単一のアルゴリズムではなくファイル形式です — llama.cpp がCPUとエッジ推論で使うQ4_K_M型のネスト超ブロックスケーリングで、生態系的には重要ですがデータセンターGPUではほとんど使われません。
5.3 安全性のはしごとキャリブレーションの規律
経験的な安全性のはしごは明快です。BF16 → FP8はほぼ常にロスレスで、本番の既定。BF16 → INT8はコンピテントなアルゴリズムがあれば約7B以上でロスレス。BF16 → INT4はAWQかGPTQで約30B以上でロスレス。13B以下ではMMLUを1〜3ポイント落とし、7B以下では量子化認識訓練なしに5ポイント以上落とす。INT3以下は実験的。はしごが本番で保たれるかは2つの規律で決まる。第一は正しい分布でのキャリブレーション。本番ワークロードが引くのと同じ分布から128〜512の代表サンプルを引き、ワークロードのドリフトに合わせて6〜12カ月ごとに再実行する。第二はタスク側の評価。標準ベンチマークはモデルの能力の長い裾 — レアな事実、多段推論、少数派言語のコード — での品質シフトを取り逃す可能性があり、攻撃的な量子化はアプリケーションにとって重要な次元でスコア付けされた本番トラフィックのスライスに対して検証すべきです。
第5章が敷いたもの
量子化は重みあたりのバイト数を縮めます。次の章は重みの数そのものを縮めます。第6章はプルーニング — Hopperがネイティブに加速する2:4構造化スパース性を含む — と、大きな教師の振る舞いをより小さな生徒に転写する知識蒸留を歩きます。3つの圧縮(量子化、プルーニング、蒸留)は、第1章が名指しした帯域負担を下げるためのモデル側の道具箱を形成します。第7章はランタイム側のレバー — バッチング — に転じ、新たに得られたヘッドルームを同時ユーザー数のスループットに変えます。
次回 — 第6章: プルーニングと知識蒸留。 重み幅ではなく重み数を直接攻めるモデル側の2つの圧縮。
llm-compressor による完全なFP8キャリブレーションワークフロー、NVIDIA ModelOptのFP8とNVFP4のレシピ、W4A16 GPTQの動くコード、そして委員会投票量子化とFP8対INT4の本番運用に関する「In Plain English」サイドバーが収録されています。Amazonで『LLM Primer VI』を見る →