AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Nunchaku Lite – Diffusers에서 바로 쓰는 4비트 확산 모델 추론 경로

Nunchaku Lite는 Nunchaku의 SVDQuant 계열 4비트 확산 모델 추론을 Hugging Face Diffusers 안에서 직접 로드하게 만든 통합 방식이다. 별도 CUDA 엔진이나 커스텀 파이프라인 없이 from_pretrained()로 양자화된 Diffusers 저장소를 불러오는 것이 핵심이다.

배경

대형 diffusion transformer는 BF16 기준으로 20~30GB 이상의 VRAM을 요구하는 경우가 많다. 일반적인 weight-only 양자화는 모델 저장 공간과 메모리를 줄이지만, 계산 시 다시 고정밀도로 풀어야 해 지연 시간이 크게 줄지 않을 수 있다. Nunchaku 계열의 SVDQuant는 주요 transformer projection에서 weight와 activation을 함께 4비트로 처리해 메모리와 속도를 동시에 겨냥한다.

어떻게 동작하는가

Nunchaku Lite는 원래 Diffusers 모델의 nn.Linear 모듈을 런타임에 양자화 레이어로 교체한다. 모델 저장소의 config.json 안에는 어떤 모듈이 어떤 방식으로 양자화됐는지 나타내는 quantization_config가 들어간다.

레이어역할
svdq_w4a4attention·MLP projection에 쓰는 4비트 weight/activation 경로
awq_w4a16adaptive normalization, modulation projection처럼 정밀도에 민감한 경로
kernels 패키지필요한 CUDA kernel을 Hugging Face Hub에서 내려받아 실행

기본 사용법

pip install -U diffusers transformers accelerate kernels bitsandbytes
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="A cinematic portrait of a red fox in a misty forest at sunrise",
    height=1024,
    width=1024,
    num_inference_steps=8,
    guidance_scale=1.0,
).images[0]

성능 포인트

Hugging Face 블로그의 ERNIE-Image-Turbo 측정에서는 BF16 baseline 대비 Nunchaku Lite가 peak VRAM을 크게 줄이고, end-to-end latency도 개선했다. torch.compile을 함께 쓰면 kernel launch 오버헤드를 일부 줄여 속도 개선 폭이 더 커진다.

구성장점
Nunchaku LiteVRAM 절감, 별도 엔진 없는 Diffusers 로딩
Nunchaku Lite + torch.compileend-to-end latency 추가 개선
NF4 text encoder 병행transformer 외 text encoder 메모리까지 절감
CPU offload더 작은 GPU에 맞추는 fallback

하드웨어 제약

NVFP4 checkpoint는 NVIDIA Blackwell 세대 GPU가 필요하다. RTX 30·40, A100, L40S 같은 이전 세대에서는 INT4 variant를 써야 한다. Volta와 Hopper는 현재 4비트 kernel 지원 대상이 아니므로, 배포 전에 GPU 세대를 확인해야 한다.

언제 쓰면 좋은가

  • FLUX, Qwen-Image, ERNIE-Image 계열처럼 큰 diffusion transformer를 소비자 GPU에서 돌리고 싶다.
  • 기존 Diffusers 파이프라인, scheduler, LoRA, offloading 흐름을 유지하고 싶다.
  • 별도 inference engine을 붙이기보다 Hugging Face Hub 모델 저장소 하나로 배포하고 싶다.

관련 문서

  • diffusion-gemma — 확산 언어 모델 개요
  • hidream-o1-image — 픽셀·텍스트를 단일 토큰 공간에서 처리하는 이미지 생성 모델
  • qwen-image-3-0 — 조밀한 텍스트와 레이아웃에 강한 이미지 생성 모델

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)