我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
- Single-Head Attention 數學說明:AI說書 - 從0開始 - 52
- Multi-Head Attention 數學說明:AI說書 - 從0開始 - 53
- Attention 機制程式說明 - 輸入端:AI說書 - 從0開始 - 53
- Attention 機制程式說明 - Query 端:AI說書 - 從0開始 - 54
- Attention 機制程式說明 - Key 端:AI說書 - 從0開始 - 54
- Attention 機制程式說明 - Value 端:AI說書 - 從0開始 - 55
- Attention 機制程式說明 - Query 、 Key 、 Value 結果:AI說書 - 從0開始 - 56
- Attention 機制程式說明 - Attention Score 計算:AI說書 - 從0開始 - 57
目前我們已經計算出 Attention Score ,現在來執行正規化:

- 回顧 AI說書 - 從0開始 - 57,我已經得到 A 為
A = [ 2 4 4
4 16 12
4 12 10 ]

- 接著對 A 執行正規化得到 A',程式為:
scores[0] = softmax(A.transpose()[0])
scores[1] = softmax(A.transpose()[1])
scores[2] = softmax(A.transpose()[2])
print(scores[0])
print(scores[1])
print(scores[2])
A' = scores.transpose() # Column Normalized
具體數學是這樣,矩陣 A' 的元素我用 [i, j] 來表示:
- A'[1, 1] = exp(2) / (exp(2) + exp(4) + exp(4))
- A'[2, 1] = exp(4) / (exp(2) + exp(4) + exp(4))
- A'[3, 1] = exp(4) / (exp(2) + exp(4) + exp(4))
- A'[1, 2] = exp(4) / (exp(4) + exp(16) + exp(12))
- A'[2, 2] = exp(16) / (exp(4) + exp(16) + exp(12))
- A'[3, 2] = exp(12) / (exp(4) + exp(16) + exp(12))
- A'[1, 3] = exp(4) / (exp(4) + exp(12) + exp(10))
- A'[2, 3] = exp(12) / (exp(4) + exp(12) + exp(10))
- A'[3, 3] = exp(10) / (exp(4) + exp(12) + exp(10))