将 Nunchaku 4-bit 扩散推理引入

来自 Hugging Face · 期号 2026-07-23

摘要

加载 BF16 精度的现代文生图模型通常需要 20-30 GB 显存,消费级 GPU 难以承受。 SVDQuant 是 Nunchaku 推理引擎背后的量化方法,它用 4-bit 权重和激活(W4A4)运行主要 transformer 层,在降低显存占用的同时还能加速去噪循环。现在 Diffusers 已原生支持 Nunchaku 量化检查点,调用 from_pretrained() 即可加载,无需本地 CUDA 编译。 以 ERNIE-Image-Turbo 为例,NVFP4 量化版在 RTX 5090 上生成 1024×1024 图像约需 1.7 秒、峰值显存约 12 GB,而 BF16 版需要约 24 GB。NVFP4 检查点需要 NVIDIA Blackwell GPU(RTX 50 系列等),旧架构可用其他量化格式。 配套的 diffuse-compressor 工具包允许用户自行量化新架构并发布为常规 Diffusers 仓库。

深读

导读 Diffusers 现在原生支持 Nunchaku 4-bit 量化推理引擎,加载预量化检查点只需一行 from_pretrained(),无需本地 CUDA 编译。SVDQuant 方法同时量化权重和激活(W4A4),在消费级 GPU 上可将显存占用降低约 50%、推理速度提升约 30%,同时保持接近 BF16 的图像质量。读完本文可以了解如何开箱即用、性能收益有多大,以及如何量化自己的模型。 关键信息 - SVDQuant 将激活异常值通过低秩分支(16-bit)转移到权重中,剩余残差量化到 4-bit,从而解决扩散 transformer 中权重和激活同时存在大异常值的问题。 - Nunchaku Lite 在 Diffusers 中使用两种运行时层:svdq_w4a4(4-bit 权重和激活,含 SVDQuant 低秩校正)用于 attention 和 MLP 投影;awq_w4a16(4-bit 权重、16-bit 激活)用于自适应归一化和调制投影。 - 在 RTX PRO 6000(Blackwell)上,ERNIE-Image-Turbo 的 NVFP4 量化版相比 BF16 基线:峰值显存从 31.1 GB 降至 20.6 GB(降低约 34%),全流水线延迟从 3.00 秒降至 2.27 秒(加速 1.35x);配合 torch.compile 可进一步降至 1.68 秒(加速 1.8x)。 - NVFP4 精度仅支持 Blackwell GPU(RTX 50 系列、RTX PRO 6000、B200);INT4 精度支持 Turing/Ampere/Ada 架构(RTX 30 & 40 系列、A100、L40S);Volta 和 Hopper 暂不支持。 - 配套的 diffuse-compressor 工具包提供从校准、量化、打包到发布的完整工作流,支持架构无关的通用量化路径。 逐节讲解 SVDQuant 与 Nunchaku 的背景 标准 4-bit 量化在扩散 transformer 上效果不佳,因为权重和激活中都存在大异常值。SVDQuant 的处理方式是将激活异常值转移到权重中,用一个小型的 16-bit 低秩分支表示每个权重矩阵中最难量化的部分,剩余残差量化到 4-bit。Nunchaku 引擎通过融合内核(将低秩下投影与量化内核融合、低秩上投影与 4-bit 计算内核融合)消除 16-bit 分支的内存访问开销,实现快速推理。 Nunchaku Lite:Diffusers 原生集成 原始 Nunchaku 引擎依赖模型特定的融合执行路径(如融合 QKV 投影、融合 GELU/MLP 内核),支持新架构需要大量适配工作。Nunchaku Lite 是 Diffusers 中的新集成路径,它不再需要自定义 pipelin…

读原文

本站只做摘要与索引,全部内容版权归原作者所有。