For the complete documentation index, see llms.txt. This page is also available as Markdown.

🦥Guide d’exécution d’Unsloth Dynamic NVFP4

Découvrez comment Unsloth Dynamic NVFP4 permet une inférence 4 bits rapide et précise sur les GPU NVIDIA Blackwell.

Unsloth Dynamic NVFP4 est un format de modèle quantifié qui fonctionne sur les GPU NVIDIA Blackwell et est conçu pour une inférence 4 bits plus rapide et plus précise. Il combine la précision NVFP4 native de NVIDIA avec Unsloth Dynamic 2.0 la quantification afin de préserver la précision du modèle tout en réduisant l’utilisation de la VRAM et en augmentant la vitesse. Ce guide explique la quantification FP4, compare NVFP4 à d’autres formats et montre comment exécuter des modèles comme Qwen3.8, Gemma 4 et Qwen3.6 localement avec vLLM ou SGLang sur RTX 5050-5090, B200, RTX PRO 6000 et d’autres GPU.

Dynamic NVFP4 fonctionne en sélectionnant les couches importantes pour rester en FP8 (W8A8) ou BF16 et le reste en W4A4 (et non W4A16) au lieu de forcer chaque couche en FP4. Cela permet jusqu’à une inférence 2,5x plus rapide car W4A4 exploite les cœurs tensoriels FP4 du GPU Blackwell. Pour tous les quants, nous fournissons également un étalonnage du cache KV FP8 permettant des longueurs de contexte 2x plus longues.

Float4 contre d’autres précisions

L’astuce pour des GPU plus rapides consiste à réduire la précision numérique des multiplications matricielles. Le nombre de transistors nécessaires pour les unités de multiplication matricielle est lié au carré de la mantisse. La mantisse permet aux nombres d’avoir combien de décimales « fractionnaires » - donc plus il y a de bits, plus les décimales peuvent être représentées avec précision. Par exemple, exprimer 0.121332 est possible avec davantage de bits de mantisse, tandis qu’avec peu de bits de mantisse, cela sera arrondi à 0.1.

FP32 possède 23 bits de mantisse, donc 23^2 + 8 bits d’exposant = 537 unités d’espace sont nécessaires. Bfloat16 possède 7 bits de mantisse, donc 7^2 + 8 exposants = 57 unités d’espace. Cela signifie que bfloat16 nécessite environ 9x moins d’espace que FP32 ! Et lorsque l’on passe à float8, qui possède 3 bits de mantisse, donc 3^2 + 4 exposants = 13 - cela représente 41x moins d’espace que FP32 !

Enfin, float4 possède 1 bit de mantisse et 2 exposants, donc 3 unités d’espace - soit un énorme gain de 179x moins d’espace que FP32 - cela signifie essentiellement qu’un GPU peut effectuer environ 179x plus de multiplications matricielles FP4 que de FLOPs de multiplication FP32 dans le même espace!

NVFP4 contre MXFP4

Il existe un autre format FP4 appelé MXFP4 - il est moins précis que NVFP4 pour 2 raisons :

  1. NVFP4 utilise une taille de bloc de 16 contre 32 pour MXFP4 - cela permet d’isoler plus facilement les valeurs aberrantes et des facteurs d’échelle sont fournis pour des sous-ensembles plus petits de poids, ce qui augmente la précision

  2. Une échelle E4M3 (FP8) est utilisée à la place d’une E8M0 (mise à l’échelle par puissances de 2) par bloc. L’utilisation d’une taille de bloc de type FP8 semble bien meilleure, surtout pour les LLM.

Analyse des performances

Nos nouveaux quants Qwen3.6 NVFP4 dynamiques s’exécutent environ2,5x plus vite que les autres quants NVFP4, avec de meilleures performances et des tailles de fichier comparables. Exécutez Qwen3.6-27B NVFP4 2,5x plus vite sur 24 Go de VRAM et Qwen3.6-35B-A3B 1,7x plus vite sur 32 Go de VRAM. Nous avons également ajouté l’étalonnage du cache KV FP8 pour des longueurs de contexte 2x plus longues ! NVFP4 nécessite des GPU Blackwell de NVIDIA comme RTX 50X, DGX Spark (voir Unsloth Dynamic NVFP4), GPU B200, B300. Pour les GPU plus anciens, nos GGUF fonctionnent bien !

