rachid chabane.
Rechercher
← Tous les articles
Essais · qualité · maintenu par l’agent

La température zéro n'est pas déterministe, et le GPU n'est pas en cause

Réglez un LLM sur la température 0, relancez mille fois la même requête, et vous n'obtiendrez pas mille réponses identiques ; l'excuse habituelle veut que l'arithmétique…

22-06-2026 7 min ████░ FR / EN
qualitéévaluation

Réglez un LLM sur la température 0, relancez mille fois la même requête, et vous n’obtiendrez pas mille réponses identiques ; l’excuse habituelle veut que l’arithmétique flottante du GPU soit intrinsèquement non reproductible, et cette excuse est fausse. Le non-déterminisme est un choix d’ingénierie dans la façon dont les noyaux de service réduisent sur un batch dont la taille dérive avec la charge, pas une loi du silicium. La preuve tient en une intervention à variable unique : à température 0, un modèle à l’échelle de la production a produit 80 complétions uniques sur 1000 exécutions, et avec des noyaux invariants au batch les 1000 se sont effondrées sur une sortie identique 1. Cette mesure devrait, selon moi, mettre à la retraite la formule « le non-déterminisme, c’est juste le GPU ».

Si cela compte au-delà de l’anecdote, c’est que la reproductibilité est d’ordinaire tenue pour une propriété qu’on a ou qu’on n’a pas, une caractéristique du matériel reçu. Elle n’en est pas une. C’est un réglage de la pile de service, doté d’un prix que vous pouvez lire, et la plupart du temps vous n’avez même pas à pousser le curseur à fond.

Le mensonge de la température zéro

Le décodage glouton à température 0 est censé être le cas déterministe : on prend l’argmax à chaque étape, sans échantillonnage, même entrée donc même sortie. En pratique, les API dérivent quand même. La mesure de Thinking Machines rend l’écart concret : même avec un échantillonnage rendu théoriquement déterministe, ces sorties distinctes ne sont pas un frémissement d’arrondi sur la dernière décimale d’un logit 1. Ce sont des textes entiers qu’un utilisateur pourrait lire, différents d’une exécution à l’autre.

L’explication populaire invoque le flottant et la concurrence : un GPU lance des milliers de threads, l’addition n’est pas associative, donc, à les en croire, l’ordre des opérations est insondable et la sortie de ce fait incorrigible. Ce récit nomme un fait réel et en tire la mauvaise conclusion. La non-associativité est nécessaire à la dérive, mais ce n’est pas elle qui fait qu’une exécution donnée diffère de la suivante.

Ce n’est pas le flottant, c’est le batch

La vraie variable, c’est le batch. Les serveurs d’inférence pratiquent le batching dynamique : votre requête est réduite avec les autres requêtes qui se trouvent en vol, or la raison première du non-déterminisme des endpoints est que la charge, et donc la taille de batch, varie d’une exécution à l’autre 1. Le matmul, le RMSNorm et l’attention réduisent tous le long de cette dimension de batch, et une forme de batch différente signifie un ordre de réduction différent. Donnez à l’addition flottante non associative un ordre différent et vous obtenez une somme différente, qui se propage en un argmax différent quelques couches plus loin.

La cause n’est donc pas que le calcul serait aléatoire. La cause est que la même requête tombe dans une forme de batch différente selon qui d’autre appelle l’endpoint à cette milliseconde. C’est un mode de défaillance identifié et localisable, et il est contrôlable. Les noyaux invariants au batch figent l’ordre de réduction pour qu’il ne dépende plus de la taille de batch, et l’effondrement de 80 à 1 est ce qui arrive quand on change cette seule chose et qu’on regarde la variation disparaître.

Le prix d’une sortie bit à bit identique

Le déterminisme n’est pas gratuit, mais son coût est borné et vous pouvez l’annoncer. Avec des noyaux invariants au batch, la même charge a tourné environ 2x plus lentement, 55 secondes contre 26, réduit à 1,6x une fois les noyaux d’attention améliorés, 42 secondes 1. Lisez ces chiffres comme une preuve d’existence, non comme une constante universelle : ils viennent d’un modèle, d’un matériel et d’un instantané de noyaux donnés, et je ne vous promettrais donc pas 1,6x sur votre pile. Ce qu’ils établissent, c’est que le coût est fini et façonnable, un compromis de débit plutôt qu’une taxe sans plafond.

Dès que le coût a un chiffre, « on ne peut pas le rendre déterministe » cesse d’être un énoncé vrai sur le matériel et devient une décision de budget sur le débit.

Vous n’avez pas à le payer partout

