更新於 2024/06/23閱讀時間約 2 分鐘

AI說書 - 從0開始 - 43

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


我們在AI說書 - 從0開始 - 42中,見識了 Tokenizer 做的事情了,以下來羅列幾個要點:

  • 它將原始文字轉成小寫
  • 有可能將原始文字再進行切割
  • 通常 Tokenizer 會提供「整數表達」,以供後續的 Embedding 流程使用,示意如下:

圖片出自:Transformers for Natural Language Processing and Computer Vision - Third Edition, Denis Rothman, 2024


至目前為止, Tokenizer 僅提供 Tokenized Text ,還無法提供太多有用資訊,因此還需要做 Embedding ,此方法有很多,以下舉例 Word2Vec 的 Skip-Gram 說明:

  • 2013年由 Google 提出
  • 假設我關注 2-Step Window 方式,則當我在 word(i) 時, Skip-Gram 模型會分析 word(i-2) 、 word(i-1) 、 word(i+1) 、 word(i+2),因此假設我的句子是:「The quick brown fox jumps over the lazy dog」,那麼我可以產生的 Training Samples 就是:(the, quick)、(the, brown)、(quick, the)、(quick, brown)、(quick, fox)等等
  • 有了 Training Samples 之後,當使用類神經網路來訓練時,輸入層是一個 One-Hot 編碼表示的 1 x 10000 的向量,輸出層也會是相同維度,當中的 10000 僅是舉例,再引入例如維度為 300 的隱藏層,那麼圖示結果就是:

圖片出自:https://arxiv.org/pdf/1301.3781

  • 因為 One-Hot 編碼只有一個維度會是 1,其他皆為 0,所以輸出層基本上就是去查是 1 的那個維度,相對應於隱藏層中那個 Row,這就是 Word Vector 的由來
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.