← Blog

Chaque token par seconde est de l'argent

Sur la plupart des plateformes, une dépendance lente est un produit lent. Sur la nôtre, c'est le revenu de quelqu'un. Les hôtes sont payés par token produit par leur machine : le débit se convertit directement en euros par heure — et une carte qui décode à moitié vitesse gagne moitié moins avec la même électricité, la même usure et les mêmes heures d'indisponibilité pour tout le reste.

Cela change notre façon de traiter la performance. Ce n'est pas un « nice-to-have » pour quand il y aura le temps. C'est le nombre sur lequel nos hôtes sont payés, donc il est mesuré avant d'être livré.

Le build du moteur est choisi au benchmark, pas au numéro de version

Chaque hôte fait tourner le même moteur d'inférence, épinglé par digest dans mahout et vérifié au téléchargement. La politique évidente est de suivre la dernière release amont. Nous ne le faisons pas : « la plus récente » est une supposition sur la performance, et nous pouvons simplement vérifier.

Un build candidat est benchmarké contre l'actuel sur de vraies cartes grand public, même modèle, mêmes flags, et l'épingle ne bouge que si le candidat gagne. Les notes de release d'un grand projet ne peuvent pas vous dire fiablement ce qui est arrivé à un backend sur une classe de matériel, et l'écart entre deux builds à quelques mois d'intervalle peut être de plusieurs fois le débit, dans un sens ou dans l'autre.

L'outil qui fait la comparaison est livré dans le dépôt mahout : c'est reproductible, pas une affirmation.

Le décodage spéculatif, là où les poids le permettent

Certains modèles ouverts sont publiés avec une petite tête de prédiction qui devine les deux tokens suivants depuis l'état caché du modèle. Le moteur vérifie ces hypothèses en une seule passe ; quand elles sont justes, plusieurs tokens coûtent à peu près le prix d'un. Sur un build sain, cela vaut plus de trois fois le débit simple — le plus grand levier disponible sur du matériel grand public aujourd'hui.

C'est une propriété des poids, pas un réglage : ça s'applique aux builds du catalogue qui livrent une telle tête. Là où elle existe, mahout s'en sert.

La bonne carte, sans rien configurer

Beaucoup de machines d'enthousiastes ont deux GPU. mahout choisit celui qui a le plus de mémoire libre, dit au moteur d'utiliser exactement cette carte, et affiche son choix avant de télécharger un seul octet. Mémoire libre plutôt que totale : si vous utilisez déjà la grosse carte, il prend discrètement l'autre au lieu de vous la disputer.

Et les choses ennuyeuses et décisives

Un cache KV quantisé, qui divise par quatre environ le coût d'une longue conversation. Flash attention activée. Contexte et concurrence réglés par build plutôt que globalement. Et surtout, des builds dimensionnés pour que le modèle reste entièrement sur le GPU — un modèle qui déborde en mémoire système décode plusieurs fois plus lentement, et aucune astuce ailleurs ne rattrape ça.

Ce que nous ne ferons pas

Compiler nos propres binaires moteur. Nous l'avons mesuré : un build compilé localement de la même release tombe à environ dix pour cent de l'archive officielle. Dix pour cent ne valent pas de devenir le distributeur d'un binaire non signé qui tourne sur les ordinateurs des autres — nous livrons l'artefact amont et dépensons l'effort à le choisir.

Et nous ne vous citerons pas un débit pour votre matériel. Lancez mahout bench et obtenez un chiffre mesuré, signé sur votre propre machine. La référence complète est dans la base de connaissances.

Reference

Read next

a GPU died mid-sentence. the sentence finished.

Consumer hardware disappears without notice — someone sits down at their PC, a breaker trips, Wi-Fi drops. Our streams now survive that: another machine picks the answer up mid-word, and the dead segment is billed to nobody.

one model, every card: how a 27b runs on 8 gb

Qwen3.8 27B ships in five builds, from Q5_K_M on a 24 GB card down to IQ2_XXS on 8 GB. Why we split models from builds, what quantization actually costs, and how a quantized KV cache doubled our context overnight.

Model catalogue · Knowledge base · Run a GPU