テクニカルガイド
SmoothQuant とアクティベーション クオンタイズ
SmoothQuant は、再トレーニングすることなく、重みとアクティベーションの両方について大規模な言語モデルを 8 ビット整数まで圧縮できるようにする手法です。
このガイドを聴くAIによるナレーション · ~2 min
概要
これは重要なのです。なぜなら、大規模モデルのアクティベーションには、通常は低精度の数学を台無しにする極端な異常値が含まれており、SmoothQuantがそれらを制御しているからです。
ディープダイブ
モデルを 16 ビット浮動小数点数から 8 ビット整数に縮小すると、重みは簡単に圧縮されますが、アクティベーションは問題になります。特定のチャネルは残りのチャネルより 10 ~ 100 倍大きい値を運び、それらを粗い整数グリッドに強制的に入れると精度が損なわれます。 Xiaoらによって導入されたSmoothQuant。 2022 年には、重みがスムーズで量子化が容易である一方で、アクティベーションが急激であることを観察しています。したがって、この問題は数学的に移行されます。アクティブ化チャネルをチャネルごとのスケールで除算し、対応する重みに同じスケールを乗算します。 2 つの操作はキャンセルされ、モデルの出力は変更されませんが、両方のテンソルが適切な範囲内に収まるようになりました。その結果、W8A8 (8 ビットの重みとアクティベーション) による推論が可能になり、精度の低下がほぼゼロになり、速度が約 2 倍向上し、メモリが節約されます。
現実世界の実装
メモリと行列乗算コストの両方を半分にすることで、より少ない GPU で W8A8 で 70B パラメータの LLM を提供
8 ビット整数演算をネイティブに高速化する NVIDIA Hopper/Blackwell tensor コアでの INT8 推論の有効化
コストに制約のあるクラウド エンドポイントにチャット モデルを展開すると、スループットが 2 倍になり、トークンごとの料金が直接削減されます。
8 ビット カーネルがより高速かつクールに実行されるオンデバイス音声または翻訳用の圧縮トランス エンコーダ
SmoothQuant とアクティベーション量子化の将来
SmoothQuant は、アクティベーションの異常値は避けられないものではなく、移行可能であることを確立し、その考えが現在、本番環境の INT8 および FP8 の提供を支えています。スムージングは、グループごとの量子化、学習されたスケーリング、4 ビット アクティベーション リサーチ (外れ値を認識した手法など) などのよりきめの細かいスキームと組み合わせることが期待されます。 FP8 ハードウェア (Hopper、Blackwell) が成熟するにつれて、スムージング スタイルのバランシングがコンパイラーと推論エンジンのパイプラインに組み込まれ続けるため、量子化はほぼ無料のままになります。
実践する
なぜそれが重要なのか
- 費用と予算. アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
- より明確な判決. 技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
- 品質管理. より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。
気をつけてください
- 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
- インフラストラクチャとメンテナンスのコストは過小評価されがちです。
- システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。
次のステップ
- 実装前にレイテンシ、品質、コストの目標を定義します。
- 現実的な負荷とデータ条件でのベンチマーク。
- エラー、ドリフト、ユーザーへの影響を計測器で監視します。
- スケーリングの前に、ロールバックとインシデント対応のパスを準備します。
探検を続けましょう
よくある質問
SmoothQuantとActivation Quantizationとは何ですか?
SmoothQuant は、再トレーニングすることなく、重みとアクティベーションの両方について大規模な言語モデルを 8 ビット整数まで圧縮できるようにする手法です。大きなモデルのアクティベーションには、通常、低精度の計算を台無しにする極端な外れ値が含まれており、SmoothQuant はそれらを制御するため、これが重要です。
SmoothQuant は、低精度推論における具体的にどのような問題に対処しますか?
SmoothQuant は、特定のアクティベーション チャネルに現れる大きな外れ値をターゲットとします。そうでないと、アクティベーションが 8 ビットに量子化されるときに精度が損なわれます。
SmoothQuant を使用すると、アクティベーションの量子化がどのように簡単になるのでしょうか?
アクティベーション チャネルをチャネルごとのスケールで除算し、一致する重みにそのスケールを乗算するため、積は変わりませんが、両方のテンソルの量子化が容易になります。
W8A8という表記は何を意味するのでしょうか?
W8A8 は、重み (W) とアクティベーション (A) の両方の 8 ビット量子化を示し、SmoothQuant 方式により精度の損失を最小限に抑えられます。
SmoothQuant のスケーリングによって基本的に実行時のオーバーヘッドが追加されないのはなぜですか?
平滑化スケールは、前の層の重みまたは融合演算に事前に折り畳まれるため、推論時に追加の計算は発生しません。
アルファ ハイパーパラメータは SmoothQuant でどのような役割を果たしますか?
アルファ (通常は 0.5) は平滑化係数のバランスをとり、量子化の難易度をどの程度アクティベーションから重みに移すかを決定します。