Transformer 架構
Transformer 架構簡介
Transformer 是一種序列到序列(Seq2Seq)模型架構,最初由 Google 在 2017 年提出,用於自然語言處理(NLP)任務。它的代表論文是:
《Attention is All You Need》
為什麼叫 Transformer?
因為它能「轉換」輸入序列成為有意義的輸出序列,例如:
-
英文 ➜ 中文翻譯
-
問句 ➜ 答案
-
摘要生成
-
語意分類
核心概念:Attention is All You Need
這篇論文的主張是:我們不需要 RNN 或 CNN,只要 Attention 就夠了!
傳統 Seq2Seq 模型的問題:
-
RNN 或 LSTM 雖然能處理序列,但難以平行化,訓練速度慢。
-
長距離依賴難以捕捉(例如,第一個字和最後一個字有關)。
Transformer 的突破:
-
完全不使用 RNN,而是靠「Self-Attention」來捕捉所有詞之間的關係。
-
每個詞可以同時關注序列中其他所有詞,這讓訓練更快也更精準。
Transformer 架構結構
Transformer 架構主要由兩個大部分組成:
Encoder 編碼器(6 層)
輸入:原始文字序列(例如英文句子)
流程:
-
輸入詞轉成向量(詞嵌入)
-
加上位置資訊(Position Encoding)
-
通過多層 Self-Attention + Feed Forward Neural Network
-
輸出一組表示整個句子的向量
Decoder 解碼器(6 層)
輸入:目標語言句子(例如中文),或訓練中逐步生成的部分答案
流程:
-
也是自注意力(Masked Self-Attention)+ Encoder-Decoder Attention
-
最後透過 Linear + Softmax 輸出詞彙表中最有可能的下一個詞
Attention 的類型(重點中的重點)
Self-Attention(自注意力)
每個詞會根據和其他詞的關係來加權自己輸出。例如:
「I love machine learning」
→ “machine” 可能會特別注意 “learning”
公式上,它用三個向量表示每個詞:
-
Query(查詢)
-
Key(鍵)
-
Value(值)
計算方法是:Attention(Q, K, V) = softmax(QKᵀ / √d_k) * V
這表示每個詞根據自己的 Query 和其他詞的 Key 計算注意力分數,然後加權 Value。
Multi-Head Attention(多頭注意力)
不是只有一組 Q/K/V,而是多組並行計算,讓模型可以從多個角度去看同一個詞與其他詞的關係。
應用場景
Transformer 現在已經是各大語言模型的基礎,比如:
-
BERT(雙向編碼器)
-
GPT(生成模型)
-
T5、BART(序列到序列)