Nunchaku Lite : inférence 4 bits des modèles de diffusion dans Diffusers
Hugging Face
Baidu
Nunchaku est une méthode de quantification SVDQuant (W4A4) pour les transformateurs de diffusion. La nouvelle intégration Nunchaku Lite permet de charger des points de contrôle quantifiés directement via from_pretrained() dans Diffusers, sans moteur séparé. La vitesse de génération augmente jusqu'à 1,8 fois, la consommation crête de VRAM diminue jusqu'à 50 %.
Sur le blog de Hugging Face, l'intégration de la méthode de quantification Nunchaku (basée sur SVDQuant) dans la bibliothèque Diffusers a été annoncée. SVDQuant fonctionne avec des poids et des activations 4 bits (W4A4) et gère les valeurs aberrantes en les déplaçant dans les poids, tout en conservant une petite branche 16 bits de faible rang. Le moteur original Nunchaku nécessitait des intégrations distinctes pour chaque architecture. Nunchaku Lite résout ce problème en remplaçant les modules nn.Linear du modèle de diffusion par des couches linéaires spéciales avec des noyaux CUDA (svdq_w4a4 pour les calculs principaux et awq_w4a16 pour les couches de normalisation). Le point de contrôle est chargé par un appel standard from_pretrained(), et la configuration de quantification est stockée dans le fichier config.json du modèle. Nunchaku Lite offre un gain de vitesse d'environ 30 % et une réduction de la VRAM allant jusqu'à 50 % par rapport au BF16. Avec torch.compile, l'accélération atteint 1,8x. La méthode prend en charge les GPU Blackwell (NVFP4) et Turing/Ampere/Ada (INT4). Pour quantifier ses propres modèles, un ensemble d'outils nommé diffuse-compressor est proposé, qui détermine automatiquement les cibles de quantification et empaquette le résultat au format Diffusers.
Source: Hugging Face blog —
original
