公式:softmax(x_i) = exp(x_i) / ∑ exp(x_j)。指數函數放大差異:如果一個 logit 是 10,另一個是 5,softmax 後的比率不是 2:1,而是大約 150:1。這種「贏家通吃」的行為解釋了為什麼模型往往很自信——softmax 天生產生尖峰分布而非均勻分布。
溫度透過在 softmax 前對 logits 進行除法來應用:softmax(x_i / T)。溫度 T=1 是標準值。T<1 使分布更尖銳(更自信、更確定性)。T>1 使分布更平坦(更均勻、更隨機)。這正是 LLM API 中「溫度」參數的工作方式——它是在選擇下一個 token 的最終 softmax 之前應用於 logits 的純量。
一個實作細節:對大值的 x 計算 exp(x) 會導致溢出。標準修正方法是在應用 softmax 前從所有 logits 中減去最大值:softmax(x_i - max(x))。這不會改變輸出(減去的常數在比率中消除),但能將數字保持在可管理的範圍內。每個生產環境的 softmax 實作都這樣做,而且這是從頭建構時很重要的細節。