2026-08-16 · 4 min de lecture

Qwen 3.8 27B : Quantification 4 bits, Parallélisme Tensoriel vLLM et Analyse VRAM/Contexte

Qwen 3.8 27B : Guide de Déploiement avec vLLM et Parallélisme Tensoriel

Qwen 3.8 27B est un modèle transformer dense avec 27 milliards de paramètres, 64 couches et une dimension cachée de 5120. Il utilise Grouped-Query Attention (GQA) pour réduire la mémoire de la KV cache, ce qui le rend adapté aux contextes longs sur des configurations multi-GPU. Dans cet article, nous expliquons comment charger une version quantifiée en 4 bits du modèle avec vLLM et parallélisme tensoriel, calculer les besoins en VRAM pour les poids et la KV cache, et estimer la longueur maximale du contexte sur deux RTX 3090 et deux RTX 5090.

Charger Qwen 3.8 27B sur vLLM avec Parallélisme Tensoriel

vLLM prend en charge le parallélisme tensoriel (TP) pour distribuer le modèle sur plusieurs GPU. Avec TP size 2, chaque GPU contient la moitié des poids du modèle et calcule la moitié des opérations par couche, en synchronisant via NCCL. La commande ci-dessous démarre un serveur compatible OpenAI avec un modèle quantifié en 4 bits (par ex. AWQ ou GPTQ) et TP=2 :

python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen3.8-27B --tensor-parallel-size 2 --gpu-memory-utilization 0.90 --kv-cache-dtype fp8

Le flag --gpu-memory-utilization contrôle la fraction de VRAM utilisée pour les poids, la KV cache et le contexte CUDA. Choisissez toujours la plus petite taille TP qui fait tenir le modèle pour minimiser l'overhead de communication. Si le modèle tient sur un seul GPU, évitez TP et lancez des instances séparées pour un meilleur débit.

Utilisation de la VRAM : Poids du Modèle et KV Cache

La VRAM est consommée par deux composants principaux : les poids du modèle et la KV cache. Pour un modèle quantifié en 4 bits, chaque paramètre occupe environ 0,5 octet (plus un petit overhead pour les échelles et les zéros). L'empreinte des poids est calculée comme suit :

Calcul VRAM des poids
ComposantValeur
Paramètres27 milliards
Octets par paramètre (4 bits)0,5
VRAM poids (brut)13,5 Go
Contexte CUDA et buffer1-2 Go
Empreinte totale des poids~15 Go
← Faites défiler vers la droite pour en voir plus →

La taille de la KV cache dépend de la longueur du contexte, de la précision et de l'architecture du modèle. Pour Qwen 3.8 27B avec GQA, la formule est : 2 * num_layers * num_kv_heads * head_dim * seq_len * bytes_per_element. Avec 64 couches, 8 têtes KV et head_dim 128, nous pouvons calculer la KV cache pour un contexte de 32k.

Taille KV cache pour contexte 32k (batch size 1)
PrécisionOctets/élémentTaille KV cache
BF162~6,8 Go
FP81~3,4 Go
← Faites défiler vers la droite pour en voir plus →

Calcul du Contexte Maximal sur 2x RTX 3090 et 2x RTX 5090

En supposant une VRAM totale de 48 Go pour deux RTX 3090 (24 Go chacune) et 64 Go pour deux RTX 5090 (32 Go chacune), nous soustrayons l'empreinte des poids (~15 Go) et l'overhead CUDA pour trouver la VRAM disponible pour la KV cache. Le contexte maximal est estimé en divisant la VRAM disponible par la taille de la KV cache par token.

Comparaison matérielle avec KV cache FP8
MatérielVRAM totalePoidsDisponible pour KVContexte max (FP8)
2x RTX 309048 Go15 Go33 Go~300k tokens
2x RTX 509064 Go15 Go49 Go~460k tokens
← Faites défiler vers la droite pour en voir plus →

Pour la KV cache en BF16, le contexte maximal serait environ la moitié des valeurs FP8, soit ~150k tokens sur 2x 3090 et ~230k tokens sur 2x 5090. Ces chiffres supposent un batch size de 1 et aucun autre overhead mémoire. En pratique, vLLM réserve de la mémoire pour les CUDA graphs et l'ordonnancement, donc le contexte réel peut être légèrement inférieur.

FP8 vs BF16 pour la KV Cache et Types de Stockage FP8

BF16 offre une précision supérieure mais consomme deux fois plus de mémoire que FP8. Pour l'inférence, FP8 est le choix préféré car il double la capacité de la KV cache avec une perte de précision négligeable. Au sein de FP8, il existe deux formats de stockage : E4M3 et E5M2. E4M3 offre un meilleur équilibre entre plage et précision et est recommandé pour la KV cache et les poids. E5M2 a moins de précision et est généralement utilisé pour les gradients en entraînement. Dans vLLM, vous pouvez activer la KV cache FP8 avec --kv-cache-dtype fp8.

Formats de stockage FP8
FormatBits d'exposantBits de mantisseUtilisation
E4M343KV cache et poids (recommandé)
E5M252Gradients en entraînement (éviter pour l'inférence)
← Faites défiler vers la droite pour en voir plus →

En conclusion, Qwen 3.8 27B avec quantification 4 bits peut être déployé efficacement sur des systèmes dual-GPU. L'utilisation de la KV cache FP8 maximise la longueur du contexte et le débit. Sur 2x RTX 3090, vous pouvez gérer ~300k tokens de contexte, tandis que 2x RTX 5090 offre ~460k tokens, ce qui rend les deux configurations excellentes pour le traitement de longs documents et le serving à haute concurrence.

Travaillons ensemble

Vous avez besoin de plus d'informations, d'aide pour votre projet ou pour développer une idée?

Qu'il s'agisse d'une question simple, d'un doute rapide ou d'une discussion de 5 minutes, envoyez-moi un message—cela ne coûte rien et je suis toujours prêt à vous aider. J'aime comprendre un problème, être créatif dans les solutions et me concentrer sur des idées simples, fiables et faciles à réaliser rapidement.

Me contacter

Changer de sujet

Choisissez un sujet spécialisé à explorer: