🚀 SVDQuant - 文本到圖像量化模型
SVDQuant 是一種針對 4 位權重和激活的訓練後量化技術,能很好地保持視覺保真度。在 12B 的 FLUX.1 - dev 模型上,與 BF16 模型相比,它實現了 3.6 倍的內存縮減。在 16GB 筆記本 4090 GPU 上,通過消除 CPU 卸載,它比 16 位模型快 8.7 倍,比 NF4 W4A16 基線快 3 倍。在 PixArt - ∑ 上,它展示了比其他 W4A4 甚至 W4A8 基線顯著更優的視覺質量。

🚀 快速開始
環境準備
請按照 mit - han - lab/nunchaku 中的說明設置環境。
運行模型
以下是使用 Diffusers
庫運行模型的示例代碼:
import torch
from diffusers import FluxPipeline
from nunchaku.models.transformer_flux import NunchakuFluxTransformer2dModel
transformer = NunchakuFluxTransformer2dModel.from_pretrained("mit-han-lab/svdq-int4-flux.1-dev")
pipeline = FluxPipeline.from_pretrained(
"black-forest-labs/FLUX.1-dev", transformer=transformer, torch_dtype=torch.bfloat16
).to("cuda")
image = pipeline("A cat holding a sign that says hello world", num_inference_steps=50, guidance_scale=3.5).images[0]
image.save("example.png")
Comfy UI 使用方法
請查看 comfyui/README.md 瞭解具體使用方法。
✨ 主要特性
量化方法 -- SVDQuant
SVDQuant 的概述:
- 階段 1:最初,激活 X 和權重 W 都包含離群值,這使得 4 位量化具有挑戰性。
- 階段 2:將離群值從激活遷移到權重,得到更新後的激活和權重。此時激活更易於量化,而權重的量化難度增加。
- 階段 3:SVDQuant 進一步使用 SVD 將權重分解為低秩分量和殘差。這樣,低秩分支以 16 位精度運行,減輕了量化難度。
Nunchaku 引擎設計

- (a) 樸素運行的問題:天真地以秩 32 運行低秩分支,由於 Down Projection 中額外讀取 16 位輸入和 Up Projection 中額外寫入 16 位輸出,將引入 57% 的延遲開銷。Nunchaku 通過內核融合優化了此開銷。
- (b) 內核融合優化:Down Projection 和 Quantize 內核使用相同的輸入,而 Up Projection 和 4 - Bit Compute 內核共享相同的輸出。為減少數據移動開銷,將前兩個和後兩個內核分別融合在一起。
📦 模型信息
屬性 |
詳情 |
開發者 |
MIT、NVIDIA、CMU、普林斯頓大學、加州大學伯克利分校、上海交通大學和 Pika Labs |
模型類型 |
INT W4A4 模型 |
模型大小 |
6.64GB |
模型分辨率 |
像素數量需為 65,536 的倍數 |
許可證 |
Apache - 2.0 |
⚠️ 限制說明
- 硬件限制:該模型僅可在具有 sm_86(安培架構:RTX 3090、A6000)、sm_89(阿達架構:RTX 4090)和 sm_80(A100)架構的 NVIDIA GPU 上運行。更多詳細信息請參閱此 問題。
- 細節差異:與 BF16 模型相比,在細節上可能會觀察到一些細微差異。
📄 引用說明
如果您發現此模型對您的研究有用或相關,請引用以下 BibTeX:
@inproceedings{
li2024svdquant,
title={SVDQuant: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models},
author={Li*, Muyang and Lin*, Yujun and Zhang*, Zhekai and Cai, Tianle and Li, Xiuyu and Guo, Junxian and Xie, Enze and Meng, Chenlin and Zhu, Jun-Yan and Han, Song},
booktitle={The Thirteenth International Conference on Learning Representations},
year={2025}
}