---
title: 'Transformer 與注意力機制：大模型的核心引擎'
description: '深入理解 Transformer 架構和注意力機制，揭密 GPT、BERT 等大模型的技術基石。'
---

# Transformer 與注意力機制原理

2017 年，Google 在論文《Attention Is All You Need》中提出的 Transformer 架構，徹底改變了自然語言處理的遊戲規則。它拋棄了傳統的循環神經網路（RNN），僅依靠注意力機制就實現了更強的效能和更高的訓練效率。今天，幾乎所有的大語言模型——GPT、BERT、T5、LLaMA——都建立在 Transformer 的基礎之上。

<TransformerQuickStartDemo />

---

## 一、RNN 的困境與 Transformer 的突破

在 Transformer 出現之前，處理序列資料（如文字、語音）的主流方法是循環神經網路（RNN）及其變體 LSTM、GRU。這些模型透過循環結構，逐個處理序列中的元素，並維護一個隱藏狀態來記憶歷史資訊。

### 1.1 RNN 的三大致命缺陷

**順序依賴，無法並行**：RNN 必須等待前一個時間步的計算完成，才能處理下一個詞。這導致訓練速度極慢，無法充分利用現代 GPU 的並行計算能力。

**長距離依賴衰減**：即使是改進的 LSTM，在處理長文字時，早期資訊也會逐漸被「遺忘」。比如在一篇 500 字的文章中，模型很難記住開頭提到的關鍵資訊。

**梯度消失／爆炸**：在反向傳播時，梯度需要沿著時間步逐層傳遞，容易出現梯度消失或爆炸，導致訓練不穩定。

### 1.2 Transformer 的革命性突破

Transformer 透過**自注意力機制（Self-Attention）**，讓模型能夠「一眼看全」整個序列，直接計算任意兩個位置之間的關係，無需逐步傳遞資訊。

<RnnVsTransformerDemo />

::: tip Transformer 的核心優勢
- **並行計算**：所有位置的注意力可以同時計算，訓練速度提升數十倍
- **全域視野**：直接捕獲長距離依賴，不受序列長度限制
- **可擴展性**：架構簡潔統一，易於堆疊更深的網路
:::

---

## 二、Transformer 完整架構：從整體到細節

Transformer 的完整架構由**編碼器（Encoder）**和**解碼器（Decoder）**兩部分組成，分別負責理解輸入和生成輸出。

<TransformerArchitectureDemo />

### 2.1 編碼器（Encoder）

以句子「銀行帳戶裡的餘額不足」為例。當模型處理「餘額」這個詞時，它會自動計算與其他詞的相關性：

- 「餘額」與「帳戶」高度相關（0.35）
- 「餘額」與「銀行」中度相關（0.20）
- 「餘額」與「的」、「裡」等虛詞相關性低（0.05-0.10）

這種相關性不是人工規定的，而是模型透過大量資料自動學習出來的。

<SelfAttentionDemo />

### 2.2 注意力的計算過程

自注意力機制透過三個關鍵步驟實現：

1. **生成 Q、K、V 向量**：每個詞透過三個不同的線性變換，生成 Query（查詢）、Key（鍵）、Value（值）三個向量
2. **計算注意力權重**：用 Query 與所有 Key 做點積，得到相似度分數
3. **加權求和**：用注意力權重對 Value 向量加權求和，得到最終輸出

---

## 三、Query、Key、Value：注意力的三劍客

Transformer 的注意力機制借鑑了資訊檢索的思想，將每個詞對映到三個不同的向量空間。

### 3.1 三個向量的角色

**Query（查詢）**：代表「我想找什麼」。當前詞的查詢意圖，用於與其他詞的 Key 匹配。

**Key（鍵）**：代表「我是什麼」。每個詞的特徵標識，用於被 Query 檢索。

**Value（值）**：代表「我的內容是什麼」。實際要傳遞的資訊，根據注意力權重被加權求和。

這種設計的巧妙之處在於：**相似度計算（Q·K）和資訊傳遞（V）是解耦的**。模型可以學習到「哪些詞應該關注」和「關注後應該提取什麼資訊」是兩個獨立的問題。

