2024-06-25|閱讀時間 ‧ 約 23 分鐘

AI說書 - 從0開始 - 49

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


再度回到 Transformer 架構中的 Encoder 部分,如下圖所示:


我現在手上有的素材如下:



現在我們準備把既有的素材合在一起,目前我手上有每個字的 Input Embedding 與 Positional Encoding,每個字都有這兩項素材,且它們都是維度為 512 的向量,依據原始 Google 發表的 Transformer 論文,合起來的步驟是這樣的:

  1. 每個字的 Input Embedding 向量乘上 (512開根號 )
  2. 上述結果拿來跟每個字的 Positional Encoding 相加
  3. 注意因為兩者維度都是 512 ,所以向量可以相加,此外每個字都要重複上述步驟


至於為什麼要乘上 (512開根號) 呢,這和 Embedding 在訓練的時候,內部神經網路的初始權重配置有關係,為了避免訓練不穩定,通常會給每個權重的變異數加以限制,也因為這樣的配置,在神經網路訓練好之後,要再把它調整回來,那根號的原因和變異數有平方的概念相抵銷,整體的數學邏輯可以參照:

https://stats.stackexchange.com/questions/534618/why-are-the-embeddings-of-tokens-multiplied-by-sqrt-d-note-not-divided-by-sq

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