テクニカルガイド
GPTQ および AWQ ポストトレーニング量子化
GPTQ と AWQ は、トレーニング済みの言語モデルを 4 ビット精度に縮小して、より安価で小型のハードウェアで実行できる 2 つの主要な方法です。
このガイドを聴くAIによるナレーション · ~2 min
概要
だからこそ、データセンターラックではなく、単一の消費者向けGPUで高性能モデルを動かせるのです。
ディープダイブ
ポストトレーニング量子化 (PTQ) は、完成したモデルを再トレーニングせずに圧縮し、高精度の重みを 4 ビットまでマッピングしてメモリを約 4 分の 1 にします。課題は、精度を損なうことなくこれを行うことです。 GPTQ (OBQ の改良版) は、小さなキャリブレーション データセットからの 2 次情報を使用して、レイヤーごとに重みを量子化し、残りの重みを調整し、各丸め誤差を補正します。 AWQ (アクティベーションを意識した重み量子化) は、別の角度からアプローチします。重みチャネルのごく一部が不釣り合いに重要であることを観察し、アクティベーションの大きさを調べることで特定し、積極的に量子化するのではなくスケーリングすることで、それらの顕著なチャネルを保護します。どちらも Llama のようなモデルを 4 ビットで実行でき、vLLM、llama.cpp、AutoGPTQ などのツールにより、ローカルでコスト効率の高い推論の主流となっています。
現実世界の実装
4 ビット GPTQ 重みを使用して、単一の 24 GB コンシューマ GPU で 700 億パラメータの Llama モデルを実行します。
AWQ 量子化モデルは、コスト効率の高い運用 API のために vLLM で高スループットで提供されます。
llama.cpp は、量子化された GGUF 重みを使用して、言語モデルをラップトップ CPU 上でローカルに実行します。
Hugging Face の AutoGPTQ および AutoAWQ ライブラリを使用すると、開発者はダウンロードしたモデルを数行のコードで量子化できます。
GPTQ および AWQ ポストトレーニング量子化の将来
量子化は 4 ビット未満を 3 ビット、2 ビット、および混合精度方式へと推し進めており、多くの場合スパース性と組み合わされます。量子化、KV キャッシュ圧縮、および投機的デコードが連携して機能するよう、サービング エンジンとの緊密な連携が期待されます。 NVFP4 や MXFP4 などの低ビット形式のハードウェア サポートは成熟しており、自動化ツールはレイヤーごとのビット幅を選択することが増えています。大まかな目標は、デフォルトとしてほぼロスレスの 4 ビット (およびそれ以下) であり、強力なモデルをどこでも安価に提供できるようにします。
実践する
なぜそれが重要なのか
- 費用と予算. アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
- より明確な判決. 技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
- 品質管理. より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。
気をつけてください
- 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
- インフラストラクチャとメンテナンスのコストは過小評価されがちです。
- システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。
次のステップ
- 実装前にレイテンシ、品質、コストの目標を定義します。
- 現実的な負荷とデータ条件でのベンチマーク。
- エラー、ドリフト、ユーザーへの影響を計測器で監視します。
- スケーリングの前に、ロールバックとインシデント対応のパスを準備します。
探検を続けましょう
よくある質問
GPTQとAWQのトレーニング後量子化とは何ですか?
GPTQ と AWQ は、トレーニング済みの言語モデルを 4 ビット精度に縮小して、より安価で小型のハードウェアで実行できる 2 つの主要な方法です。これらが、データセンター ラックではなく、単一のコンシューマ GPU で有能なモデルを実行できる理由です。
「トレーニング後の量子化」とは何を意味しますか?
トレーニング後の量子化により、最初から再トレーニングすることなく、完成したモデルの重みの精度が低下します (たとえば、4 ビットに)。
GPTQ は量子化時に丸め誤差を補正するためにどのような情報を使用しますか?
GPTQ は、近似ヘシアンを使用して、1 つの重みを量子化することが損失にどのような影響を与えるかを理解し、残りの重みを調整して補償します。
AWQ (Activation-aware Weight Quantization) を推進する重要な洞察は何ですか?
少数のチャネルが不釣り合いに重要であるため、AWQ はアクティベーションの大きさを使用して顕著なウェイト チャネルを特定し、スケーリングによってそれらを保護します。
16 ビットの重み付けと比較して、4 ビットの量子化ではおおよそどのくらいのメモリが節約されますか?
ウェイトあたり 16 ビットから 4 ビットにすると、ウェイト メモリが約 4 分の 1、つまり約 4 倍に削減されます。
GPTQ と AWQ の両方が通常、重みを量子化しながら、アクティベーションをより高い精度で維持するのはなぜですか?
重みは主なメモリ コストですが、アクティベーションは精度の低下の影響をより受けやすいため、重みのみの量子化が一般的なスイート スポットとなります。