Transformer 的預測任務
假設我們要翻譯一句話:
輸入(英文):I am happy.
目標輸出(中文):我 很 開心。
在訓練階段,模型會讀取整句輸入和整句目標作為參考,但在預測階段,它只能根據前面已經產生的詞,一個一個字地猜出下一個字。
預測流程分成兩部分:
1. Encoder:編碼輸入句子
-
把整句輸入(例如英文)通過 Encoder。
-
Encoder 不做預測,它只負責建立輸入的語意表示。
-
輸出一堆向量:每個詞對應一個向量,這是輸入句子的理解結果。
2. Decoder:逐步產生輸出(生成)
-
這是預測的主角。
預測流程是「自迴圈生成」(Auto-Regressive Generation):
假設目標是生成:
模型怎麼預測?
它會一個字一個字預測下去,每次都用「前面已經生成的詞」來猜「下一個詞」。
步驟 Decoder 輸入 預測輸出 1 <start>
我
2 <start> 我
很
3 <start> 我 很
開心
4 <start> 我 很 開心
<end>
這是靠 Masked Self-Attention 實現的,確保 Decoder 不能偷看「未來的詞」。
Decoder 的 Attention 分為兩種:
-
Masked Self-Attention:關注目前已經產生的詞(例如「我 很」),不能看未來的「開心」。
-
Encoder-Decoder Attention:讓 Decoder 可以看 Encoder 的輸入(例如「I am happy」),從中取得有用資訊。