
Nunchaku 4-bit扩散推理现已原生集成到Diffusers

大型扩散模型在BF16精度下需要20-30GB显存,超出大多数消费级GPU的容量。现有的量化方案多为weight-only,只降低显存但不加速推理,甚至可能引入额外开销。SVDQuant(即Nunchaku引擎背后的量化方法)采用不同路径:对Transformer主要层使用4-bit权重和4-bit激活(W4A4),既减少显存又加速去噪循环。现在,Nunchaku的量化检查点已原生集成到Diffusers,可通过from_pretrained()直接加载,无需单独推理引擎。
Nunchaku Lite是Diffusers中的新集成路径。它通过运行时替换目标nn.Linear模块为SVDQ/AWQ线性层来工作,CUDA内核通过Hugging Face的kernels包从Hub下载。支持两种内核:svdq_w4a4(4-bit权重和激活,带SVDQuant低秩修正)用于注意力与MLP投影;awq_w4a16(4-bit权重、16-bit激活)用于自适应归一化层。NVFP4精度需要NVIDIA Blackwell GPU(RTX 50系列等),INT4精度支持Turing/Ampere/Ada架构。Volta与Hopper暂不支持。
以ERNIE-Image-Turbo模型在RTX PRO 6000(Blackwell)上测试,1024×1024分辨率:BF16基线全流水线3.00秒,峰值显存31.1GB;Nunchaku Lite NVFP4版本延迟2.27秒,显存20.6GB,速度提升1.35倍。结合torch.compile后延迟降至1.68秒,提升1.8倍。若再将文本编码器用bitsandbytes NF4量化,峰值显存可降至16.0GB(减少约50%),延迟2.29秒。图像质量与BF16原版基本一致。
用户可使用diffuse-compressor工具量化自己的模型,流程包括:检查模型结构、运行SVDQuant校准与量化、打包为Diffusers管道、验证并推送至Hub。以FLUX.2 Klein 4B为例,通用扫描器自动识别100个SVDQ目标和3个AWQ目标。对于需要结构重写的模型(如FLUX.1-dev的融合QKV投影),需使用模型特定目标配置和运行时适配器,通用路径无法自动推断。
Nunchaku Lite使得在消费级硬件上高效运行扩散Transformer变得更加简单,同时保持了接近BF16的图像质量。


