Diffusers原生支持Nunchaku 4位量化 推动消费级扩散模型高效运行

0 阅读4分钟开源
Diffusers原生支持Nunchaku 4位量化 推动消费级扩散模型高效运行

背景

Diffusion 大模型在文本到图像任务上表现卓越,但 BF16 精度往往需要 20‑30 GB 显存,普通显卡难以承载。量化是降低显存的传统手段,然而多数后端仅实现权重量化,计算时仍需恢复高精度,速度提升有限。Nunchaku 采用 SVDQuant 技术,在权重与激活均使用 4 位(W4A4),实现显存压缩的同时提升推理吞吐。

Nunchaku Lite 关键特性

  • 无需本地 CUDA 编译:Diffusers 通过 kernels 包自动下载 NVFP4/INT4 核心,无需手动编译。
  • 结构无关:只需在模型的 config.json 中加入 quantization_config,即可在任意 Diffusers 模型上启用,无需模型特定适配。
  • 双路径支持
    • svdq_w4a4(NVFP4 或 INT4)用于 Transformer 的注意力与 MLP 主干;
    • awq_w4a16(INT4)用于激活敏感的调制层,如 FLUX 的 adanorm。
  • 兼容现有生态:支持 torch.compile、CPU/GPU offload、LoRA 等常用插件,保持与原生 Diffusers 完全兼容。

性能基准(RTX PRO 6000, 1024×1024)

配置峰值显存端到端延迟加速比
BF16 基线31.1 GB3.00 s1.0×
Nunchaku Lite NVFP420.6 GB2.27 s1.35×
NVFP4 + torch.compile20.6 GB1.68 s1.80×
NVFP4 + NF4 文本编码器16.0 GB2.29 s1.35×

结果显示,4 位量化在显存上削减近 50%,同时在完整流水线下实现约 30%‑80% 的速度提升,图像质量与 BF16 基线相差无几。

使用指南

import torch
from diffusers import ErnieImagePipeline

pipe = ErnieImagePipeline.from_pretrained(
    "lite-infer/ERNIE-Image-Turbo-nunchaku-lite-nvfp4_r32-bnb4-text-encoder",
    torch_dtype=torch.bfloat16,
).to("cuda")

image = pipe(
    prompt="晨曦中的红狐肖像,细腻毛发,体积光",
    height=1024, width=1024,
    num_inference_steps=8,
    guidance_scale=1.0,
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]
image.save("output.png")

上述代码展示了无需额外编译或自定义类,即可像加载普通 Diffusers 模型一样调用 Nunchaku Lite 检查点。对于自研模型,可使用 diffuse-compressor 工具完成 SVDQuant 量化、配置生成以及 Hub 推送,全流程与官方文档保持一致。

影响与展望

Nunchaku Lite 的原生集成降低了高质量扩散模型的硬件门槛,使得个人创作者、教育科研团队能够在消费级 GPU 上运行 8‑10 B 参数的文本‑图像模型。与此同时,开源社区可以基于该后端快速实验新量化方案,进一步推动生成式 AI 的算力效率提升。未来若 NVIDIA 推出更高算力的 Blackwell 系列,NVFP4 路径有望在保持显存优势的前提下进一步压缩延迟,开启更大规模模型的本地推理时代。

“量化不应只是显存压缩,更是提升推理速度的关键”。—— Hugging Face 团队

本文是对第三方新闻源的主观解读。消息可能出现过时、不准确、歧义或错误的地方,仅供参考使用。点击此处查看消息源。