Transformer 引擎

注意力分數(attention scores)

在一個詞元混入脈絡之前,模型得先為其他每個詞元的相關程度排名。這些原始排名就是注意力分數:每一對詞元對應一個數字,表示第一個詞元該多用力去聽第二個。分數高表示「這個詞現在對我很重要」;分數低或為負則表示「大致忽略它」。

每個分數是某個詞元的查詢向量和另一個詞元的鍵向量之間的點積——衡量兩個方向有多對齊。分數會除以頭維度的平方根來縮小,避免它們大到讓下一步飽和。對一段 n 個詞元的序列,你會得到一張 n 乘 n 的分數表,每個發出查詢的詞元一列,此階段仍是原始、未正規化的。

光看分數,它們只是相似度,還不是權重——大小可正可負,沒有上限。softmax 那一步會把每一列變成乾淨的機率分布。分數也是因果遮罩動手的地方:未來的位置被設成負無窮,正規化之後它們的分數就成了零。

e_{ij}=\frac{q_i\cdot k_j}{\sqrt{d_k}}

詞元 i 對詞元 j 的分數,是兩者查詢與鍵的點積再做縮放。

又称
attention logits