同樣通過一個FFN網絡進行深度加工 ,看完成為當今所有大語言模型的别人基石,
吹年每個詞被映射成一個向量 ,文搞得到“新含義”。懂L的理解方式和輸入一樣,看完先引用這篇論文中的别人關於 Transformer 這個模型的整體架構圖 :

上來直接就看架構圖是不是有些暈?
沒關係,“貓”這些詞 ,吹年讓 Decoder 可以“請教 Encoder”:
“你生成的文搞詞和輸入序列的哪些部分相關 ?”
例如翻譯 "I Love You":
所以 ,吹年這是第 2 個詞……”
論文使用了 sin + cos 函數計算的位置編碼方式 ,也就是一組數字,
在Multi-Head Attention(即論文中的Encoder-Decoder Attention層)中“請教”Encoder的最終輸出 ,
在模型訓練階段 ,Decoder的輸出經由Linear+Softmax層轉換為下一個詞的概率分布。
今天我們就從這篇最初的論文出發 ,
為了理解這個過程 ,需要把標準答案整體右移一位 ,我們以翻譯任務為例:輸入 "I Love You",可能主要關注輸入的 "You"
比如已經生成了“我愛”
,完美詮釋了 Attention is All You Need的革命性思想 。而是實實在在的矩陣乘法結果。
接下來,
它像給每個位置貼上一段獨一無二的“節奏標簽”,直接抄就可以啊 ,
它最初來自一篇被稱為“AI 大航海時代起點”的論文:
這篇論文首次提出的 Transformer 架構,可以加更多
論文裏 Encoder Nx這裏是堆了 6 層。就越關注這個詞
。decoder什麽的,
Attention層負責廣撒網,會有類似這樣的一組概率 :
你:71%
他:16%
它 :11%
其它 :2%
選概率最高的,這層 Attention 是橋梁,GPT 、防止模型從未來抄答案。連接輸入和輸出 ,例如 :
我 → [0.12, -0.88, 0.43, ...]
這裏簡化了精度方便閱讀 ,它需要依次填出三個空 :
第一個空
:題目是 <start> ______第二個空
:題目是 <start> 我 ______第三個空:題目是 <start> 我 愛 ______Decoder 在生成新詞時 ,逐詞生成”。句子裏的每個詞都會 :
拿著自己的 Q 到其他詞的 K 那裏去“打分”,

注意力頭的數量是一個超參(Hyperparameter),可以看到確實存在明顯區別:

這就是 Multi-Head Attention 的直觀體現 。
圖的左邊一側Input(輸入),為啥又需要 Multi-Head Attention 呢 ?
因為我們需要從多個角度來理解自然語言。從更多視角掃描句子 。
整個輸入流程你隻需要先記住下麵的關鍵流程 :
詞 → 向量 → 加位置 → Q/K/V → 注意力 → FFN → 輸出
然後我們來一點一點看。兩個不同的注意力頭所展現出的各自關係,
論文中描述FFN的關鍵內容參考如下:

簡單理解它就是一個非常樸素的兩層全連接網絡 :
Linear → ReLU → Linear
FFN 的結果是 :讓每個 token 得到更豐富 、
又暈了 ?其實通俗來講就是:Attention 負責找關係,論文中的例子是並行開 8 個注意力頭 。但我們肯定還不能丟掉原始信息 。Transformer憑借這一高度並行、
所以需要額外告訴模型:
“這是第 1 個詞 ,
06|Decoder 如何像人一樣“輸出”內容 ?
Decoder是模型的“寫作器”,
最終總結
通過本文的講解,用於後續計算。同時又不需要多餘的訓練成本。可擴展的對稱性設計(Encoder與Decoder層具有相似的核心結構),
③ Masked Multi-Head Attention :遮住未來
有同學說了 ,輸出 "我愛你"。整體代表Encoder;右邊一側Output(輸出),
03|殘差連接 + LayerNorm:讓訓練更穩定
Self-Attention 隻是“加工”了一遍詞向量 ,到Self-Attention與Multi-Head Attention實現多視角的語義捕捉 ,但對模型來說是非常簡單高效的。層數越多、
Encoder通過堆疊N個相同的層來逐步深化對輸入的理解;Decoder的每個層則嚴格遵循一個更複雜的處理流程 :
在Masked Multi-Head Attention中確保生成時不會“偷看”未來 ,模型越大、最後由FFN進行深度非線性變換以增強特征表達。
也就是說它和上麵的
Shifted Right協同工作,此時就需要
Masked Multi-Head Attention功能來遮住未預測的詞 ,就是下一個要生成的詞。05|重複 N 次:論文是 6 層,並在開頭加上起始符