nunchux-ai/nunchaku

[ICLR2025 Spotlight] SVDQuant: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models

何を解決するか

Nunchakuは、視覚的品質を損なうことなく、大規模な拡散モデル(FLUX.1やSANAなど)をより高速に、かつ大幅に少ないメモリで実行できる高パフォーマンスな推論エンジンです。4ビット量子化の課題に対処しており、ニューラルネットワークの重みや活性化における「外れ値」が画像の忠実度を低下させるという問題を解決します。

仕組み

このエンジンはSVDQuantと呼ばれるトレーニング後の量子化技術を実装しています。3段階で動作します:

  1. 外れ値の移動:活性化から重みへ外れ値を移動することで、活性化の量子化を容易にします。
  2. 低ランク分解:特異値分解(SVD)を用いて更新された重みを、低ランク成分(16ビット精度のまま保持)と残差成分(4ビットに量子化)に分割します。
  3. カーネル結合:低ランクブランチがシステムの速度を低下させないよう、射影と量子化ステップを統合した特殊な結合カーネルを使用し、データ移動のオーバーヘッドを削減します。

対象ユーザー

主に、消費クラスのハードウェア(NVIDIA RTX 4090や5090 GPUなど)の限られたVRAMで拡散モデルをデプロイする必要がある開発者や研究者向けです。

主な特徴

  • メモリ使用量の大幅削減:12BのFLUX.1モデルのサイズを3.6倍、メモリ使用量を3.5倍削減。
  • 大幅な高速化:ラップトップGPU上で16ビットモデルと比較して最大10.1倍の高速化を達成。CPUオフロードの必要がありません。
  • 広範なモデル対応:FLUX.1(KreaおよびKontextバージョンを含む)、SANA、Qwen-Imageに対応。
  • ハードウェア最適化:NVIDIA GPU向けに最適化されており、RTX 5090でのNVFP4精度のネイティブサポートを提供。
  • エコシステム統合:ComfyUIプラグインとPythonバックエンドを提供し、モジュール的な統合を可能にします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト