L’ensemble des 6 centres de données opérationnels

Payé en crypto · Sans vérification d’identité · Accès root en moins de 5 minutes

Dimensionnement guide · 10 min de lecture

Quel format de quantification utiliser, en pratique.

Une stack de serving demande un format de nombres avant toute autre chose, et la réponse fait varier votre facture mensuelle d’un facteur huit. Le format aux poids les plus légers n’est pas toujours celui qui donne le modèle le plus petit.

En bref

La règle empirique
Les poids rétrécissent exactement selon le ratio indiqué dans le nom — BF16 / FP16 2 B/param · FP8 1 B/param · 4-bit (AWQ, GPTQ) 0.5 B/param. Rien d’autre ne rétrécit.
Ce que cela vaut
Qwen 3 32B demande NVIDIA A100 PCIe à $1,091 par mois à pleine précision, et NVIDIA L4 à $125 en 4-bit. Même modèle, même contexte.
Le piège
Le cache clef/valeur ne suit pas la baisse des poids. À 128k de contexte, un Llama 3.3 70B en 4 bits représente 53 % de cache et seulement 47 % de poids.
Où le 4 bits perd nettement
Llama 3.1 8B à 128k demande 23.0 GB en 4-bit contre 18.4 GB en FP8 — plus de mémoire, pour une moins bonne qualité

Commencez ici

La majeure partie de cette page est du calcul, voici donc la conclusion en premier. Quatre questions déterminent le format, posées dans cet ordre parce que chacune peut à elle seule clore la discussion.

Le modèle tient-il déjà en pleine précision, avec de la place pour votre contexte ? Faites-le tourner en BF16 et arrêtez de lire. La quantification est une façon d’acheter une machine plus petite, et vous en avez déjà acheté une qui fonctionne. Il n’y a aucune récompense à compresser un modèle qui tient déjà.

Votre contexte est court et votre modèle grand ? C’est là que le 4 bits mérite sa réputation. Les poids dominent la mémoire, et les réduire au quart revient presque à réduire la machine au quart.

Votre contexte est long et votre modèle petit ? Utilisez FP8, sur une carte qui le prend en charge. FP8 divise par deux le cache aussi bien que les poids, et au-delà d’une certaine longueur, c’est cette seconde division par deux qui compte — le tableau ci-dessous indique le point exact où il dépasse le 4 bits.

Servez-vous une seule personne sur une seule machine ? GGUF via Ollama demande de loin le moins de travail, et le débit auquel vous renoncez est un débit qu’un lecteur unique n’allait de toute façon jamais utiliser.

Tout ce qui suit explique pourquoi ces quatre réponses sont ce qu’elles sont, et vous donne les chiffres pour les vérifier sur votre propre modèle plutôt que sur le nôtre. Si vous n’avez pas encore déterminé de combien de mémoire votre modèle a besoin, ce calcul fait l’objet d’un guide séparé, à consulter en premier.

Trois formats, quatre noms

Il n’existe que trois formats numériques d’usage courant pour le service, et ils ne diffèrent que par une chose : le nombre d’octets que coûte chaque paramètre. Tout le reste — AWQ, GPTQ, GGUF, bitsandbytes — est une méthode pour produire l’un de ces trois formats, pas un quatrième.

Les trois formats numériques, et ce à quoi s’applique chaque chiffre en octets
Format Octets par poids Octets par élément de cache À quoi ça sert
BF16 / FP16Les poids tels que publiés 2 2 Qualité de référence
FP8Produit par la stack de serving elle-même 1 1 Proche de la référence, Hopper et Blackwell
4-bit (AWQ, GPTQ)Un checkpoint préparé à l’avance 0.5 2 Poids minimaux, cache toujours en FP16

Lisez les deux colonnes numériques comme une paire. Elles sont égales sur les deux premières lignes et elles ne sont pas égales sur la troisième, et cette seule asymétrie explique la plupart des surprises plus loin sur cette page.

Les quatre noms que vous rencontrerez réellement dans un dépôt de modèle correspondent à ce tableau comme suit.

AWQ et GPTQ

Deux voies vers la même destination en 4 bits. AWQ détermine quels poids comptent en observant les activations et les protège ; GPTQ compresse couche par couche et corrige l’erreur au fur et à mesure. Les deux produisent un checkpoint que vLLM et SGLang chargent directement, et sur un modèle donné, l’écart entre eux est plus petit que l’écart entre l’un ou l’autre et le 16 bits.

GGUF

La famille llama.cpp, ce qu’Ollama utilise en interne. C’est un conteneur plutôt qu’une méthode unique : un seul fichier contient les poids à l’une ou l’autre d’une douzaine de précisions, et il déborde les couches vers la RAM système quand la carte est trop petite. Imbattable pour un utilisateur sur une machine, et le plus faible des trois en concurrence réelle.

FP8

Moins un format de checkpoint qu’un mode. Donnez à une stack de serving des poids en 16 bits, et elle les convertira en FP8 au chargement, sans téléchargement séparé ni passe de calibration. C’est le seul des quatre qui puisse aussi compresser le cache, ce qui explique pourquoi il apparaît plus loin là où on ne l’attend pas.

BF16 et FP16

Les poids tels que les auteurs les ont publiés, et la référence à laquelle chaque autre ligne est comparée. Deux octets par paramètre, aucun jeu de calibration, aucun support de kernel à vérifier, aucun débat de qualité à avoir. Quand cela tient, c’est la bonne réponse et le reste de cette page est une distraction.

Demander chacun d’eux se résume à un flag. Ce sont les mêmes options que celles que le guide vLLM détaille longuement ; le propos ici est seulement de montrer à quel point la différence entre elles est mince.

Le même serveur, de quatre façons
# 1. Reference. The weights as published, nothing to prepare.
$ vllm serve meta-llama/Llama-3.3-70B-Instruct --dtype bfloat16

# 2. FP8, quantised while it loads. No second download, no calibration.
#    --kv-cache-dtype is the half everyone forgets: it is what
#    halves the CACHE as well as the weights.
$ vllm serve meta-llama/Llama-3.3-70B-Instruct \
    --quantization fp8 --kv-cache-dtype fp8

# 3. Four-bit AWQ. A DIFFERENT checkpoint, prepared by someone else.
$ vllm serve casperhansen/llama-3.3-70b-instruct-awq \
    --quantization awq_marlin

# 4. Four-bit GPTQ. Same idea, different repository and flag.
$ vllm serve TechxGenus/Llama-3.3-70B-Instruct-GPTQ \
    --quantization gptq_marlin

La moitié qui ne rétrécit pas

Quantifier les poids en 4 bits ne quantifie pas le cache clef/valeur. AWQ et GPTQ compressent les poids, et seulement les poids ; le cache reste en 16 bits sauf si vous demandez séparément un cache FP8, ce que la plupart des gens ne font jamais sur un checkpoint 4 bits. C’est la troisième colonne du tableau ci-dessus, et c’est la raison pour laquelle le calcul ci-dessous ne se déroule pas comme on pourrait s’y attendre.

La conséquence se voit le plus facilement sur un seul modèle. Voici Llama 3.3 70B, en 4 bits, à chaque longueur de contexte que propose le configurateur — poids contre cache.

Poids et cache d’un modèle 70B en 4 bits, par longueur de contexte
Contexte Poids Cache clef/valeur Part de cache
4k tokens 35.0 GB 1.3 GB 3 %
8k tokens 35.0 GB 2.5 GB 7 %
32k tokens 35.0 GB 10.0 GB 22 %
128k tokens 35.0 GB 40.0 GB 53 %

La colonne des poids ne bouge jamais — c’est tout l’intérêt de les quantifier. La colonne du cache croît linéairement avec le contexte jusqu’à ce que, sur la dernière ligne, elle dépasse le modèle auquel elle appartient.

À 128k, un Llama 3.3 70B en 4 bits représente 53 % de cache. Vous avez quantifié les poids à un quart de leur taille et la machine dont vous avez besoin a à peine changé, parce que vous avez compressé la partie qui n’était plus le problème. Quiconque dimensionne un déploiement à long contexte à partir du seul chiffre des poids sous-commandera de plus de moitié.

Poussez suffisamment loin, et le 4 bits cesse purement et simplement de gagner. FP8 divise par deux les deux moitiés ; le 4 bits divise par quatre une moitié et laisse l’autre intacte. Il existe donc, pour chaque modèle, une longueur de contexte où les deux se croisent, et elle survient d’autant plus tôt que le modèle est petit — car un petit modèle a peu de poids à économiser, pour la même croissance de cache par token.

Mémoire totale en FP8 face au 4 bits, par modèle et longueur de contexte
Modèle 4k 8k 32k 128k
Llama 3.1 8B8 Md de paramètres · 32 couches · 8 têtes KV 5.24 bits, de 4.3 GB 5.84 bits, de 4.0 GB 9.24 bits, de 2.3 GB 23.0FP8 l’emporte — 18.4 GB
Qwen 3 32B32 Md de paramètres · 64 couches · 8 têtes KV 19.54 bits, de 17.8 GB 20.74 bits, de 17.2 GB 27.64 bits, de 13.8 GB 55.2égalité parfaite
Llama 3.3 70B70 Md de paramètres · 80 couches · 8 têtes KV 41.74 bits, de 39.5 GB 43.14 bits, de 38.8 GB 51.74 bits, de 34.5 GB 86.34 bits, de 17.2 GB

Chiffres en gigaoctets, pour le plus léger des deux formats, avec le perdant indiqué en dessous. Lisez de gauche à droite et observez l’avantage de la colonne 4 bits s’amenuiser à mesure que le contexte grandit.

La dernière ligne garde son avance partout, car 70 milliards de paramètres représentent un poids considérable à économiser. La ligne du milieu se termine à égalité parfaite : à 128k, Qwen 3 32B coûte exactement le même prix dans les deux formats, et vous choisiriez le FP8 pour la qualité. Et la première ligne s’inverse complètement at 128k, où le 4 bits demande plus de mémoire que le FP8 tout en étant le moins fidèle des deux. Cette combinaison — plus de mémoire et une sortie moins bonne — est l’erreur de quantification la plus courante que nous observons, et elle est invisible si vous ne regardez jamais que la taille du fichier de poids.

Ce que votre carte peut réellement faire

FP8 est d’abord une fonctionnalité matérielle avant d’être logicielle. Une carte dont les tensor cores ne le prennent pas en charge chargera quand même un checkpoint FP8 — la stack déballe les poids en 16 bits avant la multiplication — mais vous ne conservez que le gain sur le téléchargement, sans aucun gain de vitesse, et un cache FP8 ne vous est pas du tout accessible. Le 4 bits, c’est l’inverse : il fonctionne partout, car les poids sont de toute façon déballés en 16 bits avant le calcul.

Cartes du catalogue par génération, et leur prise en charge de FP8
Génération Cartes que nous louons FP8
Ampere NVIDIA RTX A6000 48GB, NVIDIA A100 PCIe 40GB, NVIDIA A100 PCIe 80GB, NVIDIA A100 SXM4 80GB Aucune en matériel — déballé en 16 bits
Ada Lovelace NVIDIA L4 24GB, NVIDIA RTX 4090 24GB, NVIDIA L40S 48GB Dans les tensor cores — poids et cache
Hopper NVIDIA H100 PCIe 80GB, NVIDIA H100 SXM5 80GB, NVIDIA H200 SXM5 141GB Dans les tensor cores — poids et cache
Blackwell NVIDIA RTX 5090 32GB, NVIDIA B200 SXM6 180GB Dans les tensor cores — poids et cache

Cette colonne décrit le silicium, ce qui n’est pas tout à fait la même question que celle de savoir où le FP8 est une bonne idée. La note du catalogue elle-même, en regard du format, nomme Hopper and Blackwell, et c’est une remarque qui porte sur les piles de service plutôt que sur les cœurs tensoriels : ce sont les générations sur lesquelles les kernels FP8 et les caches FP8 ont eu le plus d’usage et le moins de surprises. Ada Lovelace le fera tourner. Hopper et Blackwell sont là où nous placerions un déploiement qui en dépend.

Sur une carte Ampere, FP8 n’est qu’une économie de téléchargement, rien de plus. Les NVIDIA RTX A6000, NVIDIA A100 PCIe et NVIDIA A100 SXM4 n’ont pas de voie FP8 dans leurs cœurs tensoriels. Si votre plan était de réduire le cache de moitié sur l’une d’elles, cela n’arrivera pas — et les chiffres de mémoire de la colonne FP8 ci-dessus ne sont pas des chiffres que vous pouvez atteindre sur ce matériel. Choisissez la carte et le format ensemble, dans cet ordre.

Encore une chose à savoir avant de choisir une carte. Llama 3.3 70B en FP8 à 8k nécessite 81.9 GB, et une carte de 80 GB — entre autres la NVIDIA A100 PCIe — en manque de 1.9 GB. Pas assez pour sauter aux yeux sur un tableur, mais largement assez pour échouer sur la machine. La carte qui s’en sort seule est celle du niveau au-dessus, et le configurateur vous dira laquelle avant de payer plutôt qu’après.

Ce que cela apporte en vitesse

Générer un token signifie lire une fois les poids actifs en mémoire. Moins d’octets par poids signifie moins d’octets à lire, ce qui signifie plus de tokens par seconde — et sur un flux unique sans traitement par lots, cette relation est quasiment linéaire, car la carte n’a rien d’autre à attendre. C’est le même plafond de bande passante mémoire que divise le guide du coût par token, et il est délibérément prudent. Ci-dessous, il est appliqué à un modèle assez petit pour tourner sur chaque machine à une seule carte que nous louons, afin que le format et la carte puissent être lus sur le même tableau.

Débit de génération en flux unique pour un modèle 8B, par carte et par format
Carte Bande passante BF16 / FP16 FP8 4-bit (AWQ, GPTQ)
NVIDIA L424 GB · $125 par mois 300 GB/s ~ 8 tok/s ~ 17 tok/s ~ 34 tok/s
NVIDIA RTX A600048 GB · $286 par mois 768 GB/s ~ 22 tok/s ~ 43 tok/s ~ 86 tok/s
NVIDIA L40S48 GB · $714 par mois 864 GB/s ~ 24 tok/s ~ 49 tok/s ~ 97 tok/s
NVIDIA RTX 409024 GB · $193 par mois 1008 GB/s ~ 28 tok/s ~ 57 tok/s ~ 113 tok/s
NVIDIA A100 PCIe40 GB · $392 par mois 1555 GB/s ~ 44 tok/s ~ 87 tok/s ~ 175 tok/s
NVIDIA RTX 509032 GB · $335 par mois 1792 GB/s ~ 50 tok/s ~ 101 tok/s ~ 202 tok/s
NVIDIA A100 PCIe80 GB · $1,091 par mois 1935 GB/s ~ 54 tok/s ~ 109 tok/s ~ 218 tok/s
NVIDIA H100 PCIe80 GB · $1,469 par mois 2000 GB/s ~ 56 tok/s ~ 113 tok/s ~ 225 tok/s

Llama 3.1 8B sur une carte, un flux à la fois. Chaque machine listée le contient dans les trois formats, si bien que les lignes sont comparables aussi bien horizontalement que verticalement — et le ratio entre les trois colonnes est le même sur chaque ligne, car il est fixé par les octets par poids et rien d’autre.

Deux précautions pour lire ce tableau. La première est qu’il décrit une seule requête à la fois, et presque personne ne sert une seule requête à la fois : avec le traitement par lots continu, les poids sont lus une seule fois pour tout le lot, si bien que c’est l’arithmétique plutôt que la mémoire qui devient la limite, et l’écart entre les colonnes se resserre. La seconde est que la déquantification a un coût. Les poids en 4 bits doivent être décompressés avant d’être multipliés, et sur un petit modèle à faible taille de lot, cette décompression peut absorber une part visible de ce que la lecture réduite vous a fait gagner. La direction du tableau est fiable ; les multiples exacts ne sont pas une promesse.

Ce que cela vous coûte

C’est la partie du sujet où il faut se méfier des chiffres assurés, y compris les nôtres. L’erreur de quantification dépend bien davantage du modèle que de la méthode, et les comparaisons publiées se contredisent entre elles parce qu’elles mesurent des modèles différents sur des tâches différentes. Ce que l’on peut dire honnêtement, c’est la tendance générale.

FP8 est assez proche pour ne pas prêter à controverse. C’est toujours un format à virgule flottante — un exposant et une mantisse, avec moins de bits pour chacun — et non la grille d’entiers sur laquelle un checkpoint 4 bits doit être mappé avec des échelles par groupe. C’est pourquoi il se dégrade si progressivement, et pourquoi il ne nécessite aucune passe de calibration. La plupart des équipes l’adoptent sans faire d’évaluation, et la plupart s’en sortent bien.

Le 4 bits est un compromis réel, et il ne joue pas de façon uniforme. Le score moyen aux benchmarks bouge généralement très peu. Ce qui bouge, c’est la traîne : les longues chaînes de raisonnement, le calcul exact, les langues rares, les formats de sortie stricts. Un modèle qui obtient toujours un bon score sur une suite à choix multiples peut se mettre à fermer incorrectement du JSON.

Les modèles plus gros l’absorbent mieux. Le 4 bits sur un 70B est un déploiement courant. Le 4 bits sur un 8B, dont chaque paramètre porte davantage d’information, est là où la dégradation se remarque — et, d’après le tableau ci-dessus, là où il rapporte le moins.

Les données de calibration comptent plus que le nom de la méthode. AWQ et GPTQ compressent tous deux par rapport à un corpus d’échantillon. Un checkpoint calibré sur de la prose anglaise et utilisé pour du code sera moins bon que ce que la méthode mérite, et aucun tableau de benchmark ne vous le dira.

