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 參數。而我們工程師的工作,就是在這條線上找到那個剛剛好的點——既不死板,也不發瘋。