你已經會用 Python、知道 GPU / CUDA,也知道模型可以從 Hugging Face 下載、用 Ollama 跑起來。
下一個常見問題會變成:
模型裡面到底是什麼結構?
如果你開始讀 LLM 文章,幾乎逃不掉一個詞:Transformer。
而 Transformer 最知名的起點之一,就是 2017 年論文 Attention Is All You Need。
這篇不打算逐頁讀論文,而是先建立一個能帶著走的直覺。
在 Transformer 之前,序列模型常常很依賴「一步一步讀」
文字有順序。
例如:
小明把書放在桌上,因為它太重了。
模型要理解「它」可能指「書」,就需要把不同位置的資訊連起來。
早期很多序列模型會大量依賴循環式結構,一步一步把前面的狀態傳給後面。
這種設計可以工作,但長距離資訊與平行化訓練會遇到限制。
Transformer 提出另一個核心想法:
每個位置可以直接計算「我現在應該注意序列裡哪些位置?」
這就是 Attention 的核心直覺。
Attention 可以想成會議中的注意力分配
想像 20 個人一起開會。
你現在要回答一個問題,不會平均聽所有人。
你會根據目前問題決定:
- 財務問題,多聽財務的人。
- 設計問題,多聽設計的人。
- 某個人剛剛提到的關鍵資訊,給它更高權重。
模型裡的 注意力機制(Attention Mechanism) 也有類似精神:
先算不同位置彼此有多相關,再用這些相關程度決定要整合多少資訊。
這不是人類心理學上的注意力,而是一種數值計算機制。
Self-Attention 是什麼?
自注意力(Self-Attention) 指的是同一段序列裡的元素彼此計算關係。
例如一句話有 10 個 Token,每個 Token 都可以去看這 10 個位置,決定哪些位置對目前表示最重要。
Lesson 004:Token 的一句話 recap:Token 是模型處理文字時使用的基本單位,不一定等於一個完整字或單字。
所以 Self-Attention 並不是「一句話整體看一句話」,而是 Token 表示之間進行數值關係計算。
Q、K、V 為什麼到處都是?
Attention 最常看到三個字母:
- Query, Q:查詢
- Key, K:鍵
- Value, V:值
先用搜尋櫃台比喻。
你手上的問題是 Query。
每份資料有一個 Key,代表它「可以怎麼被找到」。
真正要取回的內容是 Value。
模型會比較 Query 和各個 Key 的匹配程度,再按照匹配分數加權取用 Value。
用最簡化的三行看 Attention
真正 Transformer 的數學細節比下面完整很多,但可以先看概念版:
scores = Q @ K.T
weights = softmax(scores)
output = weights @ V
這不是可以直接複製執行的完整程式,而是概念性 Python / 矩陣表示。
逐行解釋。
第一行
scores = Q @ K.T
@ 在 Python 數值運算語境裡常用來表示矩陣乘法。
K.T 代表把 K 轉置。
這一步的直覺是:
把每個 Query 和不同 Key 做相似度式的配對,得到關聯分數。
第二行
weights = softmax(scores)
Softmax 可以先理解成把一組分數轉成比較容易拿來加權的比例。
分數高的位置會得到比較大的權重。
第三行
output = weights @ V
拿剛才算出的權重去加權 Value。
因此最後輸出不是只複製某一個位置,而是整合多個位置的資訊。
真正公式還多了什麼?
經典的 Scaled Dot-Product Attention 常寫成:
Attention(Q, K, V) = softmax(QKᵀ / √dₖ)V
這裡:
Q:Query 矩陣。K:Key 矩陣。V:Value 矩陣。Kᵀ:K 的轉置。dₖ:Key 向量的維度。√dₖ:用來縮放分數,避免數值隨維度變大而過度放大。
白話就是:
- 比較 Q 和 K。
- 把分數縮放。
- 用 Softmax 轉成權重。
- 按權重整合 V。
公式的目的不是叫你現在手算矩陣,而是讓你知道「注意力」其實有很具體的計算流程。
Multi-Head Attention 又是在做什麼?
如果整個模型只有一組 Attention,它可能只在一個表示子空間裡看關係。
多頭注意力(Multi-Head Attention) 會並行使用多組投影後的 Q / K / V,讓不同 Head 有機會學到不同類型的關係,再把結果合併。
可以想成同一場會議同時有幾組觀察角度:
- 一組比較在意語法
- 一組可能在意實體關係
- 一組可能在意長距離依賴
但不要把每個 Head 硬解讀成固定人類可命名功能。實際學到的表示通常比這個比喻複雜。
Transformer 不只有 Attention
這點非常重要。
Transformer 不是「只有一個 Attention 函式」。
經典 Transformer Block 還包含像:
- Feed-Forward Network
- Residual Connection
- Layer Normalization
- Positional Information
等結構。
所以論文叫 Attention Is All You Need,不代表完整模型真的只有一行 Attention。
為什麼這個架構特別適合 GPU?
前一篇 Lesson 028:CUDA 已經講過:GPU 很擅長大量平行數值運算。
Transformer 相較於高度依賴逐步循環的結構,更容易把很多 Token 的矩陣運算平行化。
這讓大型資料、大模型與 GPU 計算結合得非常自然。
也因此 Transformer 後來快速擴展到:
- 語言模型
- 圖像
- 語音
- 多模態
- 其他序列任務
LLM 就等於原始 Transformer 嗎?
不是。
現代 LLM 雖然大量建立在 Transformer 家族上,但已經有很多變化:
- Decoder-only 架構
- 不同 Positional Encoding
- 不同 Attention 變體
- Mixture-of-Experts
- KV Cache
- 長 Context 技術
- 訓練與後訓練方法
所以 2017 論文更像一張非常重要的祖譜起點,不是 2026 年所有模型都原封不動照抄同一張架構圖。
Attention 會讓模型「理解」嗎?
不能直接這樣下結論。
Attention 是資訊流動與表示計算機制,不是「理解」的同義詞。
模型最後表現來自很多因素:
- 架構
- 訓練資料
- 參數規模
- 目標函式
- 後訓練
- 推論方式
Lesson 003:AI 怎麼學 的一句話 recap:模型能力是從大量訓練資料與最佳化過程中逐步調整參數得到,不是把規則人工一條條塞進去。
Attention 只是這整套系統裡非常關鍵的一層。
一句話帶走
Self-Attention 讓序列中的每個位置能直接計算自己應該多重視其他位置;Transformer 把這個機制變成可大量平行化的核心架構,成為後來現代 LLM 最重要的技術祖先之一。
留言
有想法、疑問或想補充的地方,都可以留在這裡。
還沒有留言,來當 1F 吧。