Tous les benchmarks utilisent 1x B200 avec 128 de concurrence. Une concurrence plus élevée peut porter le 35B à 17 561 tokens/s. Nous venons aussi de publier nos nouveaux Qwen3.8 quants NVFP4 :

Nous publions également deux versions NVFP4 35B-A3B :

Pour les benchmarks de précision, nous avons exécuté MMLU-Pro, AIME 2025, GPQA pour FP8, BF16, le NVFP4 de NVIDIA et nos NVFP4 - nous montrons que nos quants plus rapides se comportent de manière similaire sur tous :

Qwen3.8-27B (nouveau)
Qwen3.6-35B-A3B
Qwen3.6-27B

Qwen3.6-35B-A3B-NVFP4 (1,56x plus rapide)

Qwen3.6-27B-NVFP4 (2,5x plus rapide)

Qwen3.6-35B-A3B-NVFP4-Fast (1,79x plus rapide)

Les tenseurs MTP sont également intégrés directement dans les quants pour des gains de vitesse supplémentaires. Les gains de précision proviennent d’améliorations apportées au modèle de conversation et à l’étalonnage du jeu de données de Qwen3.6. Nous utilisons nos précédentes mises à jour du modèle de conversation pour améliorer la cohérence du codage et de l’appel d’outils tout en réduisant les boucles et d’autres problèmes signalés. Notre étalonnage utilise un mélange de notre jeu de données optimisé pour le codage, l’appel d’outils et le chat, ainsi qu’UltraChat.

Pour la vitesse de décodage (tokens par personne), la nôtre est 1,03x plus rapide pour 27B et 1,17x et 1,22x plus rapide pour 35B.

Aperçu

Vous trouverez ci-dessous les exigences matérielles pour les modèles que vous pouvez utiliser, notamment Gemma 4 et Qwen3.6. Consultez aussi le gain de vitesse global que vous obtiendrez :

Gemma 4 :

Variante Gemma 4
VRAM requise
Plus rapide que BF16

7 Go

1,12× plus rapide

9 Go

1,22× plus rapide

11 Go

1,26× plus rapide

26 Go

1,41× plus rapide

32 Go

1,45× plus rapide

Qwen3.6 :

Variante Qwen3.6
VRAM requise
Plus rapide que les autres quants NVFP4

24 Go

2,5x plus vite

32 Go

1,56× plus rapide

32 Go

1,79× plus rapide

Benchmarks NVFP4

NVFP4 exécute directement les poids 4 bits et les multiplications matricielles sur les cœurs tensoriels Blackwell. Nos quants NVFP4 Qwen3.6 utilisent W4A4, donc ils utilisent réellement les cœurs tensoriels FP4, et décodent donc plus vite que ceux de NVIDIA, qui utilisent W4A16. Nous quantifions également les couches de manière dynamique pour conserver la précision, et nous avons réalisé MMLU-Pro, AIME 2025, GPQA pour tous les quants, y compris des comparaisons avec FP8 et BF16.

Benchmarks de précision Qwen3.6-27B NVFP4

Fournisseur
MMLU-Pro
GPQA
AIME 2025

Unsloth

86.25

86.34

93.12

NVIDIA

85.96

86.87

93.12

FP8

86.11

86.87

93.75

BF16

85.96

88.13

93.33

Benchmarks de précision Qwen3.6-35B-A3B NVFP4

Fournisseur
MMLU-Pro
GPQA
AIME 2025

Unsloth

85.85

86.74

92.29

Unsloth Rapide

85.58

87.75

91.67

NVIDIA

85.60

87.12

91.88

FP8

85.75

86.74

93.12

BF16

85.75

86.36

92.50

