大模型如何運作:從自回歸生成到推理採樣

從自回歸生成到推理採樣,理解 LLM 如何在推論階段一個字一個字生成回應。

大模型如何運作:從自回歸生成到推理採樣

前四篇,我們從文字向量化、詞嵌入與位置編碼,一路拆解到注意力機制與多頭 Transformer。
現在,模型內部的零件大致齊了,但還有一個最直觀的問題沒回答:

當我們輸入一句提示,大模型到底是怎麼「一個字一個字」把回應生出來的?

這一篇,我們要從自回歸生成談到推理採樣,理解 LLM 在推論階段的核心運作邏輯。

Input → Predict Next Token → Append → Repeat

一、大模型的本質:文字接龍

大語言模型(LLM)的核心運作機制,本質上是一種自回歸模型(Autoregressive Model)

它做的事情,說穿了就是預測下一個 Token(Next Token Prediction)

整個生成過程就像文字接龍:

  1. 輸入一段提示(Prompt)
  2. 模型預測下一個最可能出現的 Token
  3. 把這個 Token 接續到輸入後面
  4. 用新的輸入再預測下一個 Token
  5. 反覆直到生成完整的回應

舉例來說,如果輸入是「今天天氣真」,模型可能會:

  • 第一次預測:「好」
  • 第二次預測:「,」
  • 第三次預測:「適」
  • 第四次預測:「合」
  • 第五次預測:「出」
  • 第六次預測:「遊」

最終生成:「今天天氣真好,適合出遊。」

這個過程看起來很簡單,但背後其實牽涉到兩個截然不同的階段:訓練階段推理階段
它們的目標、資料流與核心邏輯都不一樣。

二、訓練階段:從誤差中學習

在訓練階段,模型的核心任務是最小化預測誤差

模型會接收大量文本資料,並嘗試預測每一個位置的下一個 Token。
為了衡量預測的好壞,我們使用**交叉熵損失函數(Cross-Entropy Loss)**來計算模型預測的機率分布與實際目標詞(Ground Truth)之間的差距。

Predicted Distribution vs. Ground Truth

損失值越大,代表模型的預測越離譜;損失值越小,代表預測越精確。
訓練的整體目標,就是透過反向傳播(Backpropagation)梯度下降(Gradient Descent),不斷調整模型內部的數十億甚至數千億個參數,逐步降低損失值。

這個過程可以理解為:
模型每次「猜」一個詞,然後比對正確答案,根據差距調整自己的內部參數,反覆數百萬次,直到預測越來越精準。

訓練階段有幾個關鍵特徵:

  • 有標準答案:每個位置的下一個詞都是已知的。
  • 平行計算:因為答案已知,模型可以同時計算所有位置的損失。
  • 目標明確:最小化交叉熵損失。
  • 需要 Mask:防止模型看到未來資訊,這在上一篇文章已經解釋過。

三、推理階段:從機率中採樣

當模型訓練完成,進入推理(生成)階段時,目標從「精確預測」轉變為「生成連貫且自然的文本」。

此時,模型會根據輸入的提示,計算出下一個 Token 的機率分布——也就是詞表中每個詞被選中的可能性。

假設詞彙表有 5 萬個 Token,模型會輸出一個長度為 5 萬的機率向量,總和為 1。
例如:

Token機率
0.45
0.20
0.15
0.05
其他0.15

接下來的問題是:我們要如何從這個分布中選出下一個 Token?

如果每次都單純選擇機率最高的詞彙,這種方法稱為貪婪解碼(Greedy Decoding)
它雖然直觀,但生成的內容往往會顯得機械式且重複,缺乏人類語言的自然多樣性。

為了解決這個問題,我們引入了機率抽樣策略,來平衡輸出的品質與多樣性。

四、三大採樣策略

1. Temperature(溫度係數)

Temperature 是一個用來調整機率分布「平滑度」的參數。
它透過以下方式作用於機率分布:

