HeadlinesBriefing HeadlinesBriefing.com

温度 0 非确定性原因解析

Towards Data Science •
×

2025 年 9 月,Thinking Machines Lab 的 Horace He 及其同事将提示词“Tell me about Richard Feynman”发送给 Qwen3-235B 共 1000 次,温度设为 0,期望得到相同的 1000 token 回答。结果却产生了 80 种不同的完成。前 102 个 token 完全一致;从第 103 个 token 开始,992 次运行继续输出“Queens, New York”,而 8 次输出“New York City”。这种翻转并非由 GPU 线程随机性引起,而是因为核函数的归约顺序随批处理大小变化,使得输出取决于当时有多少其他请求正在处理。

在温度 0 时,模型选择最高 logit 的 token,这在数学上是确定性的,但在浮点运算中并非如此,因为加法不满足结合律。神经网络执行数十亿次这样的求和,因此硬件顺序至关重要。He 等人发现,典型的前向传递不包含原子加法,并在相同输入上返回相同的比特,但许多核函数并非批处理不变。

从数学上讲,设 z₁ 和 z₂ 为两个最大的 logit,其差值 M = z₁ - z₂ ≥ 0。数值噪声通过误差 Δ 改变该差值,仅当 M + Δ < 0 时 argmax 才会翻转。8 个 logit 的差值永远不会翻转;只有接近平局的 token 存在风险。每个 token 的翻转概率约为 p ≈ f(0) · E|Δ| / 2,其中 f(0) 是接近平局的密度,E|Δ| 是预期噪声幅度。

使用批处理不变核后,全部 1000 次 Feynman 完成均完全一致。但该修复牺牲了性能:未优化的确定性版本耗时 55 秒,而默认 vLLM 仅需 26 秒。

来源: Towards Data Science · 由HeadlinesBriefing整理摘要