Nunchaku Lite: 4-битный вывод диффузионных моделей в Diffusers

Hugging FaceHugging Face
Для библиотеки Diffusers представлена интеграция Nunchaku Lite, позволяющая загружать 4-битные чекпоинты диффузионных моделей с помощью стандартного метода from_pretrained(). Метод квантования SVDQuant использует веса и активации в 4-битном формате (W4A4), снижая потребление памяти и ускоряя инференс. Для видеокарт Blackwell доступны ядра NVFP4, для более старых поколений — INT4.
Команда Hugging Face сообщила о добавлении поддержки Nunchaku Lite — нового пути интеграции движка квантования SVDQuant — в библиотеку Diffusers. Ранее для использования таких чекпоинтов требовалась отдельная библиотека, теперь же загрузка осуществляется простым вызовом from_pretrained() без локальной компиляции CUDA, благодаря пакету kernels. Метод SVDQuant, лежащий в основе Nunchaku, переносит выбросы активаций в веса, оставляя небольшую 16-битную низкоранговую ветвь, а остаток квантует до 4 бит. Nunchaku Lite заменяет стандартные линейные модули Diffusers на SVDQ или AWQ слои во время загрузки, сохраняя привычную структуру модели. Для модулей attention и MLP используется SVDQW4A4 (доступен в вариантах INT4 и NVFP4), для нормализации и модуляции — AWQW4A16. Это даёт ускорение около 30% при снижении видеопамяти до 50%. Например, на RTX PRO 6000 (Blackwell) при 1024×1024 пикселей полный цикл с NVFP4 занял 2,27 с вместо 3,00 с (BF16), а пиковое потребление VRAM снизилось с 31,1 ГБ до 20,6 ГБ. torch.compile дополнительно ускоряет процесс до 1,8x. Пользователи могут также квантовать свои модели с помощью инструмента diffuse-compressor, который автоматически выбирает цели квантования. Поддерживаются GPU начиная с Turing (RTX 30xx и старше) для INT4, а NVFP4 требует Blackwell (RTX 50xx). Volta и Hopper временно не поддерживаются. Все изменения совместимы с LoRA, offloading и другими оптимизациями Diffusers.
Сокращения
NVFP4 = NVIDIA FP4 — 4-битное вещественное число NVIDIA
INT4 = Integer 4-bit — 4-битное целое число
SVDQ = Singular Value Decomposition Quantization — квантование с сингулярным разложением
AWQ = Activation-aware Weight Quantization — квантование весов с учётом активаций
W4A4 = Weights 4-bit Activations 4-bit — 4-битные веса и 4-битные активации
W4A16 = Weights 4-bit Activations 16-bit — 4-битные веса и 16-битные активации
BF16 = Brain Floating Point 16 — полуточка с плавающей запятой формата bfloat16
NF4 = Normal Float 4 — 4-битное нормализованное с плавающей запятой
GPU = Graphics Processing Unit — графический процессор
CUDA = Compute Unified Device Architecture — архитектура параллельных вычислений NVIDIA
VRAM = Video Random Access Memory — видеопамять
LoRA = Low-Rank Adaptation — низкоранговая адаптация
Источник: Hugging Face blog — оригинал

Наши прошлые публикации по теме

Есть свежие новости