解碼與取樣
溫度取樣(temperature sampling)
溫度是最有名的「創意旋鈕」。在模型的原始分數(logits)經由 softmax 變成機率之前,會先被一個數字 T 除過。低溫(例如 0.2)會把分佈變尖,讓最高的幾個詞元獨大,輸出聚焦又可預測;高溫(例如 1.2)會把分佈壓平,讓本來不太可能的詞元也有實質機會,文字因此更多變——也更容易出錯。當 T = 1 時,分佈維持模型原本的樣子。
這名字借自物理:高溫代表更劇烈的隨機運動。把 T 設成 0,取樣就退化回貪婪解碼:最尖的分佈永遠挑最高的詞元。該設多少要看任務——程式碼、數學、抽取這類要唯一正解的,設在接近零;發想、小說、對話這類歡迎驚喜的,就設高一點。溫度通常會搭配 top-k 或 top-p,這樣壓平分佈時才不會把真正荒謬的詞元也救活。
p_i = \dfrac{e^{z_i / T}}{\sum_j e^{z_j / T}}
logits z 先除以溫度 T 再做 softmax;T 越小越尖、越大越平。
又稱
另見