nunchux-ai/nunchaku

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

它解決的問題

Nunchaku 是一個高性能的推論引擎,專為讓大型擴散模型(如 FLUX.1 和 SANA)運行更快並大幅減少記憶體使用量而設計,同時不犧牲視覺品質。它解決了 4 位元量化所帶來的挑戰,其中神經網路權重與激活值中的「異常值」通常會導致影像保真度下降。

如何運作

該引擎實現了 SVDQuant,一種後訓練量化技術。它分為三個階段:

  1. 異常值遷移:將異常值從激活值移動到權重,使激活值更容易進行量化。
  2. 低秩分解:使用奇異值分解(SVD)將更新後的權重拆分為一個低秩成分(保持 16 位元精度)和一個殘差成分(量化至 4 位元)。
  3. 核心融合:為防止低秩分支拖慢系統,Nunchaku 使用專用的融合核心,將投影與量化步驟結合,減少資料移動的開銷。

適用對象

主要針對需要在消費級硬體(如 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 後端,支援模組化整合。

相關

  • 專案
  • 專案
  • 專案
  • 專案