AI temperature 設定是什麼?

快速解答

Temperature是一個通常介於0到2之間的數字,用來控制語言模型在挑選每個下一個token時使用多少隨機性。設為0時,模型幾乎總是選擇機率最高的詞;設為1時,模型依照學到的機率分布抽樣;高於1時,機率分布會被拉平,模型更常選到不常見的詞,讀起來可能顯得有創意,也可能顯得語無倫次。

模型從不「選」一個詞,它是從一份清單中挑

讀完你的提示詞之後,語言模型會為詞彙表中的每一個token計算一個分數,目前的模型詞彙量通常在10萬到20萬之間,再把這些分數轉換成機率:「樹葉」45%、「天氣」25%、「顏色」15%,依此類推形成一條長尾。什麼是LLM說明了它為什麼是這樣運作的。接著模型從這份清單中抽出一個token,接在文字後面,然後重複整個過程。

Temperature是套用在「分數」和「抽取」之間的那一步。在計算機率之前,每個分數都會先除以temperature。除以一個小於1的數字,分數之間的差距會被拉大,讓最有優勢的候選詞領先得更多。除以一個大於1的數字,差距會被縮小,讓長尾的詞也有真正的機會。當temperature恰好等於0時,這套運算會直接收斂成「永遠選分數最高的那個」,這就是0被稱為「確定性」的原因。

這個名稱借自物理學:氣體溫度越高,粒子的隨機運動就越劇烈。溫度越高的模型,選詞也就越隨機。模型的知識本身完全沒有改變,改變的只是抽取的方式。

這個數字如何改變機率,實際算給你看

假設有一個提示詞,模型把下一個詞的五個候選機率分別評為45%、25%、15%、10%和5%。這就是temperature為1時的分布。把公式套用在0.5和2上,同樣這五個候選詞會變成下方的結果。這些百分比是用公式算出來的,不是實測數據,但這個變化趨勢就是每一個真實分布會出現的樣子。

在0.5時,排名第一的詞三次中會贏兩次。在2時,三次只贏一次
Temperature 0.51第5名3第4名8第3名21第2名67第1名percentTemperature 15第5名10第4名15第3名25第2名45第1名percentTemperature 211第5名15第4名18第3名24第2名32第1名percent

看三個面板中排名第五的候選詞:先是不到1%,再來是5%,最後是11%。在一段500個token的回答裡,每個token有11%的機率選到排名第五的詞,累積起來就會變成一段偏離主題、憑空捏造、最終語無倫次的文字,這正是有人把遊樂場的滑桿拉到2時看到的結果。再看排名第一的候選詞:即使在0.5時,它也有三分之一的機率輸掉,所以低temperature是「傾向穩定」,而不是「絕對固定」。

這最後一點,對「確定性」這個詞來說很重要。Anthropic的API文件說,即使在0時,結果「也不會完全具有確定性」,而這個保留說法是真的:平行硬體上的浮點運算和廠商端的批次處理,都可能讓同一個提示詞在temperature為0時,仍然產生兩個不同的答案。如果你需要完全一致的輸出,就把答案存下來,不要指望這個設定。

各家廠商允許的範圍,以及各自的預設值

廠商範圍預設值備註
OpenAI0到21推理模型(o系列、開啟推理的GPT-5)不接受這個參數
Anthropic0到11在Opus 4.1及之後的版本,若同時設定兩個參數會被拒絕
Google Gemini0到21在AI Studio中以滑桿形式呈現
OpenRouter直接轉傳依廠商預設Whizi用來連接每一個模型的路徑

有三點值得注意。每家廠商的預設值都是1,也就是依照模型自身的機率分布抽樣,所以你在一般聊天中得到的答案,本身就已經是眾多可能抽樣結果中的其中一個。Anthropic的量表最高只到1,所以Claude的temperature為1時已經是上限,而OpenAI的1只是中間值;這些數字在不同廠商之間並不能直接比較。而推理模型會拒絕這個設定:OpenAI把temperature列為o系列和GPT-5不支援的參數,送出去會回傳錯誤,而Anthropic則規定只要開啟延伸思考,就必須設為1。

不同任務該用哪個數值

規則就一句話:有標準答案的任務用低一點,有多種好答案的任務用高一點。

任務Temperature原因
擷取成表格或JSON、分類、寫程式碼0到0.3只有一種正確格式,出現變化就是缺陷
摘要、翻譯、事實性問題0.3到0.7允許一點措辭自由,但不希望出現憑空捏造
草稿撰寫、改寫、發想點子0.7到1廠商的預設值,有變化但仍然連貫
小說、命名、標語、刻意求新求異的點子1到1.3長尾詞彙正是重點所在
高於1.5很少用連貫性下降的速度快過新奇感提升的速度

