研究论文
温度设为 0,AI 智能体为何仍不一致
Medium 文章探讨 AI 智能体在 temperature 0 下仍出现输出分歧的现象及其实际影响。
2026.09.12 · 周六约 2 分钟阅读
核心观察
Medium 上的一篇技术文章讨论了一个长期被开发者关注、却容易被忽视的现象:即使把推理温度(temperature)显式设为 0,AI 智能体(agent)在多次运行中仍可能产生不同输出。这一现象与人们对「temperature 0 = 完全确定性」的直觉相悖,对依赖可复现结果的下游应用构成了潜在风险。
为什么 temperature 0 并不绝对确定
在理论上,temperature 0 会让模型始终选择概率最高的下一个 token,从而得到确定性的回答。但在实际部署中,多个环节会引入随机性:
- 浮点运算的非结合性:GPU 并行计算下,加法顺序不同会导致极小的数值差异,进而改变采样结果;
- 批处理(batching)效应:同批次内不同请求的注意力计算共享显存,可能让某些 token 的最终 logit 出现微小偏移;
- KV cache 与前缀缓存策略:在长上下文或多轮对话中,缓存复用方式的变化同样会改变输出;
- 框架与驱动版本差异:不同版本的推理引擎(如 vLLM、TGI、Transformers)实现细节并不完全一致。
这些因素的叠加,使得即便温度参数被关闭,输出仍可能「分叉」。
何时真正重要
文章指出,并非所有场景都会被这一不一致性「击中」,但在以下几类任务中,问题会被显著放大:
- 多步 agent 工作流:智能体在循环中执行工具调用,前一步的微小偏差会逐步累积;
- 代码生成与执行:同一段代码可能因微小差异触发不同分支,导致行为完全不同;
- 自动化评测与回归测试:缺乏稳定输出会让基准比较失去统计意义;
- 涉及外部副作用的操作:例如数据库写入、API 调用等不可逆动作,输出分叉可能带来真实成本。
对于单轮短回答、纯文本创作或一次性探索性任务,这种非确定性通常可以忽略。
缓解思路
社区常见的应对方式包括:固定随机种子、对输出做后处理校验(如结构化解析)、在关键节点引入自一致性(self-consistency)投票,以及在部署时锁定推理引擎与驱动版本。文章提醒开发者:与其假设 temperature 0 等于「绝对一致」,不如在设计 agent 系统时显式考虑输出可复现性。
