为什么 AI 每次回答都不一样?聊聊 Temperature 与随机性

同样的问题问两遍,AI 给的答案却不同——这不是 bug。一文讲清 Temperature、Top-p 等采样参数是什么,以及什么时候该调高、什么时候该调低。

为什么 AI 每次回答都不一样?聊聊 Temperature 与随机性
编辑部 ·

同一个问题,你问两遍,AI 给的答案却不太一样——很多人以为是 bug 或者「它记性不好」。其实这是设计出来的。背后的关键叫 Temperature(温度)。这篇讲清它是什么、什么时候该调。

根源:模型给的是「概率」,不是唯一答案

回顾一下大模型的工作原理:它在预测下一个词。但它并不是只算出「一个正确答案」,而是给出一整份候选清单和各自的概率

「今天天气真 ___」 → 好(72%)、不错(15%)、冷(6%)、糟糕(3%)…

接下来的关键动作是「从这份清单里挑一个」。如果每次都死板地挑概率最高的,回答就完全固定;如果允许偶尔挑一个概率低点的,回答就有了变化。

Temperature,就是控制「挑得有多大胆」的那个旋钮。

Temperature 怎么理解

  • 温度低(如 0~0.3):几乎总选概率最高的词 → 保守、稳定、可复现,但可能刻板
  • 温度中(如 0.7):兼顾合理与多样 → 大多数聊天的默认档
  • 温度高(如 1.2+):更敢选小概率的词 → 发散、有创意,但也更容易跑偏、胡说

打个比方:温度就像「放飞程度」。低温是严谨的答题者,高温是天马行空的诗人。

还有 Top-p / Top-k

它们是另外两个常一起出现的旋钮,作用是先缩小候选范围,再让温度去挑:

  • Top-k:只从概率最高的 k 个词里挑(比如只看前 40 个)
  • Top-p(核采样):只从「累计概率达到 p」的那批词里挑(比如前 90%)

简单理解:Top-p / Top-k 负责划定候选圈,Temperature 负责在圈里挑得多大胆。 日常调一个 Temperature 通常就够了。

什么时候调低,什么时候调高

调低(0~0.3)—— 要「稳」的场景:

  • 事实问答、查资料
  • 写代码、改 bug
  • 抽取结构化数据(如把文本转成 JSON)
  • 需要每次结果一致、可复现的任务

调高(0.9~1.2)—— 要「花」的场景:

  • 头脑风暴、起名、想创意
  • 写诗、写文案的多个版本
  • 需要多样性、不想每次都一个味儿

默认(0.7 左右):日常聊天、通用写作。

和「幻觉」的关系

温度调得越高,模型越敢挑小概率的词,也就越容易编出不实内容。所以在对准确性要求高的场景,低温 + RAG + 要求给出处,是压制幻觉的组合拳。

但也要清楚:温度调到 0 也不能完全消除幻觉——因为「概率最高」不等于「事实正确」。低温只是让它别再火上浇油。

我在网页版能调吗

  • 网页版(ChatGPT / Claude 等):一般不给你调,平台已设好一个通用默认值
  • API:可以自由设置 temperaturetop_p 等参数,这也是开发者用 API 的一大好处,见 API 充值攻略
  • 网页版想要更稳?提示词约束:明确要求「只依据我给的资料回答」「不确定就说不知道」「用固定格式输出」,效果也很明显

小结

AI 每次回答不一样,不是故障,而是采样带来的随机性——Temperature 就是那个控制随机程度的旋钮。要准就调低,要创意就调高。理解了它,你就多了一个精细控制 AI 输出的手柄。