<QKVMechanismDemo />

### 3.2 注意力計算公式

完整的注意力計算公式為：

```
Attention(Q, K, V) = softmax(QK^T / √d_k) V
```

其中：
- `QK^T`：計算 Query 和 Key 的點積，得到相似度矩陣
- `√d_k`：縮放因子，防止點積值過大導致 softmax 梯度消失
- `softmax`：將相似度轉換為機率分佈（注意力權重）
- 最後與 `V` 相乘：用注意力權重對 Value 加權求和

---

## 四、多頭注意力：從多個角度理解語義

單個注意力頭只能捕獲一種類型的依賴關係。為了讓模型從多個角度理解句子，Transformer 引入了**多頭注意力（Multi-Head Attention）**。

### 4.1 多頭的工作機制

多頭注意力將輸入投影到多個不同的子空間，每個「頭」獨立計算注意力，最後將所有頭的輸出拼接起來。

典型的 Transformer 使用 8 個或 16 個注意力頭，每個頭可能專注於不同的語言現象：

- **語法頭**：識別主謂賓、定狀補等語法關係
- **語義頭**：捕獲詞義相關性（如「銀行」與「帳戶」）
- **位置頭**：關注相鄰詞的局部依賴
- **指代頭**：解析代詞指向（如「他」指向「小明」）
- **情感頭**：識別褒貶色彩和情緒傾向
- **實體頭**：識別人名、地名等命名實體

<MultiHeadAttentionDemo />

### 4.2 多頭的優勢

**表達能力更強**：不同的頭可以捕獲不同類型的依賴關係，避免單一視角的侷限。

**並行計算**：多個頭可以同時計算，不增加計算時間。

**穩健性更好**：即使某些頭學習失敗，其他頭仍能提供有效資訊。

::: tip 多頭注意力的數學表達
```
MultiHead(Q, K, V) = Concat(head_1, ..., head_h) W^O
其中 head_i = Attention(QW_i^Q, KW_i^K, VW_i^V)
```
每個頭有獨立的權重矩陣 W^Q、W^K、W^V，最後透過 W^O 融合所有頭的輸出。
:::

---

## 五、Transformer 完整架構：編碼器與解碼器

Transformer 的完整架構由**編碼器（Encoder）**和**解碼器（Decoder）**兩部分組成，分別負責理解輸入和生成輸出。

### 5.1 編碼器（Encoder）

編碼器由多層（通常 6-12 層）相同的結構堆疊而成，每層包含兩個子層：

1. **多頭自注意力層**：捕獲輸入序列內部的依賴關係
2. **前饋神經網路（Feed Forward）**：對每個位置獨立進行非線性變換

每個子層後面都有**殘差連接（Residual Connection）**和**層歸一化（Layer Normalization）**，確保深層網路的訓練穩定性。

### 5.2 解碼器（Decoder）

解碼器也由多層堆疊，但每層有三個子層：

1. **遮罩多頭自注意力（Masked Multi-Head Attention）**：只能看到目前位置之前的詞，防止「作弊」
2. **交叉注意力（Cross-Attention）**：連接編碼器和解碼器，讓解碼器關注輸入序列
3. **前饋神經網路**：與編碼器相同

<TransformerArchitectureDemo />

### 5.3 現代變體：僅編碼器 vs 僅解碼器

雖然原始 Transformer 包含編碼器和解碼器，但現代大模型通常只使用其中一種：

| 架構類型 | 代表模型 | 適用任務 |
| --- | --- | --- |
| **僅編碼器** | BERT、RoBERTa | 文字分類、命名實體識別、問答 |
| **僅解碼器** | GPT、LLaMA、Claude | 文字生成、對話、程式碼補全 |
| **編碼器-解碼器** | T5、BART | 翻譯、摘要、文字改寫 |

::: tip GPT 為什麼只用解碼器？
GPT 系列模型採用**自迴歸生成**方式，逐個預測下一個詞。僅解碼器架構天然適合這種生成任務，且結構更簡潔，易於擴展到千億參數規模。
:::

---

