我看到的一个关于 LLM 的非常常见的问题是,为什么不能通过设置固定的随机数种子来让它们对相同的提示做出相同的响应。
和许多人一样,我之前一直被引导相信,这是由于浮点运算的非结合性,其中(a + b) + c ≠ a + (b + c)
,再加上并发 GPU 上不可预测的计算顺序。这篇新论文称之为“并发 + 浮点假设”:
一种常见的假设是,浮点非结合性与并发执行的某种组合会导致不确定性,这取决于哪个并发核心首先完成。我们将其称为LLM推理不确定性的“并发+浮点”假设。
然后它令人信服地论证说这不是问题的核心,因为“在 LLM 的典型前向传递中,通常不存在单个原子加法。”
那么为什么 LLM 通常都是不确定的呢?
[…]几乎所有 LLM 推理端点都不确定的主要原因是负载(以及批次大小)的变化不确定!这种不确定性并非 GPU 独有——由 CPU 或 TPU 提供服务的 LLM 推理端点也会存在这种不确定性。
本文附带的thinking-machines-lab/batch_invariant_ops代码通过提供不变核的 PyTorch 实现解决了这个问题,并演示了它们在 vLLM 下确定性地运行 Qwen3-8B。
这篇论文是 Thinking Machines 人工智能实验室的首篇公开成果。该实验室由 OpenAI 前首席技术官(曾担任过几天的临时首席执行官)Mira Murati 于 2025 年 2 月创立。它与理查德·费曼的最后一家雇主Thinking Machines 公司(正如Danny Hillis 在其精彩文章中所描述的)无关。
来源: Hacker News
标签: ai 、 pytorch 、 generative-ai 、 llms 、 qwen
原文: https://simonwillison.net/2025/Sep/11/defeating-nondeterminism/#atom-everything