详细解释
采样温度(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 | 输出必须稳定 |
| 客服话术 / FAQ | 0.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(随机种子)。