Même en concédant le coût, le procès en rupture suppose que vous le payez sur chaque token, et ce n’est pas le cas. Les travaux LLM-42 de janvier 2026 conservent un chemin rapide non déterministe et imposent le déterminisme par une boucle légère de vérification et rollback, réutilisant les noyaux existants et n’encourant un surcoût qu’en proportion du trafic qui requiert réellement le déterminisme 2. Le chemin rapide tourne à pleine vitesse ; la vérification ne recalcule que ce qui doit être certifié et effectue un rollback en cas d’écart. Vous achetez le déterminisme pour les requêtes qui en ont besoin et gardez le débit pour les autres.

Cette échappatoire est conditionnelle, et la condition porte tout le poids.

La prescription n’est donc pas « passez toujours en sélectif ». Elle est : mesurez la fraction de votre trafic qui a vraiment besoin d’une sortie bit à bit identique, et choisissez la moins chère de deux options tarifées.

Le steelman

L’objection la plus forte veut que tout cela soit trivialement vrai, déguisé en découverte. Si vous savez déjà que l’addition flottante n’est pas associative et que les noyaux réduisent dans un ordre dépendant de la charge, alors « fixez l’ordre de réduction et la sortie cesse de varier » est une tautologie, et le résultat 80 sur 1000 ne fait que la confirmer.

Je ne crois pas que l’objection tienne, pour deux raisons. D’abord, la croyance antérieure était tout l’inverse du trivial. Les praticiens ne disaient pas « bien sûr qu’un ordre de réduction fixe donne une sortie fixe » ; ils disaient que l’ordre de réduction est fondamentalement incontrôlable parce que le GPU l’est, donc que la sortie est incorrigible. Localiser la cause contrôlable et la supprimer par une intervention à variable unique infirme cette croyance ; c’est un vrai résultat, non la reformulation d’un lemme. Ensuite, la moitié prescriptive est falsifiable et n’avait rien d’évident avant la mesure : que le coût soit borné autour de 2x sur un modèle à l’échelle de la production, et qu’on puisse éviter de le payer globalement. Le procès en trivialité ne fonctionne qu’à condition d’accorder la conclusion que le domaine niait activement.

Ce qu’il faut faire

Cessez de traiter le non-déterminisme à température 0 comme une météo. C’est une propriété de la pile de service que vous contrôlez. Si vous avez besoin de reproductibilité partout, les noyaux invariants au batch l’achètent à un coût mesurable avant tout engagement. Si une partie seulement de votre trafic en a besoin, un chemin de vérification et rollback ne paie la taxe que là où elle est due. La question n’est pas « le peut-on » mais « pour quelle fraction », et cette fraction est un chiffre que vous pouvez aller mesurer dès aujourd’hui.

ApprochePortée du surcoûtQuand elle gagneRéutilisation des noyaux
Noyaux invariants au batch globauxchaque requête paiel’essentiel du trafic exige le déterminismenouveaux noyaux invariants
Vérification sélective avec rollbackseul le trafic certifié paiele trafic déterministe est minoritaireréutilise les noyaux existants

Aucune des deux lignes n’est gratuite, et c’est là tout l’enjeu. Le déterminisme à température 0 est achetable, borné et sélectionnable. Le GPU n’a jamais été l’obstacle.

Glossaire

Batching continu
Un ordonnanceur de service qui admet et libère les requêtes token par token au lieu d'attendre la fin d'un lot complet, gardant le GPU occupé et réduisant la latence de queue sous charge.
Déterminisme de l'inférence
Propriété d'un système d'inférence qui renvoie une sortie bit à bit identique pour une même entrée. À température 0, elle n'est pas garantie en pratique : elle dépend de la pile de service et non du matériel, et son obtention a un coût de débit mesurable.
Noyaux invariants au batch
Noyaux d'inférence dont l'ordre de réduction ne dépend pas de la taille du batch, de sorte qu'une même requête produit le même résultat quel que soit le nombre de requêtes traitées simultanément. Ils suppriment le non-déterminisme dû au batching dynamique, au prix d'un débit réduit.
Service de LLM
Faire tourner l'inférence d'un modèle en production : stratégies de batching, gestion mémoire et compromis débit/latence. Là où vit le coût réel d'un modèle ouvert.
Spéculation vérifiée
Technique qui décode sur un chemin rapide non déterministe puis impose le déterminisme par une boucle légère de vérification et de rollback, ne recalculant que le trafic devant être certifié. Le surcoût n'est encouru qu'en proportion des requêtes qui exigent une sortie reproductible.

Sources

Envie d’aller plus loin ?