
相信每个深度使用过 ChatGPT 的人都有过这种“灵异体验”:你输入一段复杂的 Prompt,为了追求严谨,特意把 Temperature(温度) 设为 0,甚至反复微调。但当你原封不动地把同一个问题扔给它第二次时,AI 还是给出了一个不同的答案。
这难道是 AI 产生了“自由意志”?还是它在偷偷产生“幻觉”?
OpenAI 前 CTO Mira Murati 领衔的 Thinking Machines Lab 最近发表了一篇重磅论文 ——《击败 LLM 推理中的不确定性》(Defeating Nondeterminism in LLM Inference)。它撕开了 AI 随机性的假象,抓到了那个潜伏在硬件深处的“隐形元凶”。
在揭开真相前,我们要先理解计算机世界的两个固有属性。
在小学数学里,$(a+b)+c$ 永远等于 $a+(b+c)$。但在计算机的**浮点数(Floating-point)**运算中,这一定律失效了。
因为内存有限,计算机存储小数时会进行“四舍五入”。
想象一下: 你用一把精度只有公分的尺子,先量 101 大楼的高度,再加上一张 A4 纸的厚度,那张纸会被直接忽略。但如果你先加一万张纸,再加到大楼上,结果就变了。计算顺序的微小差异,会产生数值上的蝴蝶效应。
现在的 AI 全靠 GPU 运行。GPU 像是一个拥有数万名工人的超级工厂,大家同时开工(平行运算)。过去我们认为,由于工人汇报结果的先后顺序不可控,导致计算顺序随机,最终由于“迷思一”的精度损失,让答案变得不可预测。
但论文指出:这只是表象,真正的元凶藏得更深。
论文揭示了一个极具启发性的概念:批次不变性(Batch Invariance)的缺失。
我们可以把你的提问想象成一名“乘客”,而 AI 服务器是一个“公交总站”。为了追求效率,服务器不会每来一个乘客就发一班车,它会把同一时间段的提问打包,凑满一车再出发。这车乘客的数量,就是 Batch Size(批次大小)。
惊人的真相是:你搭乘的“车型”(批次大小),直接决定了计算路径。
为了极致的性能,GPU 会针对不同规模的批次调用不同的底层算法(Kernels)。处理 128 人的算法路径,和处理 1 人的算法路径,其内部的计算顺序完全不同。
最终,原本该输出“纽约”的 AI,可能因为这一丁点数值漂移,变成了输出“皇后区”。你的答案之所以变了,是因为有一群陌生人悄悄和你搭了同一班车。
既然找到了病根,药方也就清晰了:无论乘客多少,永远只开同一种型号的公车。
Thinking Machines Lab 提出了“批次不变性”方案,重新改造了 LLM 的核心组件:
实验结果令人震撼:
针对同一个问题生成 1,000 次回答,传统模型即便 Temp=0 也会产生 80 个版本;而换上改造后的核心,1,000 次回答分毫不差,完美复现。
有人会说,AI 有点随机性不是更有趣、更有创意吗?
但在严肃的生产力场景中,可预测性(Predictability)就是生命线:
这篇论文的意义在于,它标志着 AI 正在从“炼丹术”走向真正的“严谨工程”。
它告诉我们,那些看似神秘的“灵异现象”,背后都有坚固的数学和物理逻辑。当我们真正理解了系统,我们就能驾驭它。
下次当你发现 AI 的答案变了,别担心它产生了意识,它只是在那一瞬间,和世界上的另一些灵魂“拼了个车”。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。