大模型温度为 0 仍会变?Thinking Machines 称真凶在动态批次
Thinking Machines AI 发文剖析大模型推理不可复现的根源。业内常将「温度为 0 仍给不同结果」归咎于 GPU 浮点计算并发冲突,但团队发现前向传播本身并无原子累加,真正的罪魁祸首是推理服务因动态批处理缺乏「批次不变性」,输出会因与其他并发请求凑批而改变。

如果你做过大模型开发,大概率踩过这个坑:把温度调到 0,按理说模型每一步都选概率最高的那个字,两次输入一模一样的问题,结果输出还是差了几个字。
大家通常把这事推给硬件:GPU 都是成千上万个核心在并行算,浮点数加法又不满足结合律,谁先算完谁后算完,误差一累积,结果自然不一样。这个「并发加浮点误差」的解释,几乎成了圈子里的公认常识。
Mira Murati 创立的 Thinking Machines Lab 发了第一篇深度研究博客。研究员 Horace He 站出来反驳了这种主流假设:大模型推理的不确定性,根本不是并发和原子加法的锅,而是 GPU 核函数被编排调度的方式出了问题。
别再甩锅给 GPU 并发了
文章先做了一个很有说服力的实验。你在 GPU 上用 bfloat16 跑一千次完全相同的矩阵乘法,结果是完全按位对齐、一模一样的。按理说矩阵乘法也是浮点数运算,GPU 也开满了并发,为什么它就绝对可复现?
Horace He 指出,浮点数加法确实破坏了结合律,比如小数字和大数字相加会丢失精度。但真正的关键在于:现代大模型在前向传播时,压根就不怎么用会导致随机竞争的原子加法。
因为批处理的维度足够大,每个核心自己算自己的向量,根本不需要互相争抢写入同一个内存位置。大家在用 vLLM、SGLang 或者商业 API 时遇到的输出随机,并不是单个核函数本身不可控,而是在整个推理服务拼接、调度这些核函数时,引入了微小顺序差异。
团队认为,只要更精细地控制这层编排架构,完全可以彻底干掉推理阶段的随机性,拿到 100% 可复现的结果。
让强化学习训练少走弯路
除了能让科学研究和企业调用时结果更稳定,Thinking Machines Lab 还点出了一个更大的算盘:强化学习。
在用强化学习训练大模型时,系统需要根据模型的回答给出奖励。如果模型自己每次输出都在微调漂移,给出的训练信号就会混入大量噪声。
Horace He 提到,让模型生成可复现的回答,能让整个强化学习过程变得更平滑。此前有外媒报道,Thinking Machines Lab 拿了 20 亿美元种子轮融资,估值高达 120 亿美元,他们向投资人画的蓝图之一,正是用强化学习为企业定制模型。
这家汇聚了多位前 OpenAI 核心员工的初创团队,计划把这个名为「Connectionism」的博客系列持续更新下去,公开更多研究代码。
为什么重要
在我们看来,这篇博客最聪明的地方,在于抓住了大模型走向工业化落地时最让人头疼的一个底层暗礁。普通用户用 ChatGPT 聊天不在乎几个字的差异,但在金融合规、代码验证、复杂数学证明这些严肃场景里,不可复现就是不可商用。谁要是能先在推理引擎层把确定性做扎实,谁就能在企业级私有化部署里拿到巨大优势。
对模型训练本身来说,这也是在给后训练铺路。现在行业竞赛的大方向都在往强化学习和长思考链条走,底层的数值漂移越少,训练的方差就越小,省下来的都是真金白银的算力开销。
不过,把理论上的确定性变成生产环境里的高吞吐系统,向来不是一回事。行业为了榨干 GPU 性能,大量使用动态批处理和推测解码,这些优化手段天然都在给执行顺序加扰动。Thinking Machines Lab 想要在不牺牲推理速度的前提下锁死确定性,隐患就在于会不会付出昂贵的吞吐代价。但无论如何,打破行业盲信的伪常识,这第一步迈得足够硬核。
来源 (2)
- thinkingmachines.ai(在新标签页打开)原文thinkingmachines.ai
- techcrunch.com(在新标签页打开)报道techcrunch.com