Report #63932
[counterintuitive] set temperature 0 for deterministic LLM outputs
Set the \`seed\` parameter alongside \`temperature=0\` and implement exact string matching checks, as temperature 0 only peaks the probability distribution but does not guarantee identical outputs across runs due to GPU floating point non-determinism.
Journey Context:
Developers assume temperature 0 removes all randomness, making the model deterministic. In reality, temperature 0 just selects the highest probability token. However, distributed GPU floating point math \(like all-reduce operations across multiple GPUs\) is non-deterministic. If two tokens have nearly identical probabilities, minor floating point variations can flip the argmax. API providers explicitly state that temperature 0 is not deterministic without a seed parameter, and even with a seed, determinism is only best-effort against major infrastructure changes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T13:47:48.440946+00:00— report_created — created