Transformer 自注意力
一個字的意思,是它挑著看的其他字,混出來的。
1先動手玩
從注意力圖看每個字注意誰
每一列合計為 1。滑過格子可看「誰看誰」。
① 選一列
點一個字,圖上會框出它「看出去」的整列。
② 讀最亮格
從「it」看出去,最亮的是「cat」(0.83)。
③ 看分配變化
調高 T,注意力會從集中變平均;每列總和仍是 1。
在一個句子裡,每個字都在偷偷決定:其他的字,各要看多重。看得越重的,就越多地混進它自己新的意思裡——這個手工例子把「it」對「cat」的權重設得較高,方便看懂加權混合;它不能證明真實模型如何判定代名詞指向。
這一頁只想讓你看見一件事:一個字更新後的意思,是它對句子裡每個字分配的注意力、加權混合出來的。
互動只拆開「一顆注意力頭、一個固定句子」這件事,用的 Q/K/V 是為了看得清楚而手挑的固定數字,不是訓練出來的。多頭、位置編碼、前饋層、堆疊與訓練,在下面「拉遠看」一段補齊位置。
2觀察
先讓畫面回答
- 點「it」:七格裡哪一格最亮?它其實在看句子裡的哪個字?
- 再點「scared」和「hid」:它們最亮的那一格是不是都落在同一個字上?(那個字被幾個字盯著)
- 看每一列:不管選哪個字,一整列的亮度加起來都一樣多——注意力被分給七個字,總和不變。
- 拉 T:把注意力從「死盯一個」慢慢拉成「平均看每一個」。總和有變嗎?
3拉遠看
你剛玩的,是整座 Transformer 的哪一塊?
這是文字生成用途的簡圖,省略殘差連接、正規化與遮罩等步驟;互動熱圖讓七個位置彼此可見,並未模擬只能看前文的生成遮罩。
- 多頭——平行計算多組注意力,讓模型能結合不同的表示;結果拼接後再投影。每顆頭不保證對應一個可命名的語法規則。
- 位置編碼——先把「字的順序」加進向量,不然「貓咬狗」和「狗咬貓」分不出來。
- 前饋層——注意力混完之後,每個位置再經過相同的前饋網路,包含線性與非線性運算。
- 疊 N 層——重複多層,逐步更新表示;用於自回歸文字生成時,輸出層預測下一個 token 的機率。token 不一定是一個完整的字。
- 訓練——模型學到的是產生 Q/K/V 的投影矩陣;每次輸入再經過投影得到這些向量。本頁使用手挑的固定向量。
4哪裡用得到
你大概每天都在用它
- 文字生成——GPT 的「T」指 Transformer;這類模型用注意力結合上下文,但完整模型還包含多層、多頭與其他運算。
- 機器翻譯——2017 年《Attention Is All You Need》以英德、英法翻譯評估 Transformer。
- 程式碼模型——也能把程式碼切成 token,利用上下文建立表示;注意力權重本身不等於模型推理的完整解釋。
- AlphaFold 2 蛋白質結構——使用注意力家族的方法處理序列與幾何資訊,並非直接照搬本頁的文字模型。
5寫成式子
剛剛的「多重要」,寫成三行
玩過了?打開來看
scoreij = (qi · kj) / √d
wij = softmaxj(scoreij) = exp(scoreij) / Σk exp(scoreik)
outputi = Σj wij · vj
把游標移到算式的符號上(手機點一下),看它對應畫面上的哪個東西。
上式對應 T = 1。調整教學旋鈕時,實際計算為 wij = softmaxj(scoreij / T);T 越高,分配越接近平均。本頁 d = 4、√d = 2 固定不變。
長條的寬度顯示權重 w,不是輸出向量的分量;輸出還要把各個值向量 v 乘上權重後相加。
- qi
- 你點的字在找什麼(teal,對應你選的字和熱圖裡它那一橫列)。
- kj
- token j 提供/代表什麼(amber,熱圖上緣被看的七個字)。
- scoreij
- qi·kj/√d,還沒正規化的原始比對分數(選中那列七格的原始強度)。
- √d
- 縮放係數=2,讓 softmax 不要太快飽和;T 是另外加入的教學旋鈕。本頁 d = 4 固定;若選 d = 64,則 √d = 8,並非所有模型都使用這個維度。
- softmax
- 把一整列七個分數壓成加起來剛好=1 的比例——就是下面那條長條被剛好填滿。
- wij
- amber,熱圖裡的一格、或長條裡的一段;看得越重就越大,每一列的和=1。
- vj
- token j 傳出去的內容;這個 demo 用 v=k 簡化,真實模型會學一個獨立的 W_V。
- outputi
- 混合完的新向量:以 it 為例,output ≈ 0.83·vcat + 0.07·vit + …,在本頁手工定義的 ENTITY 軸上較大。這只描述本例的數字,不表示 attention 已證明 it 的身分。
拿掉 √d 的縮放,T = 1 時,it→cat 的注意力權重會從 0.83 衝到 0.99:差距被放大,softmax 幾乎整個押在同一格上(飽和)。√d 就是用來擋住這件事。
來源與範圍
Vaswani 等:Attention Is All You Need(§3、式 1–3)
互動是指定條件下的教學模型;圖像幫助觀察,不能取代公式的適用條件。
連結
回到 Neblux 圖譜
這頁暫時掛在較寬的「Deep Learning」節點;自注意力只是其中一個更窄的焦點,這頁只教一顆注意力頭的核心,不代表整個節點的範圍。等資料變更經過審查後才考慮拆出更精確的節點。
打開對應圖譜節點