Hugging Face, Diffusers 본체에서 Nunchaku Lite 4비트 확산 모델 추론 지원
Bringing Nunchaku 4-bit Diffusion Inference to Diffusers
Hugging Face가 Diffusers에서 Nunchaku의 SVDQuant(W4A4) 체크포인트를 `from_pretrained()`로 직접 불러올 수 있도록 했다. 로컬에서 CUDA를 컴파일할 필요는 없으며, kernels 패키지를 통해 커널을 가져온다. RTX PRO 6000에서의 측정 결과, BF16 대비 최대 피크 VRAM을 50% 줄였고 지연 시간은 약 30% 개선됐다.
이번 통합은 'Nunchaku Lite'라고 불리며, 표준 Diffusers 모델의 nn.Linear를 실행 시점에 SVDQ/AWQ 선형 계층으로 바꾼 뒤 체크포인트를 불러오는 방식이다. 전용 파이프라인 클래스나 별도의 추론 엔진은 필요 없으며, 스케줄러, LoRA 로딩 훅, 오프로드, torch.compile도 일반 Diffusers 모델과 같이 사용할 수 있다. 커널은 두 종류로, 어텐션과 MLP projection에는 svdq_w4a4(INT4 및 NVFP4)를, 적응형 정규화와 modulation projection에는 awq_w4a16을 사용한다.
기존 Nunchaku 엔진은 QKV projection이나 GELU/MLP 융합 커널 등 모델 고유의 실행 경로로 가속했지만, Nunchaku Lite에는 이것이 없으므로 속도 향상 폭은 작다. 그래도 약 30%의 가속과 VRAM 절감 효과는 유지된다. 하드웨어 지원은 NVFP4가 Blackwell(RTX 50 시리즈, RTX PRO 6000, B200), INT4가 Turing, Ampere, Ada 세대다. Volta와 Hopper는 현재 미지원이며, 로드 시 CUDA capability를 검증해 오류를 낸다.
벤치마크는 RTX PRO 6000에서 1024x1024 해상도, ERNIE-Image-Turbo를 사용해 진행됐다. BF16은 3.00초, 피크 VRAM 31.1 GB인 반면 NVFP4는 2.27초, 20.6 GB로 1.35배다. torch.compile을 더하면 1.68초로 1.8배가 되며, NF4 텍스트 인코더를 함께 쓰면 피크 VRAM은 16.0 GB까지 내려간다. 블로그 서두의 예시에서는 RTX 5090으로 1024x1024 이미지를 약 1.7초, 피크 약 12 GB로 생성하며, BF16 파이프라인의 약 24 GB와 비교하고 있다.
직접 만든 모델을 양자화하려면 diffuse-compressor 툴킷으로 검사, 캘리브레이션, 양자화, 패키징, 공개까지 수행할 수 있다. 예시로 FLUX.2 Klein 4B의 절차가 제시되어 있으며, 결과물은 일반 Diffusers 저장소로 Hub에 공개할 수 있다. QKV 결합 등 구조 재작성이 필요한 모델에는 모델 고유의 타깃 설정과 런타임 어댑터가 필요하다. 바로 시험해 볼 수 있는 체크포인트로는 ERNIE-Image-Turbo(INT4 및 NVFP4)와 Krea 2 Turbo의 NVFP4 버전 등이 소개되어 있다.
W4A4 양자화가 weight-only와 무엇이 다른지 설명하고 속도와 VRAM의 실측치도 함께 제시하고 있어, 보유한 GPU에서 도입할지 판단하기 쉽다.
출처: Hugging Face Blog · huggingface.co