My thoughts by chatgpt

每個 token vector 會被轉成 Q、K、V 三種向量。

Q 可以理解成「我想找什麼」。
K 是「我有什麼特徵可以被匹配」。
V 是「我真正提供的內容」。

那 attention 的下一步,就是讓每個 token 的 Q,去跟其他 token 的 K 算關聯分數。

例如「放進」這個 token,可能會去看整句話裡的「蘋果」、「冰箱」、「我」、「把」等等。它不是用中文文法規則去判斷誰重要,而是拿「放進」的 Q 向量,去跟每個 token 的 K 向量做內積。

如果一次只看兩個 token,這件事就是向量內積。

例如:

Q_放進 · K_蘋果 = 關聯分數
Q_放進 · K_冰箱 = 關聯分數

分數越高,代表模型判斷「放進」處理自己時,越應該注意那個 token。

但實際模型不會一組一組慢慢算。它會把整句話所有 token 的 Q 疊成一個 Q matrix,把所有 token 的 K 疊成一個 K matrix,然後直接做矩陣相乘:

Q × Kᵀ

這個矩陣相乘會得到一張 attention score table。表格裡的每一格,就是「某個 token 的 Q」跟「另一個 token 的 K」算出來的關聯分數。

例如:

「放進」→「蘋果」:4.0
「放進」→「冰箱」:6.0
「放進」→「我」:0.1

這些數字還不是最後的注意力比例,只是原始分數。接著模型會把它們丟進 softmax。

softmax 的功能很直覺:把一堆分數轉成加總為 100% 的比例。分數越高,比例越大;分數低,比例就接近 0。

所以原本:

「蘋果」:4.0
「冰箱」:6.0
「我」:0.1

經過 softmax 後,可能變成:

「蘋果」:12%
「冰箱」:88%
「我」:幾乎 0%

這時候模型就知道:處理「放進」這個 token 時,應該主要吸收「冰箱」的資訊,也要吸收一些「蘋果」的資訊。

最後一步,就是用這些比例去加權混合每個 token 的 V。

也就是:

新的「放進」向量
= 12% × V_蘋果

  • 88% × V_冰箱

  • 很小比例 × 其他 token 的 V

所以 attention 之後,「放進」就不再只是孤立的 token,而是帶有上下文資訊的新向量。它會知道自己比較像是一個「把某個東西放到某個地方」的動作。

這讓我覺得 attention 其實沒那麼神秘。它的核心流程就是:

  1. 用 Q × Kᵀ 的矩陣相乘,算出每個 token 對其他 token 的關聯分數
  2. 用 softmax 把分數轉成注意力比例
  3. 用這些比例去加權混合 V
  4. 得到每個 token 的新向量

所謂「token 彼此互看」,其實就是這件事。

它不是人類意義上的理解,而是一套大規模的數學資訊交換機制。每一層 transformer block 都會讓 token 重新互相參考一次。模型疊很多層後,token 的向量就會越來越有上下文、越來越有語意。


⭐️ Shopify 網站開發服務(給品牌)
https://job.turn.tw/shopify-services

⭐️ 小網站開發服務(功能明確、規模不大的需求)
https://job.turn.tw/small-website-services

⭐️ 台灣 Shopify 商家交流 LINE 群(非官方)
https://line.me/ti/g2/PZ_1LILWVWWuzZQ50HNpYA-A3k6QXWF6znqoBQ

⭐️ 台灣 Shopify 開發者 LINE 群(非官方)
https://line.me/ti/g2/YUasX5K3CJ4QdIx76zppjHlh3-q8w-xkSyK1LA

共有 0 則留言


⭐️ Shopify 網站開發服務(給品牌)
https://job.turn.tw/shopify-services

⭐️ 小網站開發服務(功能明確、規模不大的需求)
https://job.turn.tw/small-website-services

⭐️ 台灣 Shopify 商家交流 LINE 群(非官方)
https://line.me/ti/g2/PZ_1LILWVWWuzZQ50HNpYA-A3k6QXWF6znqoBQ

⭐️ 台灣 Shopify 開發者 LINE 群(非官方)
https://line.me/ti/g2/YUasX5K3CJ4QdIx76zppjHlh3-q8w-xkSyK1LA
🏆 本月排行榜
🥇
站長阿川
📝12  
414
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次