promptgarten 🌱
🌍 DE
术语●●○4 分钟 · +40 XP

Temperature 和 Sampling(采样):模型的回答有多随机?

Temperature 和 top-p 控制模型选择下一个词时有多“大胆”或多“可预测”——编程工具通常会把它们设得很低。

模型如何选择下一个词

语言模型会为每一个可能的下一个词(准确说是 token)计算一个概率。比如“猫坐在……上”,“垫子”出现的概率就比“云朵”高。模型并不会死板地只选概率最高的那个词——这里面还掺杂了一点随机性,由两个“旋钮”来控制。

Temperature(温度)

Temperature 决定的是可能性高和可能性低的词之间差距被拉大还是缩小。低 temperature(接近 0)会让选择几乎是确定性的:几乎总是选概率最高的那个词。高 temperature 会把这种差距抹平,让概率较低、更出人意料的词也有更多机会被选中。

Top-p(nucleus sampling,核采样)

Top-p 会把候选范围限制在一组最小的词集合里,这组词的概率加起来要达到某个阈值 p(比如 0.9)——在真正“掷骰子”选词之前,这个集合之外的所有词都会被完全排除。

为什么编程工具倾向于调低它

写代码时,正确性比创造力更重要:一个函数应该在语法上正确、风格一致,而不是追求“别出心裁”。所以编程 agent 通常会用较低的 temperature——随机性更少,结果更可预测、更干净。而对于头脑风暴或需要多个文案变体的场景,较高的 temperature 反而更合适。

示例

为编程 agent 设置低 temperature 的 API 调用示例: { "model": "claude-sonnet-5", "temperature": 0.2, "messages": [{"role": "user", "content": "写一个给列表排序的函数。"}] }

🛠️ 练习——自己动手试试

用不同的 temperature 值跑同一个 prompt,比较结果的差异。

  1. 通过 API(或者任何能设置 temperature 的工具),把同一个创意型问题在 temperature 为 0.0-0.2 的情况下问三遍。
  2. 把同一个问题在 temperature 接近 1.0 的情况下再问三遍。
  3. 对比一下:低 temperature 的三个答案彼此有多相似,和高 temperature 的三个答案比起来如何?
  4. 把测试换成一个编程任务而不是创意问题,重复一遍——看看低 temperature 是否能带来更一致的结果。

自查清单

  • 你能观察到低 temperature 和高 temperature 之间明显的差异吗?
  • 你理解为什么 top-p 和 temperature 通常不应该同时调整吗?
  • 你能解释清楚,为什么编程 agent 通常使用较低的 temperature 吗?

小测验

当 temperature 非常低(接近 0)时,会发生什么?

来源

相关主题

什么是 LLM? ●○○模型路由(Model Routing):为任务选对模型 ●●○幻觉:AI 为什么会自信地胡说 ●○○