有兩個提醒。Temperature不能控制真實性。一個設為0的模型會選出它認為機率最高的答案,如果那個機率最高的答案本身是錯的,它就會每次都自信滿滿地錯下去,什麼是AI幻覺從訓練面解釋了這個現象。而且temperature也不是控制語氣或長度的旋鈕,那些應該寫進指令裡,新手提示詞工程指南有詳細說明;這個數字只決定模型「賭」一個罕見詞的頻率有多高。

為什麼你在聊天應用程式裡從沒看過這個滑桿

ChatGPT、Claude應用程式、Gemini和Whizi都沒有開放temperature控制。這個設定只存在於開發者的遊樂場和API裡,這三家廠商也都沒有公開自家應用程式實際使用的數值。Whizi不會傳送temperature參數,所以這裡的每個模型都以廠商預設值1運行。原因就是前面提到的那個:預設值本來就已經是大多數任務想要的設定,而放錯位置的滑桿只會把一個好用的助理變成一個糟糕的助理,卻完全看不出是哪個旋鈕出的問題。

多模型工作區給你的,其實是一個更有力的槓桿。兩個不同的模型,就是兩份不同的機率清單,在它們之間切換所帶來的答案變化,遠比調整任何temperature都要大。取代滑桿的做法是:遇到有單一正確答案的任務,問第二個模型,只採用兩者一致的部分;遇到有多種好答案的任務,問兩個模型再自己挑選。在Whizi裡,這就是在對話中途換一個模型,在對話中途切換模型說明了哪些內容會延續下去。

如果你真的需要這個旋鈕,它就在廠商自家的API或遊樂場裡,依每次請求設定,上方表格中的範圍也適用。

操作清單
  • 任何有單一正確格式的任務都用0到0.3:擷取、分類、寫程式碼
  • 草稿撰寫和改寫維持預設值1;這是每家廠商調校出來的最佳值
  • 絕對不要把0當成輸出完全一致的保證;想保留的答案就先存起來
  • 不要靠temperature來修正語氣、長度或準確性;那些是指令要解決的問題
  • 聊天應用程式沒有滑桿時,改換模型;這帶來的答案變化比任何temperature都大

常見問題

AI裡的temperature 0是什麼意思?

當temperature為0時,模型永遠會選擇機率最高的那個下一個token,而不是隨機抽樣,所以同一個提示詞幾乎每次都會得到相同的答案。Anthropic的API文件指出,即使在0時,結果「也不會完全具有確定性」,因為硬體和批次處理仍可能帶來微小差異。這是擷取、分類和寫程式碼的正確設定,但它完全不會讓那個機率最高的答案變得更正確。

ChatGPT的temperature設多少最好?

ChatGPT應用程式不讓你自己設定,OpenAI也沒有公開應用程式實際使用的數值。透過API的話,結構化輸出和事實擷取用0到0.3,寫作用0.7到1,只有在刻意想要多變的創意文字時才用高於1的數值。OpenAI的推理模型只要收到這個參數就會直接回傳錯誤。

Temperature和top-p有什麼差別?

Temperature會重新塑造整份機率清單,讓它變得更陡峭或更平緩。Top-p則是直接截斷清單,只保留機率總和達到p的那些最可能的token,再從中抽樣。兩者都能降低或提高隨機性。OpenAI建議只調整其中一個,而Anthropic在Opus 4.1及之後的版本會拒絕同時設定兩者的請求。

temperature設得越高,AI就會越有創意嗎?

它會讓模型更常選到機率較低的詞,大約到1.3左右這讀起來像是有創意,但過了1.5左右就會變得語無倫次。在一個實際算過的例子中,把temperature從1調高到2,會讓排名第五的候選詞在每個token上的機率從5%提高到11%,而這會在一段長的回答裡不斷累積。真正意義上「更好的點子」的創意,來自提示詞和模型本身,而不是來自這個旋鈕。

我可以在Whizi裡調整temperature嗎?

不行。Whizi不會傳送temperature參數,所以每個模型都以廠商預設值運行;ChatGPT、Claude應用程式和Gemini同樣也沒有開放這個控制項,也都沒有公開任何數值。在多模型工作區裡,對應的槓桿是模型選擇器:兩個模型就是兩份不同的機率分布,在對話中途切換模型帶來的答案變化,比任何temperature設定都要大。