用大白話通俗講解 AI 大模型中的 Transformer【無代碼無公式版】
自 2025 開年以來,Deepseek、Claude Sonnet 3.5 等大語言模型(LLM)快速興起,引領了幾乎涵蓋所有行業的 AI 變革。
而這場 AI 革命熱潮的緣起,則不得不提 Transformer 模型,正是由它的顛覆性誕生,爲後續 Deepseek、OpenAI 等模型提供了基礎架構。
那什麼是 Transformer 模型呢?網上有很多相關介紹,或是通俗講解,從數學公式到 Python 代碼,圖文並茂、應有盡有。
但作爲非科班出身,或對矩陣、深度學習興趣不大的羣體來說,閱讀起來還是有些困難。於是就有了本文。
我對大語言模型非常感興趣,特別是如何高效利用 LLM 去解決工作和生活中的問題。
欲知其然,需知其所以然。因此瞭解甚至掌握 Transformer 架構是我的目標,但不同於研發或算法,拘泥於實現細節也不是我想要的。
如果讀者朋友希望從 “還原論” 出發,通過非常通俗的文字概念性瞭解 Transformer 的各組成部分及他們之間的相互作用,那歡迎你繼續讀下去。
文章觀點僅是個人理解,如有錯誤請不吝指出。
一、編碼器(Encoder),左半圖
1、詞嵌入 & 位置編碼(Embedding & Positional Encoding)
將我們輸入的自然語言切分成文本處理的最小單元(token),例如 “簡單說數據分析”,可能被切分成“簡單 | 說 | 數據 | 分析” 這 4 個 token
然後將這組 token 轉化成計算機可以理解的數據,更專業說法是詞向量
一個 token 對應一個詞向量,如果一個詞向量維度是 255,那就意味 “簡單” 被轉化成 255 個數字,“說”、“數據”、“分析”也是同理
這時候,通俗來說,“簡單說數據分析” 就被轉化成 4(token 數量) * 255 = 1020 個數字
由於多頭自注意力機制在處理數據時,不會關注每個詞向量的位置,這就導致 “小明打小紅” 和“小紅打小明”在它看來是相同的字向量組
因此我們會把每個 token 的位置信息也添加到字向量中,具體方式是通過函數轉化,由於涉及到公式,在這裏略過不表
最終結論就是,本步驟將用戶輸入的自然語言,通過詞嵌入轉化成一組詞向量,然後加上位置信息,輸出到多頭自注意力機制中
2、多頭自注意力機制(Multi-Head Self-Attention)
這是 Transformer 模型的核心,它將在多個單元中分別獨立分析上一步的結果信息,然後彙總成加工好的信息輸出到前饋神經網絡中
(1)首先這裏的多個單元,對應了標題中的 “多頭”,即自注意力頭,其具體數量取決於模型設計,例如 GPT-3 使用 96 個頭,BERT-base 使用 12 個頭等等
具體到每一個頭,可以把他們比喻成一個虛擬大腦,它會從三個角度,對輸入的詞向量組形成自己的理解。
爲了便於講解,我們暫時將這三個角度比喻爲:詞性(Q)、詞與詞的關係(K)、詞義(V)
(2)通過對詞性(Q)和詞與詞的關係(K)之間的信息融合,得到自注意力權重,加上詞義,作爲這個頭的輸出
我將用兩個例子近似說明下這個過程中,模型將會學習和判斷的信息
-“我買了蘋果和梨子”“我買了蘋果手機”,兩句話都包含 “蘋果” 這個詞,但前者是水果,後者是手機品牌
-“我要學習數據分析”“我分析表格裏的數據得到結論”,兩句話都有 “分析”,但前者可以把它跟“數據” 綜合起來看,而後者的 “分析” 是一句話中的謂語動詞
(3)每個注意力頭都會給出它視角下的自注意力權重和詞義,將所有自注意力頭提供的信息彙總,輸出到下一步
這一步可以從兩個方面去理解:
-
通過多個自注意力頭,從更多的角度去理解和學習自然語言的含義,即 “更全面地思考問題”
-
通過更多的自注意力頭的加權融合,降低對語言理解的隨機性,即 “羣衆的眼光是雪亮的”
3、殘差連接 & 層歸一化(Residual Connection & Layer Normalization)
殘差連接,可以理解爲保留副本,即同時將原始數據和加工後數據傳到下一步
層歸一化,通過數學方法,將數據大小始終保持在指定範圍內,例如 0~1 之間
對於模型來說,比起絕對值大小,它更關注數字之間的關係
例如學校期末考試,語文數學外語滿分 150 分,物理化學滿分 100 分,綜合滿分 30 分
由於滿分標準不同,對於一個學生來說,80 分對數學來說是及格,但對物理來說是優秀
因此我們不妨將學生得分除以該科目的滿分分數,即該學生數學爲 0.6,物理爲 0.9,這個過程可近似理解爲歸一化
4、前饋神經網絡(Feed-Forward Network)
深度加工信息,增強 Transformer 模型的表達能力。
例如一根豎立着的木棍,如果從垂直視角看,只是一個圓
但從水平方向看,就是個長方形;要是從斜向看,得到的信息會更多更全面
通俗點說,本步驟就是尋找一個最佳視角,對輸入信息做出儘可能充分地表達
最後將結果輸出到解碼器中,這裏的結果可以稱爲 “編碼器記憶”
二、解碼器(Decoder),右半圖
1、詞嵌入 & 位置編碼(Embedding & Positional Encoding)
這裏相較於編碼器,最大的區別是輸入。不是用戶的自然語言,而是一個初始 token 和解碼器輸出的不斷堆疊。
例如,第一輪的輸入是 “” 這一個單詞,通過解碼器加工後輸出“ 你”
該結果將成爲第二輪輸入,再次通過解碼器加工,輸出更多的信息
然後再將它作爲新的一輪輸入,自此循環,直到滿足終止條件
2、掩碼多頭自注意力機制(Masked Multi-Head Self-Attention)
區別於之前提到的多頭自注意力機制,關鍵在於多了 “掩碼” 一詞
簡單說,對於語言類大模型的輸出,我們通常希望它根據歷史信息去預測下一個詞是什麼
因此通過引入掩碼多頭自注意力,讓模型無法看到當前位置以後的信息
3、殘差連接 & 層歸一化(Residual Connection & Layer Normalization)
同編碼器,主要是對自注意力機制輸出的結果數據進行加工和融合
4、多頭自注意力機制(Multi-Head Self-Attention)
這一步將融合前序中掩碼多頭自注意力層的輸出,以及編碼器記憶
在解碼器中,掩碼多頭自注意力機制和多頭自注意力機制同時存在,它們的作用是完全不同的,前者用來處理解碼器自身輸入的關係。而後者由於融合了編碼器記憶,它將會建立解碼器和編碼器輸出之間的關聯。這樣一來,纔可以保證大模型輸出的內容是針對用戶輸入自然語言的回答。
5、前饋神經網絡(Feed-Forward Network)
同編碼器,起到豐富表達的作用
再簡單梳理一遍 Transformer 加工數據的全過程
1、信息首先進入 "關聯分析部門"(多頭自注意力)
2、原始信息通過 "雙軌制"(殘差連接)保留
3、經過 "標準化部門"(層歸一化)處理
4、最後送入 "深度加工部門"(前饋網絡)
這個過程會重複多次(多層編碼器),就像一個文件要經過多個部門反覆審覈和完善,每經過一次處理,信息就變得更加精煉和有價值。
5、掩碼多頭自注意力層逐步輸出信息
6、解碼器注意力層隨時查看原文
7、前饋網絡持續優化產出的信息
最後記錄一下稍微學術化的筆記,作爲備註參考:
(1)Multi-Head Self-Attention:多頭自注意力層,多個單元分別獨立分析信息,然後彙總
(2)Feed-Forward Network:前饋神經網絡,深度加工信息
(3)Residual Connection & Layer Normalization:殘差連接 & 層歸一化,保留副本、處理後信息,統一格式,傳到後續環節
(4)輸入詞,通過詞嵌入,得到詞向量,並加上對應的位置編碼,傳入到多頭自注意力層
(5)多頭自注意力層中,自注意力頭的數量是一個超參數,取決於模型設計,通常爲 8~16 個,每個頭都有自己的 QKV 權重矩陣
(6)針對每個自注意力頭,用權重矩陣 * 詞向量 & 位置編碼,獲得每個詞的 QKV;針對每個詞的 QKV,用 Q 點積 K,獲得每個詞的自注意力權重,然後歸一化,再乘以 V
(7)針對每個自注意力頭,詞嵌入後,得到詞與詞之間的關係,通過 WQ 權重矩陣,獲得該自注意力頭對詞向量獨特視角,
(8)自注意力機制的輸入,是會對整個段落做詞嵌入和添加位置信息,自注意力機制同時處理整個序列
(9)前饋神經網絡的作用是,通過兩層全連接,對向量組進行非線性變化,目標是增強模型的表達能力
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/MkXRem62RqhHpBAoQ-RnCA