TRANSFORMER / ELI5 初學者 tutorial ·
從文字,到向量,再到下一個 token

一句話,如何變成
下一句話?

Transformer 透過注意力整合上下文。沿著「小貓 因為 累了 所以 牠 睡了」,看一個 token 的表示如何改變。

不必先會線性代數
小貓累了牠依權重,匯入上下文資訊
連線是概念圖;示範權重並非真實模型的分析結果。
01 / 輸入

先把 token 變成向量

token 是模型讀取的文字單位,可能是字、詞或詞的一部分。這裡為方便閱讀,手動把例句分成六個單位。向量是一串數字,讓模型可以計算。

文字向量
位置向量
相加結果

藍:文字向量;綠:位置向量,接在藍色箭頭的尖端;金:相加後的輸入 x。換位置後,虛線是原位置的 x。

這裡只用 2 維示範。數值由教學者設定;每個維度不必對應可命名的語意。

試試看:把「小貓」移到後面

文字相同,位置改變,模型收到的向量也會改變。

先點選一個 token,再切換它的位置。

想看公式與維度
xi=E[tokeni]+P[i]E∈ℝ|V|×d,P∈ℝL×d,xi∈ℝd

L 是最大位置數;文字向量和位置向量都是 d 維,才能相加。這裡沿用教材的 learned absolute position 範例;Transformer 也有其他位置編碼方法。

教材對照:PDF 第 49–52 頁。第 51 頁位置矩陣 [1 × N] 的寫法改為 L × d。