[ P’(x_i) = \frac{\exp\left(\log(P(x_i)) / T\right)}{\sum_j \exp\left(\log(P(x_j)) / T\right)} ]

簡單來說,它會把原始的機率分布重新縮放:

  • 低溫度(如 0.1):機率分布變得尖銳,高機率的詞更容易被選中,輸出更確定且保守。
  • 高溫度(如 1.0):機率分布變得平滑,低機率的詞也有機會出線,輸出更隨機且富有創造性。
  • 溫度為 0:等同於貪婪解碼,每次都選最高機率的詞。

2. Top-K 抽樣

只從機率排名前 K 個的候選詞中進行抽樣,其餘低機率的詞被直接過濾掉。
這能有效排除明顯不合適的選項,同時保留一定的多樣性。

例如,設定 (K = 3),就只從機率最高的 3 個詞中抽樣,其他全部丟棄。

3. Top-P(核採樣,Nucleus Sampling)

動態選擇機率總和達到 (P)(例如 0.9)的最小候選集合。
這種方法能根據當下機率分布的狀況,靈活調整候選詞的數量。

例如,如果前 3 個詞的機率總和已經達到 0.9,就只從這 3 個詞中抽樣;
如果前 10 個詞的總和才達到 0.9,就從這 10 個詞中抽樣。

這種方法在維持多樣性的同時,避免納入過多不合理的選項。

Temperature + Top-K + Top-P

五、訓練與推理的關鍵差異

面向訓練階段推理階段
目標最小化預測誤差生成連貫自然的文本
答案已知(Ground Truth)未知,需從機率分布採樣
計算可平行處理所有位置自回歸,一次只生成一個 Token
損失函數交叉熵損失無損失函數,只有採樣策略
關鍵技術反向傳播、梯度下降、MaskTemperature、Top-K、Top-P
輸出參數更新生成的 Token 序列

理解這個差異,是掌握 LLM 運作邏輯的關鍵。

六、一個具體的生成例子

假設我們輸入提示:「從前有一隻」

模型第一次預測下一個 Token 的機率分布:

  • 小豬:0.35
  • 小貓:0.25
  • 小狗:0.20
  • 小鳥:0.10
  • 其他:0.10

如果使用 Temperature=0.7、Top-P=0.9:

  1. 先經過 Temperature 調整,分布稍微平滑。
  2. 累積機率:小豬(0.35) + 小貓(0.25) + 小狗(0.20) + 小鳥(0.10) = 0.90,達到 Top-P 門檻。
  3. 從這四個候選中隨機抽樣,可能選中「小貓」。

於是生成:「從前有一隻小貓」

接著把「從前有一隻小貓」當作新輸入,繼續預測下一個 Token,如此反覆,直到生成完整的段落。

這就是自回歸生成的實際樣貌。

七、總結:從預測到生成

大語言模型的運作,可以濃縮成以下幾個重點:

  • 自回歸機制:不斷預測下一個 Token,並將結果接續到輸入中。
  • 訓練階段:透過交叉熵損失、反向傳播與梯度下降,讓模型學會預測。
  • 推理階段:從模型輸出的機率分布中,透過 Temperature、Top-K、Top-P 等策略採樣。
  • 核心權衡:在準確性與多樣性之間取得平衡,讓生成內容既合理又自然。

這些技術共同確保了模型輸出的內容既能維持多樣性,又不會因隨機性過高而導致語句不通順。
掌握這些核心邏輯,是深入理解參數運算、模型微調與進階應用的重要基礎。

不過,訓練階段其實還藏著許多工程挑戰:
為什麼深層網路會梯度消失?為什麼需要正規化?Dropout 又是怎麼防止過擬合?
這些問題,我們留到下一篇來解答。


下一篇預告

《大模型如何計算 Loss:訓練與推理的差異》

我們會深入交叉熵損失函數、反向傳播、梯度下降,並解釋訓練階段為何需要 Mask、為何需要大量計算資源,以及模型如何從錯誤中真正「學會」語言。