采样温度

Temperature

Temperature(采样温度)是 API 参数,用于控制模型生成 Token 时的随机性/创造性:值越低越确定和重复,值越高越发散和多样,典型取值 0 到 2 之间。

详细解释

采样温度(Temperature) 是所有大模型 API 最常暴露的采样参数。简单理解:模型每次预测下一个 Token 时,词表里的每个 Token 都有一个概率(logits 经 softmax 后的分布),Temperature 决定这份概率分布的”尖锐程度”——

  • Temperature = 0(或非常接近 0):贪心解码,每次永远选概率最高的 Token → 输出几乎完全确定,同一段输入多次调用结果一模一样;适合代码、数据抽取、数学计算。
  • Temperature = 1(大多数厂商默认):原样使用模型学习到的自然分布 → 通用对话、翻译、科普最平衡。
  • Temperature = 1.5 ~ 2:分布被”拉平”,低概率 Token 被选中的概率显著上升 → 创造性写作、头脑风暴、剧本台词;太高可能出现逻辑断裂、胡说八道

官方参考:OpenAI Temperature 介绍

不同任务的推荐值表

任务类型推荐 Temperature理由
代码生成/补全0.0 ~ 0.3语法正确 > 变化
数据抽取 / JSON 结构化0.0 ~ 0.2输出必须稳定
客服话术 / FAQ0.3 ~ 0.7既要准确又要自然
通用问答 / 翻译0.7 ~ 1.0默认档
文案创意 / 故事写作1.0 ~ 1.3适当变化
头脑风暴 / 发散联想1.3 ~ 1.6越多样越好
Temperature > 1.6不推荐日常使用容易失控胡言乱语

与 Top-P 的关系:调一个就行

OpenAI 和主流厂商官方建议:调 Temperature 或者调 Top-P,二选一,不要两个都大幅偏离默认值一起上——叠加会产生很难预测的结果。如果你喜欢”保留前多少概率”的直觉,用 Top-P;如果你习惯”温度旋钮”的直觉,用 Temperature。

唯元智创(Weimeta)在模型接入示例中为每个常见任务预置了 Temperature + Top-P 的推荐组合,SDK 默认传了符合 OpenAI 兼容标准的参数,不必每个模型手工调。

常见问题

Temperature=0 就一定完全相同吗?
概率上是的,但生产环境不做严格承诺:并发调度、浮点顺序、GPU 型号不同都可能造成微小差异。如果你需要绝对可复现,请同时传 seed 参数,见 Seed(随机种子)