05|重複 N 次 :論文是 6 層 ,
它像給每個位置貼上一段獨一無二的懂L的“節奏標簽” ,因此模型本身無法“天然”感知詞的看完先後關係。
06|Decoder 如何像人一樣“輸出”內容 ?别人
Decoder是模型的“寫作器”,
所以需要額外告訴模型:
“這是吹年第 1 個詞 ,
當提起 Transformer 這個話題時,文搞
本文不討論公式,懂L的需要把標準答案整體右移一位,看完Decoder的别人輸出經由Linear+Softmax層轉換為下一個詞的概率分布。但也是吹年理解後麵一切的起點 。從更多視角掃描句子 。文搞模型越大、懂L的
① Output Embedding :先把輸出詞變向量
理解方式和輸入一樣,看完需要把每個詞轉換成一個向量 ,别人對這個信息進行更複雜、吹年最後由FFN進行深度非線性變換以增強特征表達。
Encoder通過堆疊N個相同的層來逐步深化對輸入的理解;Decoder的每個層則嚴格遵循一個更複雜的處理流程:
在Masked Multi-Head Attention中確保生成時不會“偷看”未來,相當於給模型做一個填空題 :
題目: <start> 我 愛此時模型看到的是:
<start> 我 愛也就是右移一格。每個詞被映射成一個向量,起不到訓練效果 。旨在讓更多讀者看完就能通俗地、
這其實也是模型訓練堆GPU能“大力出奇跡”的理論基礎。
在Multi-Head Attention(即論文中的Encoder-Decoder Attention層)中“請教”Encoder的最終輸出,向量化這一步非常基礎,為啥又需要 Multi-Head Attention 呢 ?
因為我們需要從多個角度來理解自然語言 。更抽象的特征表達 ,論文中的例子是並行開 8 個注意力頭。“貓”這些詞 ,把相關信息搜集到一起;
FFN則負責深加工,可以看到確實存在明顯區別:
這就是 Multi-Head Attention 的直觀體現。
接下來 ,就越關注這個詞。讓每個詞清楚自己的“位置”。
句子中的每個詞都會生成 3 個向量:
- Q(Query)我想找什麽?
- K(Key)我是誰 ?我有什麽特征?
- V(Value)我的實際含義是什麽 ?
它們不是概念,得到“新含義”。並最終經過Add & Norm後輸出給下一層或最終的預測模塊。
所以 ,
後來的 BERT、
② Positional Encoding:給模型裝上“位置感”
Transformer 沒有像傳統 RNN 那樣按順序逐詞處理輸入,
圖的左邊一側Input(輸入) ,描述了針對同一段文字 ,層數越多、會有類似這樣的一組概率 :
你:71%
他:16%
它 :11%
其它 :2%選概率最高的 ,GPT、
其工作嚴格遵循架構圖右側流程,輸出 "我愛你" 。為了理解這個過程,但對模型來說是非常簡單高效的。到Self-Attention與Multi-Head Attention實現多視角的語義捕捉 ,
③ Q / K / V :Self-Attention 的靈魂
這是最讓人拍案叫絕的設計之一 。
最終總結
通過本文的講解 ,可能主要關注輸入的 "You"
⑤ Linear + Softmax:得到下一個詞的概率
比如已經生成了“我愛”,Llama 都堆到了幾十層甚至上百層。
比如模型要開始做這張填空卷了。句子裏的每個詞都會:
拿著自己的 Q 到其他詞的 K 那裏去“打分” ,這樣模型才能表達更複雜的模式,
① Input Embedding:把詞變成數字向量
模型不認識“我” 、
注意力頭的數量是一個超參(Hyperparameter),這是第 2 個詞……”
論文使用了 sin + cos 函數計算的位置編碼方式,逐詞生成”。
但這其實也是一個 超參(Hyperparameter) 。
這就是單一的 Self-Attention 。而不僅僅是做簡單的線性組合 。成為當今所有大語言模型的基石,
此時就需要 Masked Multi-Head Attention功能來遮住未預測的詞,
同樣通過一個FFN網絡進行深度加工 ,
04|Feed Forward 網絡(FFN):進一步加工語義
Attention層負責廣撒網,但若深入追問細節 ,整體代表Encoder;右邊一側Output(輸出) ,這層 Attention 是橋梁,decoder什麽的,也能堆更多層。
最終,更深度的非線性變換 。
02|為什麽需要 Multi-Head Attention ?
有了單一的 Self-Attention,已經成為當下所有大模型的基礎。隻能接受數字 。FFN 負責提升表達力 。並再次經過Add & Norm。後麵這個字是啥,先引用這篇論文中的關於 Transformer 這個模型的整體架構圖:

上來直接就看架構圖是不是有些暈 ?
沒關係,例如:
我 → [0.12, -0.88, 0.43, ...]
這裏簡化了精度方便閱讀
,並在開頭加上起始符


