Transformer 是什麼?先看一次回答的計算流程
看到「歡迎各_」,你大概會接「位」,組成「歡迎各位」。
模型 (Model) 要做的事,是用前面已有的文字,算出接「位」「自」等候選的分數。 本章要看的是:前面的「歡迎」怎麼一路影響最後的計分?
先把整條路線分成三步:文字準備成數值 → 前文一起參與計算 → 替候選計分。
Transformer 是把這些運算組成模型的一種設計。中間會經過多個層 (Layer):每一層更新計算用的數值,經過所有層後,才用結果預測下一個 token。接下來先看每一步的工作,數字和算式另放在選讀章。
第一步:文字先成為計算材料
模型內部做的是數值運算,所以要先把文字轉成數值。
前幾章看過:文字切成 token,用編號查表,取得每段文字對應的一串數值;所在位置也要有途徑參與計算。這些就是這次回答的起始材料。
此時,同一個「各」查到的值相同,但它還沒有結合這次的前文。 只做到查表,還沒有算完「這次接什麼比較適合」。
第二步:讓前文影響這次的計算
比較兩個句子:
- 「歡迎各_」:你可能想到「位」。
- 「大家各_完成自己的部分」:你可能想到「自」。
同樣都看到「各」,前面的文字不同,後面適合接的字就可能不同。因此,在計算「各」這個位置時,需要讓前文提供的數值也一起參與。
前一章的注意力 (Attention) 就在做這件事:算出各位置要帶入多少資訊,再把那些位置的數值合起來。 它處理的是數值,不是在程式裡手寫「遇到歡迎就接位」這種規則。
不過,讓前文參與只是其中一步。接著還會把合起來的結果,交給更多數值運算處理;這些運算使用模型已經學到的內部數值。
Transformer 把這段處理接成多層
一層是一組接好的數值運算:收到各位置的數值,算完後交出各位置更新後的數值。 裡面先讓不同位置的資訊一起參與,再分別處理各位置的結果。
可以把每層想成一個加工站。第一站處理原材料,第二站接手的,已經是第一站加工過的材料。對模型來說,這些「材料」就是各位置的數值。
假設這次已有 3 個 token,它們的數值這樣往下傳:
| 加工站 | 收到什麼 | 交出什麼 |
|---|---|---|
| 第一層 | 起始數值 | 第一層的結果 |
| 第二層 | 第一層的結果 | 第二層的結果 |
| 後面的層 | 前一層的結果 | 這一層的結果 |
處理的仍是同一批 token,但第二層收到的是第一層的結果,不是重新拿起始數值再算一次。 每一層更新的是這 3 個位置各自的數值;直到最後一層,位置數仍是 3 個。
每個加工站做的事有差別嗎?
可以想成同類型的加工機台,卻各自有不同設定:各層通常都包含讓前文參與、再處理各位置結果的運算,但每層通常有自己的一組內部數字,決定實際怎麼算。
這些內部數字叫參數 (Parameter),是在訓練 (Training) 時從資料調整出來的。生成回答時,已學到的參數維持固定;一路改變的是交給下一層的中間結果。
因此,各層有兩個差別:收到的數值不同,各自使用的參數通常也不同。 相似的是運算結構,不表示整段計算完全一樣。加工站的比喻只是在說明接力關係,沒有預先指定「第一層看文法、第二層看意思」這種固定工序。
經過一層,改變的是計算用的數值;文字序列沒有多出一個 token。「層數」是在說計算經過多少組運算,「token 數」是在說序列有多少個文字單位,兩者是不同的數量。
每層都還在準備這一次預測要用的數值。經過所有層後,才用末位置的結果替候選計分、轉成機率,再選出一個新 token。 接上它,文字序列才從 3 個變成 4 個 token。
下一個 token 的預測也使用同一組層,不是每生成一個 token 就再增加一層。
第三步:用結果替候選計分
多層處理完成後,取最後一個位置的結果,算出接「位」「自」及其他 token 各有幾分。
這樣,前文就有一條影響候選的路徑:前文改變 → 中間計算結果可能改變 → 候選分數也可能改變。
分數 (Score) 還不是機率 (Probability)。接著會把候選分數轉成機率,再依選擇規則取得下一個 token;如何轉換分數,下一章〈候選分數怎麼變成機率?〉會接著說明;選擇與逐段生成則沿用〈我傳一句話給 AI,到底發生了什麼?〉。
新 token 接到文字後,模型再用已提供的內容,計算下一個 token。於是回答逐段生成。
只換前文,看看流程的結果
下面的簡化練習把前文標成「歡迎」或「分工」。「分工」代表前面提到「大家各自完成自己的部分」那類情境的簡寫。
只改前文,觀察同一套計算最後讓哪個候選分數較高。先看流程與結果即可,不必逐欄算小數。
換「歡迎/分工」兩種前文,看看計算流程與「位/自」的得分高低。這是固定教材計算,不是實際語言模型的測量;完整數值實驗另放在選讀章。
活動裡,「各」的查表值和計算規則都固定;換的是這次提供的前文。這讓你看到:相同規則處理不同輸入,也能產生不同結果。
計算時使用已學到的規則,叫推論 (Inference);從資料調整模型內部數值,叫訓練 (Training)。這次切換前文,沒有重新訓練。
讀到這裡,先掌握什麼?
文字提供起始數值,前文參與多層處理,最後的結果拿來替候選計分。Transformer 把中間各層的運算安排起來。
本章追的是接續文字的路徑。Transformer 也能用在分析整份輸入等其他任務,不等於所有人工智慧 (Artificial Intelligence, AI),也不等於大型語言模型 (Large Language Model, LLM) 這個類別本身。
接著可以走兩條路:
- 繼續主線:〈候選分數怎麼變成機率?〉,看剛算出的分數如何成為整組候選的機率。
- 想看每一步的數值:〈選讀:用數值追一次 Transformer 計算〉,再拆開原有兩層實驗與算式。
參考:Transformer 的組件與多層安排、Hugging Face:不同 Transformer 架構的用途(2026-10-06 查核)。本圖只呈現主要工作分工,逐項數值運算與構造邊界另在選讀章。