跳到內容

術語★★★★★7 分鐘閱讀

Temperature、top-p、top-k:採樣參數解釋

三個旋鈕控制模型輸出多有創意或多無聊。大部分人留預設;預設常常錯。

登入以收藏

每個 LLM API 暴露 temperaturetop_ptop_k 的某種組合當採樣參數。它們控制模型怎麼從機率分布挑下一個 token。大部分 builder 永遠留預設;某些預設值對特定任務產出明顯比替代品差的輸出。

模型怎麼挑下一個 token

每一步,LLM 在它整個詞彙(看模型 5 萬到 20 萬 token)上產出機率分布。「給定目前 context,下一 token 是『banana』機率 0.4、『apple』0.3、『orange』0.1、...」

採樣參數決定實際從這分布挑哪個 token。不同參數產不同輸出風格:

  • 永遠挑最高機率 → 確定性、常常無聊
  • 按機率隨機抽 → 多樣、有時奇怪
  • 中間 → 有創意但連貫

Temperature

Temperature 控制採樣前分布變得多「平」或「尖」。範圍通常 0 到 2。

  • Temperature = 0 — 模型永遠挑最高機率 token。輸出確定性。同 input 永遠產同 output。對一致性重要的任務(抽取、分類、結構化輸出)有用。
  • Temperature = 0.3-0.5 — 輕微變化但仍聚焦。code 生成、事實 Q&A、技術寫作好。
  • Temperature = 0.7 — 常見預設。創意跟連貫平衡。chat、摘要、一般任務好。
  • Temperature = 1.0 — 完整按模型分布的「自然」採樣。創意寫作、腦力激盪好。
  • Temperature > 1.0 — 越來越隨機。打破 pattern 有用;1.5 以上很快變不連貫。

陷阱:大部分 API 預設 0.7 或 1.0。技術任務這太高。降下來。

Top-p(核採樣)

Top-p 把採樣限制到累積機率至少 p 的最小 token 集合。

  • Top-p = 1.0 — 停用、考慮所有 token。
  • Top-p = 0.9 — 常見有用值。只考慮共佔 90% 機率質量的 token。
  • Top-p = 0.5 — 受限很多。只 top token。

Top-p 是動態:在自信情境(一個 token 80% 可能),它挑那一個 token。在不確定情境(機率散在多候選),它考慮更多。

Top-k

Top-k 把採樣限制到 k 個最高機率 token。

  • Top-k = 1 — 同 temperature 0(永遠挑頂)。
  • Top-k = 40 — 常見預設。考慮 top 40 token。
  • Top-k = 0 — 停用(從完整分布採樣)。

Top-k 在現代 API 較少暴露(Anthropic Claude 不暴露;OpenAI 不暴露;Gemini 有)。

它們怎麼組合

實際上多參數設定時:

  1. 先套 temperature 縮放(重塑分布)
  2. 套 top-k 過濾(只留 top k token)
  3. 套 top-p 過濾(只留累積到 p 的 token)
  4. 從剩下採樣

大部分人單獨用 temperature 或 temperature + top-p。三個都用是過頭,會產混亂互動。

各任務的務實設定

結構化輸出(JSON、code、分類):

  • Temperature: 0
  • Top-p: 1.0(temp=0 時無關)
  • 為什麼:你要一致、可解析的輸出

技術 Q&A:

  • Temperature: 0.2-0.4
  • Top-p: 0.9
  • 為什麼:事實但允許措辭微變

創意寫作:

  • Temperature: 0.7-1.0
  • Top-p: 0.9-0.95
  • 為什麼:多樣但保持連貫

腦力激盪 / ideation:

  • Temperature: 1.0-1.2
  • Top-p: 0.95
  • 為什麼:探索分布、拿不尋常想法

Chat(預設):

  • Temperature: 0.5-0.7
  • Top-p: 0.9
  • 為什麼:平衡;大部分 API 一般用的預設

常見錯誤

結構化任務 temperature 設太高。 「從這文字抽 email 地址」用 temperature 0.7 有時回對 email、有時回編造變體。抽取用 temperature 0。

創意任務 temperature 設太低。 「生 10 個產品名想法」用 temperature 0.2 回 10 個幾乎一樣的名字。用 temperature 0.9-1.2。

不必要混 top-p 跟 top-k。 挑一個加 temperature。三個的互動效果微妙、很少值得認知 overhead。

把 temperature 當音量。 高不是「更有創意」、是「更隨機」。~1.2 以上有品質懸崖、輸出變不連貫。

推理模型不同

像 o3、DeepSeek R1、有 extended thinking 的 Claude 等模型,採樣參數對推理過程有不同影響。很多 API:

  • 推理模型不暴露 temperature
  • 預設建議 temperature 1.0(因為模型做自己的結構化探索)
  • 有時顯示不同最佳實踐

用推理模型的話,讀 provider 特定指引。

什麼時候不要想這些

隨意 chat 使用。預設通常 OK。

規模化 production。測試後設一次 temperature,放著。

推理模型。信 provider 建議。

第一輪原型。先讓 prompt work 再調採樣。

調整重要的時候

  • 建結構化輸出管線(抽取、分類):低 temperature 關鍵
  • 創意工具,輸出多樣性是產品:高 temperature 重要
  • 評估:在多 temperature 測模型行為揭示能力 vs 隨機運氣
  • 成本優化:不必要撞 max_tokens 的話低 temperature 能減 token 用量

決策樹

  • 需要一致 JSON / 結構化輸出:temperature = 0
  • 事實 Q&A 或技術內容:temperature = 0.2-0.4
  • 一般 chat:temperature = 0.5-0.7(預設 OK)
  • 創意寫作或腦力激盪:temperature = 0.9-1.2
  • 沒時間想:留預設;輸出錯時再回來

下一步

  • 在你具體任務測 temperature 0、0.5、1.0 — 挑 work 的
  • production 任務,記錄 prompt 旁邊的採樣參數
  • 特別讀推理模型的採樣
  • 讀 beam search 跟 contrastive search(較少見但對某些任務有用)

最後更新: 2026-04-29

We use cookies

Anonymous analytics help us improve the site. You can opt out anytime. Learn more

Temperature、top-p、top-k:採樣參數解釋 · BuilderWorld