iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0
AI & Data

實戰派 AI 工程師帶你 0->1系列 第 14

Day14: 兩周小總結

  • 分享至 

  • xImage
  •  

前情提要

昨天已經把歸一化的部分介紹完也實作完了,那其實還有很多歸一化的方法,就看自己使用的場景。

今天我們來把這兩周學過的做個總結,方便自己做個檢視,看自己哪有不熟,可以再次複習,一回生二回熟。

已學:

  1. Tokenizer
  2. Embedding
  3. Self-Attention
  4. Multi-head Attention
  5. FFN, Activation Function
  6. Normalization

Question

  1. 為什麼需要做 Tokenizer?
    以及有哪些分詞的方法(舉出兩個)?
  2. 為什麼需要從 token 轉換成 Embedding?
    假設一個文字的 Embedding 是 4 維,能不能舉例 4 維分別代表什麼?
  3. Self-Attention 的核心觀念?
  4. 為什麼需要 Multi-head?
    Attention 的作用是什麼?
  5. 為什麼需要 FFN?
    為什麼需要 Activation Function?
    為什麼需要先升維後降維?
  6. 為什麼需要 Normalization?

可以花些時間回答上面的問題,如果你同學或朋友問你,你又應該如何簡單說明讓他聽得懂呢?
會特別在這停留一段時間,主要是因為我身為家教老師,很清楚知道看著別人寫的並不代表自己會,要能說明讓別人明白,才代表自己是真的會也才記得長久,也是我這個系列的初衷,讓你 "0 → 1"

如果你對上面的問題卡卡的,會強烈建議你再次複習。

雖然只有短短兩周,但回過頭你已經學了很多東西,但其實我們還少了一點東西
參考文章: https://www.cnblogs.com/rossiXYZ/p/18744797
參考文章當中的程式

import torch
import torch.nn.functional as F
d = 8 # 词嵌入维度
l = 3 # 句子长度
q = torch.randn(1,d) # 我
k = torch.randn(l,d) # 我爱你
v = torch.randn(l,d) # 我爱你

orig_attn = F.softmax(q@k.transpose(1,0),dim=1)@v

# 调转位置
k_shift = k[[2,1,0],:] # 你爱我
v_shift = v[[2,1,0],:] # 你爱我
shift_attn = F.softmax(q@k_shift.transpose(1,0),dim=1)@v_shift

print('我爱你:',orig_attn)
print('你爱我:',shift_attn)

https://ithelp.ithome.com.tw/upload/images/20250908/20168446FhK5xGAoi2.png
你會發現 attention 計算時,順序並不會影響答案,那就尷尬了,如果是這樣 attention 怎麼知道你想表達的意思是什麼,所以我們還缺少最後一塊拼圖"位置編碼",今天就先到這囉~ 明天繼續介紹位置編碼。


上一篇
Day13: RMSNorm & 實作
下一篇
Day15: 位置編碼 (上)
系列文
實戰派 AI 工程師帶你 0->115
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言