這一段我終於比較理解 LLM 最後「生出下一個 token」的流程了。
模型真正困難的部分,其實是在前面:整段輸入經過 embedding、attention、MLP、很多層 transformer 之後,最後算出一組 output logits。這組 logits 可以理解成模型對整個 vocabulary 裡每個 token 的原始評分。
也就是說,模型不是直接吐出文字,而是先對所有可能的下一個 token 打分數。
上下文
→ Transformer 運算
→ output logits
→ 每個 token 的原始分數
這裡才是 LLM 的核心能力。因為 logits 背後代表的是模型吸收上下文後,對「下一個 token 應該是什麼」的判斷。
接下來的 probability、temperature、top-k、top-p,反而比較像是「怎麼使用這組判斷結果」。
logits 本身只是原始分數,不是機率,所以要透過 softmax 轉成 0 到 1 之間的 probability,而且全部機率加起來會等於 1。這樣模型就知道每個 token 被選中的可能性。
temperature 則是在 softmax 前調整 logits 的差距。低 temperature 會讓高分 token 更突出,輸出更保守、更穩定;高 temperature 會把差距壓平,讓比較冷門的 token 也有機會被抽到,輸出就會更有變化、更有創意,但也可能更不穩。
我也釐清了一個重要觀念:top-k 和 top-p 不是固定的兩個連續步驟,而是兩種不同的 sampling strategy。
top-k 是固定保留前 k 個最可能的 token,例如只從前 5 名或前 50 名裡面抽。
top-p 則是不固定保留幾個 token,而是從最高機率開始累加,直到總機率超過 p,例如保留累積機率達到 90% 的候選集合。
所以 top-k 比較像「固定名次制」,top-p 比較像「固定機率覆蓋率制」。
top-k:只看前 k 名
top-p:只看累積機率達到 p 的那群 token
整體來看,我現在的理解是:
最難的是算出 logits。
最核心的是 logits。
後面的 softmax、temperature、top-k、top-p,是比較單純的數學與取樣策略。
但這些 sampling strategy 雖然數學上簡單,對輸出風格卻影響很大。它們不創造模型的智慧,但會決定模型要多保守、多穩定,或多隨機、多有創意。
換句話說,LLM 的「能力」主要藏在 logits 裡;而 sampling 則是在決定,要用什麼方式把這個能力表現出來。
temperature 不會改變排名。
所以不管溫度多少,原本 logit 最大的是 visualize,調完 temperature 之後,它通常還是最大。
因為 temperature 做的是:
scaled_logit = logit / temperature
它只是把分數差距放大或縮小,不會把第 1 名變成第 3 名。
Temperature 不會改變 token 的排名;它改變的是機率分布的尖銳程度。
隨機性不是讓最大值消失,而是讓非最大值也有機會被抽到。Softmax 是一種將多個實數轉換為「機率分佈」的數學函數。它常作為神經網絡的最後一層激活函數,確保所有類別的輸出值介於 0 到 1 之間,且總和為 1。