## 六、位置編碼：告訴模型詞的順序

Transformer 的自注意力機制本身是**位置無關**的——它把句子看作一個詞的集合，而不關心詞的順序。但詞序對語義至關重要：「我愛你」和「你愛我」意思完全不同！

### 6.1 位置編碼的必要性

為了讓模型感知位置資訊，Transformer 在輸入嵌入中加入**位置編碼（Positional Encoding）**。位置編碼是一個與詞嵌入維度相同的向量，直接加到詞嵌入上。

<PositionalEncodingDemo />

### 6.2 正弦餘弦位置編碼

原始 Transformer 使用固定的正弦餘弦函數生成位置編碼：

```
PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))
```

這種設計的優點：
- **唯一性**：每個位置有唯一的編碼
- **相對位置**：模型可以學習到相對距離關係
- **外推性**：可以處理比訓練時更長的序列

### 6.3 現代位置編碼方案

隨著研究深入，出現了更多位置編碼方案：

**可學習位置編碼**：BERT、GPT 將位置編碼作為可訓練參數，而非固定函數。

**相對位置編碼**：T5、DeBERTa 不編碼絕對位置，而是編碼詞之間的相對距離。

**旋轉位置編碼（RoPE）**：LLaMA、GPT-NeoX 使用的方案，透過旋轉 Q 和 K 向量注入位置資訊，外推效能更好。

**ALiBi**：透過在注意力分數上加偏置項實現位置感知，無需額外參數。

---

## 七、Transformer 的影響與未來

Transformer 的出現，不僅僅是一個新架構的誕生，更是整個 AI 研究範式的轉變。

### 7.1 統一的預訓練範式

Transformer 讓「預訓練 + 微調」成為 NLP 的標準流程。透過在海量無標註文字上預訓練，模型學會了語言的通用表示，然後只需少量標註資料就能適應各種下游任務。

### 7.2 跨模態的通用架構

Transformer 的成功不侷限於文字。它已經被成功應用到：

- **電腦視覺**：Vision Transformer (ViT) 在影像分類上超越 CNN
- **語音辨識**：Whisper 使用 Transformer 實現多語言語音轉文字
- **蛋白質結構預測**：AlphaFold 2 用 Transformer 預測蛋白質 3D 結構
- **強化學習**：Decision Transformer 將 RL 問題轉化為序列建模

### 7.3 大模型時代的基石

從 GPT-3 的 1750 億參數，到 GPT-4 的萬億參數，Transformer 展現出驚人的可擴展性。它的並行計算特性，讓我們能夠訓練前所未有的巨型模型，並觀察到**湧現能力（Emergent Abilities）**——當模型足夠大時，自動「悟」出推理、程式碼、多語言等能力。

### 7.4 未來的挑戰與方向

儘管 Transformer 取得了巨大成功，但仍面臨挑戰：

**計算複雜度**：自注意力的複雜度是 O(n²)，處理長文字時計算量巨大。

**長文字建模**：雖然理論上可以處理任意長度，但實際受限於記憶體和計算資源。

**可解釋性**：注意力權重雖然提供了一定的可解釋性，但深層網路的決策過程仍是黑盒。

目前的研究方向包括：
- **高效率 Transformer**：Linformer、Performer、Flash Attention 等降低複雜度
- **長上下文建模**：Sparse Attention、Sliding Window、Memory 機制
- **多模態融合**：統一處理文字、影像、音訊的原生多模態架構

---

## 八、總結

Transformer 和注意力機制的提出，標誌著深度學習從「手工設計特徵」到「端到端學習」的徹底轉變。它不僅解決了 RNN 的技術瓶頸，更重要的是提供了一個簡潔、通用、可擴展的架構，成為大模型時代的基石。

理解 Transformer，就是理解現代 AI 的核心。從 BERT 的雙向編碼，到 GPT 的自迴歸生成，再到多模態大模型的統一表示，所有這些突破都建立在 Transformer 的肩膀上。

未來，隨著算力的提升和演算法的最佳化，Transformer 還將繼續演化，推動 AI 向更強大、更通用的方向發展。