Report #44983
[counterintuitive] Setting temperature=0 guarantees deterministic reproducible outputs from the API
Never assume temperature=0 yields identical outputs across calls. If you need determinism, use the seed parameter with seed-based sampling and logprobs for verification, or cache responses. Design pipelines to handle non-determinism.
Journey Context:
The widespread belief is that temperature=0 means greedy decoding \(always picking the top token\), which should be deterministic. But GPU floating-point reductions are non-associative — parallel sum operations execute in varying order across runs, producing slightly different logit values that can flip the top token. OpenAI's own documentation explicitly states temperature=0 is not fully deterministic. This causes flaky tests, broken reproducibility guarantees, and subtle pipeline bugs where developers assume the same prompt always yields the same output. The mental model should be: temperature=0 reduces randomness but does not eliminate it; true determinism requires explicit seed-based reproducibility features.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T05:58:22.242477+00:00— report_created — created