Données · version originale (anglais) du 23 octobre 2026, traduite le 24 octobre 2026
Vitesse des LLM en local : nos estimations face à 52 vrais bancs d’essai
Chaque fiche machine du site affiche un nombre de jetons par seconde pour chaque modèle. Ce sont des estimations, pas nos propres essais : nous avons donc cherché 52 résultats publiés pour mesurer notre erreur. En bref : nous nous trompions beaucoup sur les modèles MoE.
Voici ce que nous avons trouvé, ce que nous avons changé et où nous restons imprécis.
Pourquoi le simple calcul par la bande passante se trompe-t-il?
La règle habituelle pour les LLM en local est la suivante. Pour générer un jeton, la machine doit lire une fois chaque poids actif en mémoire : les jetons par seconde valent donc à peu près la bande passante mémoire divisée par la taille du modèle. C’est ce que nous utilisions : 0,6 × bande passante ÷ poids actifs, le 0,6 représentant le fait qu’on n’obtient jamais toute la bande passante de la fiche technique.
Pour les gros modèles denses, c’est le bon ordre de grandeur, et même un peu pessimiste. Llama 3.3 70B sur Strix Halo mesure 4,8 tok/s, et nous annoncions 3,6. Les versions récentes de llama.cpp atteignent plutôt 80 à 90 % de la bande passante maximale sur les grosses lectures, pas 60 %.
Le vrai problème vient des modèles à mélange d’experts (MoE). Un modèle comme gpt-oss-120b ne touche qu’environ 5B paramètres par jeton : la formule voit une lecture minuscule et prédit des vitesses énormes. Sur une RTX PRO 6000, elle prédisait 397 tok/s pour gpt-oss-120b. La mesure est de 196. Sur un M3 Ultra, gpt-oss-20b était prédit à 257 contre 116 mesurés : plus de 2 fois trop haut.
La formule oublie que chaque jeton a aussi un coût fixe qui ne dépend pas de la taille du modèle : lancement des noyaux GPU, attention et, pour les MoE, routage de chaque jeton vers ses experts. Quand la lecture des poids ne prend qu’une ou deux millisecondes, ce coût fixe pèse lourd. Un GPU plus rapide aide alors peu, car il n’accélère que la partie déjà petite.
Quelle est la nouvelle formule, en termes simples?
temps par jeton = poids actifs ÷ (efficacité × bande passante) + surcoût fixejetons/s = 1 ÷ temps par jeton
Il y a donc deux réglages par plateforme. L’efficacité est la part de la bande passante annoncée réellement obtenue sur les grosses lectures. Le surcoût est le coût fixe par jeton, avec une valeur pour les modèles denses et une plus grande pour les MoE. Nous avons ajusté les deux sur les essais ci-dessous. Pour chaque plateforme, nous avons choisi les valeurs qui minimisent l’erreur en logarithme : un écart de 20 % sur un essai lent compte autant qu’un écart de 20 % sur un essai rapide.
| Plateforme | Efficacité de bande passante | Surcoût, dense | Surcoût, MoE | Essais ajustés |
|---|---|---|---|---|
| NVIDIA GeForce / RTX PRO (CUDA) | 83 % | 1,0 ms | 2,5 ms | 12 |
| DGX Spark / GB10 (CUDA) | 77 % | 0,0 ms | 3,4 ms | 7 |
| AMD Strix Halo (Vulkan / ROCm) | 80 % | 0,1 ms | 5,1 ms | 10 |
| Apple M Pro / Max (Metal / MLX) | 90 % | 1,2 ms | 5,3 ms | 8 |
| Apple M Ultra (Metal / MLX) | 84 % | 1,8 ms | 6,5 ms | 6 |
Quelques constats ressortent. Les cartes NVIDIA ont le plus petit surcoût MoE (2,5 ms) : c’est pourquoi elles gardent l’avantage sur les MoE à peu de paramètres actifs. Apple et Strix Halo paient environ le double, autour de 5 à 6 ms par jeton. Les puces M Ultra perdent aussi un peu d’efficacité face à un M Max à une seule puce, ce qui concorde avec l’observation courante : deux puces fusionnées ne doublent pas tout à fait la vitesse.
Quelle était la précision des estimations, avant et après?
Sur les 43 essais ajustés, l’écart médian est passé de 26 % à 5 %. 37 des 43 sont maintenant à ±15 %, contre 12 avant. Le pire écart est passé de 122 % à 24 %.
Ajuster sur des données puis se noter sur ces mêmes données flatte le résultat. Nous avons donc gardé 9 essais hors de l’ajustement et ne les avons vérifiés qu’après. Sur ceux-là, l’écart médian est passé de 34 % à 10 %, et 7 des 9 sont à ±15 % (l’ancienne formule : 0). Ce jeu de contrôle inclut les essais Ollama de Jeff Geerling avec un modèle 70B sur un Framework Desktop, un Dell GB10 et un M3 Ultra, ainsi que le résultat Strix Halo à l’origine de tout ceci : Qwen3.6 35B-A3B mesuré à 63 tok/s, là où nous annoncions 84,5 et annonçons maintenant 71,5.