Temperature=0为什么不等于确定性输出:大模型推理非确定性的完整技术解析
一个被广泛接受的观点是:只要将大模型的Temperature参数设为0,就能获得确定性的输出。这个直觉看起来很合理——Temperature=0意味着贪婪采样,模型总是选择概率最高的那个token,没有随机性,结果应该可复现。 ...
一个被广泛接受的观点是:只要将大模型的Temperature参数设为0,就能获得确定性的输出。这个直觉看起来很合理——Temperature=0意味着贪婪采样,模型总是选择概率最高的那个token,没有随机性,结果应该可复现。 ...
当你向ChatGPT连续两次提出相同的问题,大概率会得到两个不同的回答。很多人知道这是温度参数在作怪,但把温度调到0就能保证确定性吗?答案是否定的。即使temperature=0,OpenAI的API仍然可能返回不同的结果,而你自己部署的开源模型在vLLM或SGLang上推理时,输出同样不稳定。 ...
2019年某天凌晨三点,一位研究生的模型训练在运行72小时后突然输出全NaN。损失函数从平稳下降变成无穷大,权重变成NaN,一切归零。这是深度学习开发者的噩梦——数值不稳定。这不是偶然,而是浮点数表示固有的物理限制在特定条件下的必然爆发。 ...
你正在训练一个Transformer模型,Loss曲线稳定下降,一切看起来都很顺利。然后你决定启用混合精度训练来加速——只需一行代码.half()。100步之后:Loss: NaN。训练彻底崩溃。 ...
打开浏览器的开发者工具,在控制台输入0.1 + 0.2。结果不是0.3,而是0.30000000000000004。 这不是JavaScript的bug。Python、Java、C、Rust——几乎所有主流语言都会给出同样的答案。你的编程语言没有错,错的可能是你对计算机如何处理数字的直觉。 ...