nunchux-ai/nunchaku
[ICLR2025 Spotlight] SVDQuant: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models
它解决了什么问题
Nunchaku 是一个高性能推理引擎,旨在让大型扩散模型(如 FLUX.1 和 SANA)运行得更快,并显著减少内存占用,同时不牺牲视觉质量。它解决了 4 位量化中的挑战,即神经网络权重和激活中的「异常值」通常会导致图像保真度下降。
它如何工作
该引擎实现了 SVDQuant,一种训练后量化技术。它分为三个阶段:
- 异常值迁移:将异常值从激活中移至权重,使激活更易于量化。
- 低秩分解:使用奇异值分解(SVD)将更新后的权重拆分为一个低秩分量(保持 16 位精度)和一个残差分量(量化为 4 位)。
- 内核融合:为防止低秩分支拖慢系统,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 后端,便于模块化集成。
"Nunchaku 通过 SVDQuant 实现了 4 位量化,让扩散模型在低内存设备上也能保持高质量输出。" — @nunchaku_dev
相关
- 项目
- 项目
- 项目
- 项目