Ce qui mène à la seule recommandation de cette page qui ne relève pas de l’arithmétique : faites tourner les deux. Vous louez une machine avec accès root et rien n’y est facturé au compteur, donc servir deux fois le même modèle sur deux ports et y envoyer vous-même une centaine de prompts coûte une soirée et tranche la question pour votre usage plutôt que pour celui de quelqu’un d’autre. C’est une réponse nettement meilleure que n’importe quel tableau, celui-ci compris — et c’est pourquoi nous préférons vous montrer la formule plutôt qu’un score.

Testez dans l’ordre le moins coûteux. Commencez par le BF16 s’il tient, car c’est la référence dont vos autres essais ont besoin. Passez ensuite au FP8 — même checkpoint, une seule option, rien à télécharger. Ne recourez à un checkpoint en 4 bits que lorsque les deux précédents ont été écartés faute de mémoire, et dans ce cas, comparez-le à l’essai FP8 plutôt qu’à vos attentes.

Quelle machine cela implique

La raison pour laquelle tout cela compte, c’est la facture. Voici la machine la moins chère de notre catalogue qui contient chaque modèle entier à 8k de contexte, dans chacun des trois formats — entier signifiant sur une seule carte, sans le répartir, car un modèle réparti sur plusieurs cartes fait entrer l’interconnexion en jeu, et c’est un autre guide.

Machine la moins chère contenant chaque modèle en entier, par format
Modèle BF16 / FP16 FP8 4-bit (AWQ, GPTQ)
Llama 3.1 8B NVIDIA L4$125 par mois · exige 19.5 GB NVIDIA L4$125 par mois · exige 9.8 GB NVIDIA L4$125 par mois · exige 5.8 GB
Qwen 3 32B NVIDIA A100 PCIe$1,091 par mois · exige 75.9 GB NVIDIA RTX A6000$286 par mois · exige 37.9 GB NVIDIA L4$125 par mois · exige 20.7 GB
Llama 3.3 70B 4 × NVIDIA B200 SXM6$11,790 par mois · exige 163.9 GB 4 × NVIDIA H200 SXM5$8,405 par mois · exige 81.9 GB NVIDIA RTX A6000$286 par mois · exige 43.1 GB

À 8k de contexte, sur les machines que nous louons réellement. Quand une cellule nomme plusieurs cartes, il s’agit du plus petit nœud dans lequel la carte est livrée, et non d’un modèle réparti : les cartes les plus grosses sont vendues par quatre et par huit, donc le moyen le moins cher d’éviter de répartir un 70B en pleine précision est d’en acheter quatre et de n’en utiliser qu’une seule. C’est exactement la facture que la quantification existe pour éviter.

Lisez la ligne du milieu horizontalement : $1,091 face à $125, soit environ 9×. Le même Qwen 3 32B, le même contexte de 8k, la même carte unique et le même accès root — et un seul format numérique qui les distingue. C’est tout l’argument commercial de la quantification, et c’est aussi pourquoi cela vaut une soirée de mesures plutôt qu’un après-midi de lecture.

Deux réflexes font la différence entre bien utiliser ce tableau et se faire piéger par lui. Dimensionnez au contexte que vous ferez réellement tourner, pas au maximum du modèle — le second tableau de cette page montre ce qui arrive à ceux qui confondent les deux. Et vérifiez le format par rapport à la carte avant de commander, pas après : NVIDIA RTX A6000, NVIDIA A100 PCIe et NVIDIA A100 SXM4 ne peut pas vous donner les chiffres du FP8, quelle que soit l’option que vous passiez. Le configurateur indique la mémoire requise et si elle tient sur une seule carte, pour chaque nœud et chaque format, avant tout paiement. Si ce que vous évaluez, c’est la location par rapport au paiement d’une API au jeton, ce seuil de rentabilité est calculé séparément, et la quantification le déplace largement en faveur du matériel.

Vérifiez le format et la machine ensemble.

Le configurateur indique ce dont votre modèle a besoin à chaque précision, et quels nœuds le contiennent sur une seule carte, avant que vous ne payiez quoi que ce soit.

Se connecter

Console, factures et accès hors bande.

Pas encore de compte ?

Il n’y a pas d’inscription séparée. Votre compte est créé au moment où vous passez votre première commande — vous choisissez l’e-mail et le mot de passe à l’étape de paiement, et la console est ouverte au moment où la machine l’est.

Configurer un serveur

Language