← 返回首頁
LESSON 031AI 入門13 分鐘

Attention Is All You Need 到底改變了什麼?從 Self-Attention 到 Transformer,看懂現代 LLM 的核心骨架

第 31 篇用『開會時每個人決定該聽誰』理解 Attention、Self-Attention、Query、Key、Value 與 Multi-Head Attention,再回到 2017 年論文為什麼提出 Transformer。

今天用這個比喻像一場大型會議,每個位置都不必只聽前一個人,而是先判斷這一刻最該注意誰,再把重要資訊加權整合

你已經會用 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。

每份資料有一個 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

這裡:

白話就是:

  1. 比較 Q 和 K。
  2. 把分數縮放。
  3. 用 Softmax 轉成權重。
  4. 按權重整合 V。

公式的目的不是叫你現在手算矩陣,而是讓你知道「注意力」其實有很具體的計算流程。

Multi-Head Attention 又是在做什麼?

如果整個模型只有一組 Attention,它可能只在一個表示子空間裡看關係。

多頭注意力(Multi-Head Attention) 會並行使用多組投影後的 Q / K / V,讓不同 Head 有機會學到不同類型的關係,再把結果合併。

可以想成同一場會議同時有幾組觀察角度:

但不要把每個 Head 硬解讀成固定人類可命名功能。實際學到的表示通常比這個比喻複雜。

Transformer 不只有 Attention

這點非常重要。

Transformer 不是「只有一個 Attention 函式」。

經典 Transformer Block 還包含像:

等結構。

所以論文叫 Attention Is All You Need,不代表完整模型真的只有一行 Attention。

為什麼這個架構特別適合 GPU?

前一篇 Lesson 028:CUDA 已經講過:GPU 很擅長大量平行數值運算。

Transformer 相較於高度依賴逐步循環的結構,更容易把很多 Token 的矩陣運算平行化。

這讓大型資料、大模型與 GPU 計算結合得非常自然。

也因此 Transformer 後來快速擴展到:

LLM 就等於原始 Transformer 嗎?

不是。

現代 LLM 雖然大量建立在 Transformer 家族上,但已經有很多變化:

所以 2017 論文更像一張非常重要的祖譜起點,不是 2026 年所有模型都原封不動照抄同一張架構圖。

Attention 會讓模型「理解」嗎?

不能直接這樣下結論。

Attention 是資訊流動與表示計算機制,不是「理解」的同義詞。

模型最後表現來自很多因素:

Lesson 003:AI 怎麼學 的一句話 recap:模型能力是從大量訓練資料與最佳化過程中逐步調整參數得到,不是把規則人工一條條塞進去。

Attention 只是這整套系統裡非常關鍵的一層。

一句話帶走

Self-Attention 讓序列中的每個位置能直接計算自己應該多重視其他位置;Transformer 把這個機制變成可大量平行化的核心架構,成為後來現代 LLM 最重要的技術祖先之一。

正式資料來源

比喻是理解入口;正式定義與細節請以原始資料為準。

  1. Attention Is All You Need — arXiv ↗
← 上一章030Ollama 是什麼?從 pull 模型、run 模型到 localhost API,看懂 Local LLM 怎麼真的跑起來
下一章 →032LangChain 是什麼?把模型、Prompt、工具、RAG 與 Agent 接成一條可管理的工作流程
COMMUNITY

留言

有想法、疑問或想補充的地方,都可以留在這裡。

0 / 1200