Nous avons également vérifié la longueur de sortie de tous les benchmarks, et elles sont comparables, donc les nouveaux quants NVFP4 ne réfléchissent pas plus longtemps, ce qui annule l’intérêt de les quantifier ! (c.-à-d. si c’est 2x plus rapide, mais qu’il réfléchit 2x plus, alors c’est inutile)

Lancer les tutoriels NVFP4

Pour exécuter les quants NVFP4, voir ci-dessous les commandes pour lancer Qwen3.6-27B dans vLLM et SGLang (vous pouvez remplacer le nom du modèle par Qwen3.6-35-A3B-NVFP4).

Tutoriel vLLM

Vous pouvez exécuter tous les modèles NVFP4 dans vLLM. Ne sélectionnez AUCUN backend MoE - laissez vLLM le sélectionner - par exemple Marlin est 2,5x plus lent ! Voir Unsloth Dynamic NVFP4Si vous avez un DGX Spark, voir Unsloth Dynamic NVFP4 vous devez utiliser --moe-backend flashinfer_b12x sinon l’inférence sera beaucoup plus lente.

Pour installer vLLM dans un venv séparé :

Puis, pour servir la variante 35B Fast :

Remplacez unsloth/Qwen3.6-35B-A3B-NVFP4-Fast par les noms des quants NVFP4 !

Pour activer MTP / le décodage spéculatif (décodage plus rapide mais débit quelque peu inférieur), utilisez :

Si vous avez des problèmes avec Torchcodec, assurez-vous de faire ce qui suit puis relancez vllm.

Tutoriel DGX Spark

Pour vous assurer que DGX Spark dispose des bons kernels (sinon vous obtiendrez une inférence 2x PLUS LENTE), vérifiez d’abord :

qui ne devrait PAS générer d’erreur - si c’est le cas, mettez à jour vllm ou réinstallez via :

Puis, pour servir dans vLLM sur DGX Spark :

Si vous avez des problèmes avec Torchcodec, assurez-vous de faire ce qui suit puis relancez vllm.

Tutoriel SGLang :

Vous pouvez exécuter tous les modèles NVFP4 dans SGLang. N’oubliez pas de remplacer le nom du modèle par celui de votre choix.

Qwen3.6 :

Gemma 4 :

Gemma 4 et autres

Chaque variante Gemma 4 dispose désormais d’un checkpoint Unsloth Dynamic NVFP4.

Nous montrons que Gemma-4 n’offre au maximum qu’un gain de débit de 1,44x lors du service de 128 personnes en concurrence sur 1x B200 par rapport à BF16. Qwen3.5-122B-A10B est 1,38x plus rapide et GLM-4.7-Flash est 1,27x plus rapide.

Marlin contre Flashinfer contre CUTLASS contre Cute-DSL

Nous avons également constaté que les kernels Marlin ne prennent pas bien en charge W4A4 - l’activer provoquera une dégradation des performances de 2,5x - utilisez donc CUTLASS, Flashinfer-TRTLLM ou Cute-DSL (activé automatiquement dans vLLM) ! Si vous avez aussi un DGX Spark, voir Unsloth Dynamic NVFP4 vous devez utiliser --moe-backend flashinfer_b12x sinon vous obtiendrez une inférence 2,5x plus lente.

Donc ne définissez aucun backend - vLLM sélectionne automatiquement le meilleur.

Modèle
schéma
backend
tok/s en décodage
débit tok/s

nvidia 27B

W4A16

marlin (auto)

115.6

2,403

unsloth 27B

W4A4

marlin

105.6

2,127

unsloth 27B

W4A4

cutlass

113.5

6,681

unsloth 27B

W4A4

flashinfer_trtllm

112.6

6,158

unsloth 27B

W4A4

cute-DSL (auto)

125.9

6,863

nvidia 35B-A3B

W4A4

marlin (auto)

240.8

8,721

unsloth 35B-A3B

W4A4

marlin

215.8

8,619

unsloth 35B-A3B

W4A4

cutlass

158.3

11,017

unsloth 35B-A3B

W4A4

cute-DSL (auto)

295.2

15,636

Mis à jour

Ce contenu vous a-t-il été utile ?