2024-06-26|閱讀時間 ‧ 約 24 分鐘

AI說書 - 從0開始 - 53

我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。


AI說書 - 從0開始 - 52 中,我們已經解析完 Attention 機制如何運作的,以下延伸至 Multi-Head Attention:


Head 1 說明:

  • Single-Head Attention 把向量 ai 乘上矩陣 Wq 變成向量 qi
  • 舉 2-Head 例子來說明
  • Mulgti-Head Attention 再把向量 qi 乘上矩陣 Wq,1 變成向量 qi,1
  • 延續 Single-Head Attention 作法得到 bi,1


Head 2 說明:

  • Single-Head Attention 把向量 ai 乘上矩陣 Wq 變成向量 qi
  • 舉 2-Head 例子來說明
  • Mulgti-Head Attention 再把向量 qi 乘上矩陣 Wq,2 變成向量 qi,2
  • 延續 Single-Head Attention 作法得到 bi,2


合併:

  • Mulgti-Head Attention 最後得到的向量 bi,1 與向量 bi,2 ,合併後乘上矩陣 W 變成向量 bi
  • 至此的格式就變成跟 Single-Head Attention 一致了




然後有一點要注意,我們為了方便說明,在向量乘法中,我們忽略了一個項目,現實情況的 Transformer 的向量乘法會除上「根號 矩陣維度」,而矩陣維度有兩個,其一是 Input Embedding 的維度,而我們選另一個維度,以避免向量越來越長,引起乘法結果越來越大的議題。


講完數學,現在我們來打一點程式說明一下 Multi-Head Attention 的運作機制,為了方便說明,我們把 Input Embedding 的維度由 512 改成 4,此外我指定一個句子只有 3 個字,這樣的小規模,讓大家比較不會害怕:

import numpy as np
from scipy.special import softmax

x = np.array([[1.0, 0.0, 1.0, 0.0], # Word 1
[0.0, 2.0, 0.0, 2.0], # Word 2
[1.0, 1,0, 1,0, 1,0]]) # Word 3



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.