殘差連接的作用
Transformer中的殘差連接(Residual Connection)是其深層架構能穩定訓練的核心設計之一,主要通過以下機制發揮作用:
1. 緩解梯度消失,支持深層訓練
-
梯度保護機制:在反向傳播時,殘差連接提供了一條“短路路徑”,使梯度能直接回傳到淺層。數學表示為:若某層輸出為:H(x) = F(x) + x,則梯度為:?H/?x = ?F/?x + 1,即使變換層梯度?F/?x趨近于0(梯度消失),常數項1仍能保持梯度有效傳遞,避免深層網絡(如12層以上的Transformer)無法更新淺層參數的問題。
-
深層堆疊基礎:GPT-3等百層模型依賴此機制保障訓練穩定性。
2. 保留原始信息,增強特征表達
-
信息融合:殘差連接將輸入x(如詞嵌入)與子層輸出(如自注意力結果)相加,即x + SubLayer(x)。原始輸入包含基礎語義(如詞的字面含義),子層輸出則捕捉高級特征(如上下文關聯),融合后既保留基礎信息,又融入深層特征,避免信息丟失。
-
類比理解:如同修改論文時保留初稿并添加批注,而非重寫——確保迭代優化不破壞初始信息。
3. 協同層歸一化,穩定訓練分布
-
與層歸一化(LayerNorm)配合:殘差連接后緊接層歸一化(LayerNorm(x + SubLayer(x))),歸一化操作修正相加后的數據分布(調整為均值0、方差1),解決“內部協變量偏移”問題(即網絡輸入分布隨訓練動態變化)。這一組合顯著提升訓練穩定性和收斂速度。
-
對比實驗:若移除殘差連接,Transformer在6層以上時訓練損失難以收斂。
4. 提升模型表達能力與收斂效率
-
恒等映射學習:殘差連接使網絡更容易學習恒等變換(即F(x) ≈ 0),當深層無額外增益時可退化回淺層效果,避免性能退化(Network Degradation)。
-
加速收斂:跳躍連接減少參數更新次數,實驗表明殘差結構能縮短訓練周期約30%。
5.殘差連接有無對比
場景 | 有殘差連接 | 無殘差連接 |
---|---|---|
梯度傳播 | 梯度穩定,深層可訓練 | 梯度消失,淺層參數無法更新 |
信息保留 | 融合基礎與高級特征 | 高級特征覆蓋原始信息 |
訓練穩定性 | 配合LayerNorm,分布穩定 | 輸入分布漂移,收斂困難 |
深層擴展性 | 支持百層模型(如GPT-3) | 通常限于6層以內 |
6.總結
殘差連接是Transformer應對深度與性能矛盾的關鍵:通過梯度保護機制解決深層訓練難題,借助信息融合提升特征豐富性,并與層歸一化協同抑制分布漂移。這一設計使Transformer成為可堆疊數十層的強大架構,奠定了BERT、GPT等大模型的基礎。
歸一化的作用
在Transformer架構中,歸一化(通常指層歸一化,Layer Normalization)是確保模型訓練穩定性、加速收斂并提升性能的核心機制。其作用主要體現在以下幾個方面:
1. 解決內部協變量偏移(Internal Covariate Shift)
-
問題背景:神經網絡訓練過程中,每一層的輸入分布會因前一層參數更新而動態變化,導致后續層需不斷適應新分布,延緩收斂速度。
-
歸一化機制:層歸一化對當前層的輸入進行標準化處理,將其調整為均值0、方差1的分布,公式如下:LayerNorm(z)=γσ2+?z?μ+β,其中z為輸入特征,μ和σ2是特征向量的均值和方差,γ縮放參數)和β(平移參數)是可學習的參數。
-
效果:通過穩定每層輸入的分布,減少訓練震蕩,使模型更快收斂。
2. 加速訓練收斂與提升穩定性
-
梯度優化:歸一化后的數據分布更平滑,緩解梯度消失或爆炸問題,使反向傳播更高效。
-
實驗支持:Transformer中若無層歸一化,深層結構(如6層以上)難以收斂;添加后訓練速度可提升30%以上。
-
與殘差連接的協同:層歸一化通常在殘差連接(Add)后執行(即LayerNorm(x + SubLayer(x))),兩者結合既保留原始信息,又穩定分布,形成深度模型的訓練支柱。
3. 增強模型表達能力
-
可學習參數的作用:
-
縮放參數(γ):調整歸一化后數據的方差,控制特征幅度,使模型適應不同抽象層次的信息。
-
平移參數(β):調整數據分布的中心位置,保留原始數據的偏移特性,避免過度歸一化導致信息損失。
-
-
效果:模型在穩定分布基礎上仍能學習復雜特征,提升泛化能力。
4. 適配序列數據的特殊性
-
對比其他歸一化方法:
-
批歸一化(BatchNorm):依賴批次內樣本的統計量,對批次大小敏感,不適用于變長序列(如文本)。
-
層歸一化(LayerNorm):基于單個樣本的所有特征計算統計量,不受批次大小影響,天然適合序列模型。
-
-
Transformer中的應用:每個時間步獨立歸一化,避免序列長度差異導致的訓練不穩定。
5.總結:歸一化在Transformer中的核心價值
作用維度 | 關鍵技術點 | 影響 |
---|---|---|
訓練穩定性 | 解決內部協變量偏移,穩定層輸入分布 | 深層模型可訓練,收斂速度提升 |
特征表達 | 可學習的γ、β參數調整分布形態 | 保留信息靈活性,增強泛化能力 |
架構適配性 | 獨立處理樣本/時間步,適應變長序列 | 支撐Transformer處理文本等序列數據 |
歸一化與殘差連接的組合(Add & Norm)是Transformer能堆疊數十層的關鍵設計,不僅保障了BERT、GPT等大模型的可行性,也為長序列建模提供了基礎支撐。
N個編碼器之間如何堆疊
Transformer 編碼器的堆疊機制是其核心設計之一,通過多層結構逐步提煉輸入序列的上下文表示。以下是 N 個編碼器的堆疊方式及第 N-1 層與第 N 層的連接細節的詳細說明:
一、編碼器堆疊的核心原理
-
同構重復堆疊 Transformer 的編碼器由 N 個(通常 N=6)結構完全相同的層堆疊而成。每一層包含兩個子模塊:
-
多頭自注意力機制(Multi-Head Self-Attention):捕捉序列內全局依賴關系。
-
前饋神經網絡(Feed-Forward Network, FFN):對每個位置的表示進行非線性變換。
-
每個子模塊后接殘差連接(Residual Connection)和 層歸一化(Layer Normalization)。
-
-
信息傳遞路徑 每層編碼器的輸出直接作為下一層編碼器的輸入,中間無額外操作。這種設計使得:
-
底層編碼器學習局部特征(如詞法)。
-
高層編碼器學習全局語義(如句法、語義關系)。
-
二、第 N-1 層與第 N 層的連接細節
1. 輸入與輸出關系
-
第 N-1 層的輸出:經過其內部的子層處理(自注意力 → 殘差連接 → 層歸一化 → FFN → 殘差連接 → 層歸一化),生成一個維度為
(seq_len, d_model)
的矩陣(d_model
通常為 512)。 -
第 N 層的輸入:直接接收第 N-1 層的輸出矩陣,不經過任何線性變換或投影。
2. 殘差連接的作用
-
每個子模塊的輸出會與原始輸入相加:Output=LayerNorm(x+Sublayer(x))
其中:
-
x是第 N-1 層輸入(即第 N-2 層的輸出)。
-
Sublayer(x)是當前子層(自注意力或 FFN)的輸出。
-
-
目的:緩解梯度消失,確保深層網絡穩定訓練。
3. 層歸一化的位置
在殘差加法后立即執行:
-
公式:LayerNorm(x+Sublayer(x))
-
作用:穩定數值分布,加速收斂。
4. 層間數據流示例
以第 N-1 層到第 N 層為例:
第 N-1 層輸出 → 第 N 層輸入 → 多頭自注意力 → Add & Norm → FFN → Add & Norm → 第 N 層輸出
所有操作均在相同維度空間(d_model
)中進行,確保信息無損傳遞。
三、堆疊結構的數學表達
設第 k
層編碼器的輸出為 H_k
,則堆疊過程可描述為:
Hk=EncoderLayer(Hk?1)
其中:
H_0 是嵌入層 + 位置編碼的輸出。
-
EncoderLayer函數包含自注意力、FFN 及對應的殘差與歸一化操作。
四、關鍵設計意義
-
梯度穩定:殘差連接使梯度可直接回傳至底層,避免深層網絡退化。
-
表示深化:每層編碼器逐步融合更復雜的上下文信息,最終輸出包含全局語義的表示。
-
并行計算:所有層結構相同,支持全序列并行處理,提升訓練效率。
五、總結
Transformer 編碼器的堆疊本質是 “同構層 + 直連通路”:
-
第 N-1 層輸出直接作為 第 N 層輸入。
-
每層內部通過 殘差連接 + 層歸一化 維持信息穩定性。
-
最終輸出是輸入序列的深層語義表示,用于解碼器或下游任務(如分類)。
此架構通過重復堆疊簡單模塊實現復雜語義建模,是 Transformer 成功的關鍵之一 。
六、注意
在Transformer架構中,位置編碼(Positional Encoding)僅在輸入層與詞嵌入(Token Embedding)相加一次,后續的編碼器層(包括第二層及之后的層)不再重復添加位置編碼。以下是詳細解釋:
1. 位置編碼的應用層級
-
僅作用于輸入層:位置編碼在輸入嵌入階段被添加到詞嵌入向量中,生成包含位置信息的初始輸入表示。公式如下:
Input=TokenEmbedding+PositionalEncoding
這一操作在模型的最前端完成,后續所有層均直接使用該融合后的向量。
-
后續層無位置編碼添加:從第一層編碼器開始,每一層的輸入是上一層的輸出(即已包含位置信息的向量),不再額外疊加位置編碼。
2. 設計原因
-
信息傳播機制:位置信息在輸入層注入后,會通過編碼器的自注意力機制和前饋網絡逐層傳遞。每個編碼器層通過以下操作進一步提煉位置和語義信息:
-
自注意力機制:計算不同位置之間的依賴關系,隱含利用位置信息(例如,相對位置影響注意力權重)。
-
殘差連接:保留輸入層的原始位置信息,防止深層網絡中的信息丟失。
-
-
避免冗余與干擾:若每層都添加位置編碼,會導致位置信息被反復疊加,可能破壞語義特征的穩定性,并增加模型訓練的復雜度。
3. 位置編碼的數學特性**
位置編碼采用三角函數生成(如正弦/余弦函數),其設計具備以下關鍵性質:
-
相對位置可學習性:通過三角函數的線性組合,模型能隱式學習相對位置關系(例如,
PEpos+k可表示為 PEpos 的線性變換)。
-
外推能力:固定編碼(非可學習)使模型能處理訓練時未見過的序列長度。
4. 編碼器層間的信息傳遞流程**
以第 N?1 層到第 N 層為例:
-
輸入:第 N?1 層的輸出(已包含位置和語義信息)。
-
處理:
-
通過多頭自注意力機制,計算位置間的依賴關系。
-
通過前饋網絡進行非線性變換。
-
每一步均包含殘差連接(Add)和層歸一化(Norm),確保位置信息穩定傳遞。
-
-
輸出:傳遞至第 N層繼續處理,無需重新添加位置編碼。
? A[輸入嵌入] --> B[+位置編碼] --> C[第一層編碼器]C --> D[Add & Norm + 自注意力] --> E[Add & Norm + FFN]E --> F[第二層編碼器] --> G[...] --> H[第N層輸出]
5. 總結
-
位置編碼僅在輸入層添加一次,后續層通過自注意力和殘差連接自然傳播位置信息。
-
若在第二層重復添加位置編碼,會破壞原始設計的簡潔性與高效性,并可能導致訓練不穩定。Transformer通過單次注入和逐層提煉的機制,實現了位置與語義信息的平衡融合 。
N個解碼器之間如何堆疊,第N-1個解碼器的輸入來自于什么?
Transformer解碼器由N個結構相同的解碼器層垂直堆疊而成,每個層的輸出作為下一層的輸入,通過這種層級傳遞逐步優化目標序列的表示。以下是其堆疊機制和數據來源的詳細解析:
一、解碼器的堆疊結構
-
層間數據流動
-
垂直傳遞:第k層解碼器的輸出直接作為第k+1層的輸入(1 ≤ k ≤ N-1),形成鏈式依賴。
-
輸入初始化:
-
第一層輸入:目標序列的詞嵌入(訓練時)或起始符<sos>推理時) + 位置編碼 + 編碼器輸出(稱為memory)。
-
后續層輸入:依賴前一層的輸出,例如第N-1層的輸入來自第N-2層的輸出。
-
-
-
殘差連接與層歸一化 每個子層(自注意力、交叉注意力、前饋網絡)的輸出會與輸入進行殘差連接(Add),再通過層歸一化(Norm),確保梯度穩定傳輸,避免深層堆疊導致的退化問題。
二、第N-1層解碼器的數據來源
第N-1層解碼器的輸入包含兩部分:
-
來自第N-2層的輸出
-
第N-2層輸出的上下文向量(已融合局部語法和部分語義),作為第N-1層的初始輸入。
-
例如:淺層(第1-2層)可能關注詞序搭配(如動詞與賓語),而深層(如第N-1層)負責建模長距離依賴(如篇章指代)。
-
-
編碼器的輸出(memory)
-
所有解碼器層共享同一份編碼器輸出,通過
編碼器-解碼器注意力層(Cross-Attention)交互:
-
查詢(Query):第
N-1
層的當前表示。 -
鍵/值(Key/Value):編碼器的最終輸出。
-
-
此機制使第N-1層能動態篩選源序列信息(例如翻譯任務中聚焦關鍵源語詞)。
-
三、堆疊的核心目的與效果
-
逐層抽象特征
-
淺層:捕捉局部依賴(如相鄰詞關系)。
-
深層:建模全局語義(如跨句邏輯、復雜指代)。
-
-
增強非線性表達能力 每層的前饋網絡(FFN)? 通過非線性激活(如ReLU)轉換特征,堆疊后模型能擬合更復雜的映射關系。
-
注意力多視角細化 不同層的注意力頭聚焦不同模式(例如一層關注詞義,另一層關注句法結構),提升生成質量。
四、訓練與推理的差異
-
訓練時:所有解碼器層并行計算,通過掩碼確保當前位置僅看到歷史信息。
-
推理時:自回歸生成,第N-1層需等待第N-2層輸出完成再計算,形成串行依賴。
五、結構示意圖
輸入序列 → [編碼器] → memory(上下文向量)↓ 目標序列 → [嵌入層] → [位置編碼] → 解碼器層1 → Add/Norm → 解碼器層2 → ... → 解碼器層N → 輸出概率 ?↑__________ 殘差連接 __________↑
箭頭方向:第
k
層輸出 → 第k+1
層輸入 + 共享memory
。
此堆疊設計通過多層漸進式特征優化,使Transformer在生成任務中兼顧局部準確性與全局一致性,成為當前大語言模型(如GPT、LLaMA)的核心架構。
尾聲
????????自然語言處理專欄就到此結束啦,下一階段將開啟大模型的專欄,感興趣的友友們可以多多關注一波,這里貼上系列前幾篇文章的鏈接。
NLP文本預處理
RNN及其變體的概念和案例
Transformer的概念和案例
遷移學習的概念和案例
BERT模型和GPT模型的介紹