Temperature 调不对,你的 AI 就是个酒鬼
LLM temperature 参数实战指南,SFD 实验室踩坑经验总结,15 个 Agent 的真实配置方案

上周三,我们的客服机器人开始跟用户谈恋爱了
不是夸张。凌晨 2 点,监控面板跳出一条告警:某个客服对话的回复长度达到了 4000 字——一个用户问「订单什么时候到」,AI 从订单状态聊到了人生意义,最后还写了一首关于等待的诗。
排查了半小时,发现是有人把 temperature 从 0.3 改到了 0.9。理由很简单:「0.3 回复太机械了,调高一点更自然。」
自然过头了。0.9 的 temperature 相当于给 AI 灌了两杯威士忌——它开始放飞自我,什么话都敢说,什么答案都可能给你编出来。
Temperature 到底是什么鬼
别被那些论文里的公式吓到。一句话解释:temperature 控制的是 AI 在选择下一个词的时候,有多「大胆」。
具体来说,AI 生成文本是一个字一个字「猜」出来的。每生成一个字,它会算出所有可能字的概率。temperature 的作用就是调整这些概率的分布:
- temperature = 0:永远选概率最高的那个字。每次回答一模一样。像个只会背书的学霸。
- temperature = 0.2-0.4:大概率选最高概率的字,偶尔尝试第二选择。稳定但不死板。适合客服、代码生成、翻译。
- temperature = 0.5-0.7:开始有创意了。同一个问题,每次回答会有微妙差异。适合写文案、头脑风暴。
- temperature = 0.8-1.0:AI 开始放飞。回答会有惊喜,也会有惊吓。适合创意写作、故事生成。
- temperature > 1.0:彻底失控。它会开始胡说八道,甚至输出乱码。除非你在做实验,否则别碰这个区域。
踩坑实录:3 个血淋淋的教训
教训 1:temperature 和 top_p 不是独立的
很多人同时调 temperature 和 top_p(nucleus sampling),觉得可以叠加控制。错了。这两个参数是串联的,不是并联的。
实际效果是:先按 top_p 砍掉低概率候选词,再在剩下的词里按 temperature 调整概率分布。所以你设了 top_p=0.9 再调 temperature,效果会比单独调 temperature 更保守。
我们在 SFD 实验室的做法:固定 top_p=0.9,只调 temperature。这样变量只有一个,出了问题是 temperature 的锅还是模型的问题,一目了然。
教训 2:不同模型的 temperature 不能直接套用
在 GPT-4 上 temperature=0.7 的效果,搬到 Claude 上可能就变成 0.5 的感觉。每个模型的底层概率分布不一样,同样的 temperature 值产生的「随机程度」完全不同。
实测对比(同一个 prompt:「写一首关于春天的短诗」):
GPT-4 @ 0.7: 工整,意象丰富,但有点套路化
Claude @ 0.7: 已经相当放飞,偶尔出现奇怪的比喻
Qwen @ 0.7: 中规中矩,比 GPT-4 保守
Llama-3 @ 0.7: 最有创意,但偶尔跑题
所以换模型的时候,别偷懒直接用旧的 temperature 值。花 10 分钟跑一组对比测试,比线上出问题再救火强一万倍。
教训 3:temperature 不解决事实性问题
这是最常见的误解。有人发现 AI 回答有事实错误,第一反应是调低 temperature。但 temperature 只影响措辞的变化程度,不影响知识准确性。
如果 AI 说「珠穆朗玛峰海拔 8848 米」——不管 temperature 是 0 还是 1,它都会说 8848 米。因为它学到的就是这个数字。
如果 AI 说「太阳绕着地球转」——temperature 调到 0,它还是会这么说。因为 temperature 不改变模型的「知识」,只改变它「表达的方式」。
要解决事实性问题,靠的是 RAG(检索增强生成)或者 fine-tuning,不是 temperature。
SFD 实验室的 temperature 配置方案
分享一下我们 15 个 Agent 的实际配置,不是理论最优,是真金白银试出来的:
| Agent | 用途 | Temperature | 原因 |
|---|---|---|---|
| 小猎鹰🦅 | 安全审计 | 0.1 | 零容错,不能有创意 |
| 小狐狸🦊 | 文案写作 | 0.7 | 需要创意,但不能跑题 |
| 小章鱼🐙 | 代码生成 | 0.2 | 代码不能有歧义 |
| 小蝴蝶🦋 | 设计描述 | 0.8 | 越有创意越好 |
| 小春蚕🐛 | 翻译 | 0.3 | 准确优先,风格其次 |
SFD 编者注
写这篇文章的时候我又看了一眼那个「跟用户谈恋爱」的客服机器人。它现在已经回到 0.3 了,回复很无聊,但至少不会再写诗了。有时候我觉得,AI 的无聊和有趣之间,就隔着一个 temperature 参数。而我们工程师的工作,就是在这条线上找到那个刚刚好的点——既不死板,也不发疯。