ホームへ戻る

推論與量化

Nunchaku LiteがDiffusersにネイティブ対応、W4A4量子化で拡散TransformerのVRAM使用量とレイテンシを削減

DiffusersがNunchaku LiteのINT4およびNVFP4チェックポイントを直接読み込めるようになり、モデル専用の推論エンジンを別途インストールする必要がなくなった。SVDQuantは重みとアクティベーションを同時に量子化し、VRAMの節約に加えて、実際のデノイズ時間の短縮を目指す。

Jernej Furman from Slovenia · CC BY 2.0 · Image source
zh-Hant

Hugging Face DiffusersにNunchaku Liteのネイティブ読み込みパスが追加され、一般的な`from_pretrained()`インターフェースでSVDQuantチェックポイントを実行できるようになった。従来のweight-only量子化は、計算前に低精度の重みを逆量子化するため、VRAMは節約できてもレイテンシが改善するとは限らない。一方、SVDQuantはアクティベーションの外れ値成分を重みに移し、量子化が難しい信号を小規模な16ビット低ランク分岐で保持したうえで、主要な線形層をW4A4で実行する。正規化やモジュレーションなど精度に敏感な層には、W4A16 AWQが採用されている。

新しい読み込みパスでは、重みを読み込む前に、標準Diffusersモデル内の互換性のある`nn.Linear`モジュールをSVDQまたはAWQ実行層へ置き換える。CUDA kernelはHugging Faceの`kernels`パッケージからダウンロードされるため、ローカルでのコンパイルは不要だ。公式がRTX PRO 6000 Blackwell上で1024×1024のERNIE-Image-Turboをテストした結果、ピークVRAM使用量は31.1 GBから最小16.0 GBまで減少した。NVFP4のみを使用した場合、処理全体は2.27秒で、`torch.compile`を追加すると1.68秒となった。BF16のベースラインは3.00秒だった。

汎用性にはトレードオフもある。Nunchaku LiteはQKV fusionなどアーキテクチャ固有の書き換えを自動では行わないため、基本パスは約30%高速化するものの、オリジナル版Nunchakuの専用fusion kernelより遅い可能性がある。NVFP4がサポートされるのはBlackwellのみで、旧世代のNVIDIA GPUではINT4を使用する必要がある。VoltaとHopperは現在、同製品の4ビットkernelのサポート対象に含まれていない。各チームは対象モデル上で画質、LoRA互換性、コンパイル時間、バッチスループットを改めて測定すべきであり、単一の画像モデルで得られたデータをそのまま一般化することはできない。

出典

  1. Bringing Nunchaku 4-bit Diffusion Inference to Diffusers
  2. SVDQuant: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models
  3. Nunchaku inference engine