大模型為什麼難訓練?Normalization、Residual 與 Dropout
拆解深層網路訓練的三大挑戰——訓練不穩定、梯度消失、過擬合,以及對應的三項關鍵技術。
大模型為什麼難訓練?Normalization、Residual 與 Dropout
前六篇,我們從文字向量化、詞嵌入與位置編碼、注意力機制、多頭 Transformer,一路談到自回歸生成與損失函數。
你現在應該已經理解大模型「怎麼運作」了。
但還有一個更根本的問題沒回答:
為什麼訓練一個大模型這麼難?
為什麼深層網路會梯度消失?為什麼數值會爆炸?為什麼模型會過擬合?
這一篇,我們要拆解訓練大模型時最核心的三大挑戰,以及對應的三項關鍵技術:正規化(Normalization)、殘差連接(Residual Connection)與Dropout。
一、挑戰一:訓練過程中的不穩定性
深度模型的訓練,就像在崎嶇的山路上駕駛。
每一次參數更新,都可能讓損失函數劇烈震盪,導致模型難以收斂。
為什麼會這樣?
因為在深層網路中,每一層的輸出都會成為下一層的輸入。
如果某一層的數值分布偏移了,這個偏移會逐層放大,導致後續層的輸入分布不斷變化。
這被稱為內部協變偏移(Internal Covariate Shift)。
結果就是:
- 梯度忽大忽小,參數更新劇烈震盪
- 損失函數難以穩定下降
- 訓練速度變慢,甚至無法收斂
這就像你開車時,方向盤每隔幾秒就被隨機轉動一下,你很難保持直線前進。
解法:正規化(Normalization)
為了解決這個問題,我們採用正規化(Normalization)技術,例如批次正規化(Batch Normalization)或層正規化(Layer Normalization)。
其核心概念是:將每一層網路的輸入數據標準化,使其分布維持在穩定的範圍內。
具體做法是對每個特徵維度計算均值與變異數,然後將數據轉換為:
[ \hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} ]
其中 (\mu) 是均值,(\sigma^2) 是變異數,(\epsilon) 是一個極小的常數,用來避免除以零。
接著,通常還會加入兩個可訓練參數 (\gamma) 和 (\beta),讓模型能還原出最適合的表達:
[ y = \gamma \hat{x} + \beta ]
這樣做的好處是:
- 穩定數值分布:每一層的輸入不會因為前一層的參數更新而劇烈變化。
- 平滑梯度:梯度變化變得可控,訓練更穩定。
- 加速收斂:可以使用更大的學習率,訓練速度更快。
在 Transformer 中,最常用的是層正規化(Layer Normalization),因為它不依賴批次大小,更適合序列模型。
層正規化會對每個樣本的所有特徵進行標準化,而不是像批次正規化那樣對整個批次進行標準化。
這就像為山路鋪設了平坦的路面,確保梯度的變化是可控且平滑的,大幅提升了訓練的穩定性與速度。
二、挑戰二:深層網路中的梯度消失
當網路層數越來越深(例如超過數十層甚至上百層),反向傳播時梯度會逐層衰減,最終導致淺層網路的權重幾乎無法更新。
這被稱為**梯度消失(Vanishing Gradient)**問題。
為什麼會梯度消失?
反向傳播的核心是鏈式法則:
[ \frac{\partial L}{\partial W_1} = \frac{\partial L}{\partial W_n} \cdot \frac{\partial W_n}{\partial W_{n-1}} \cdots \frac{\partial W_2}{\partial W_1} ]
每一層的梯度都會乘上一個雅可比矩陣。
如果這些矩陣的奇異值大多小於 1,那麼經過多層相乘後,梯度會以指數速度衰減,最終趨近於零。
結果就是:
- 淺層網路的參數幾乎不更新
- 模型無法學到有效的底層特徵
- 訓練停滯,效能無法提升
這就像一個傳話遊戲,訊息經過太多人傳遞後,早已面目全非。
解法:殘差連接(Residual Connection)
為此,研究人員提出了殘差連接(Residual Connection),亦稱為捷徑連接(Skip Connection)。
它的設計非常簡單:在標準的層與層傳遞之外,建立一條數據傳遞的捷徑,讓資訊可以直接繞過某些層級向前傳播。
假設原本的層要學習的映射是 (H(x)),殘差連接讓這一層改為學習:
[ F(x) = H(x) - x ]
而最終輸出為:
[ \text{Output} = F(x) + x ]
這樣一來,梯度在反向傳播時,可以透過捷徑直接回流到淺層:
[ \frac{\partial \text{Output}}{\partial x} = \frac{\partial F(x)}{\partial x} + 1 ]
那個「+1」保證了梯度至少能以恆等路徑傳回,不會完全衰減為零。
殘差連接的意義
- 讓深層資訊能有效保留:淺層的特徵可以直達深層,不會在傳遞中丟失。
- 讓梯度順利回流:即使某些層的梯度很小,捷徑仍能提供穩定的梯度通道。
- 使訓練極深層網路成為可能:ResNet 能訓練上百層,Transformer 能堆疊數十層,都得益於此。
在 Transformer 中,每個注意力子層和 FFN 子層外面都包著殘差連接:
[ \text{Output} = \text{LayerNorm}(x + \text{Sublayer}(x)) ]
這已經成為現代深度學習架構的標準配置。
三、挑戰三:過擬合與泛化能力不足
模型在訓練資料上表現優異,卻無法有效處理未見過的新數據,這種現象稱為過擬合(Overfitting)。
這好比學生死背題庫答案,卻無法舉一反三。
考試題目一變,就完全不會了。
過擬合通常發生在:
- 模型參數太多,遠超過訓練資料量
- 訓練時間太長
- 訓練資料太少或多樣性不足
結果就是模型記住了訓練資料的雜訊與細節,卻沒有學到真正通用的規律。
解法:丟棄法(Dropout)
為了提升模型的泛化能力,我們使用丟棄法(Dropout)。
在訓練過程中,Dropout 會隨機停用(歸零)一部分神經元,通常設定比例為 20% 到 50%。
這意味著每次訓練迭代時,網路結構都不一樣,強迫模型不依賴任何特定的神經元。
具體運作方式:
- 在每次前向傳播時,隨機選擇一部分神經元,將其輸出設為 0。
- 被丟棄的神經元在這次迭代中不參與前向傳播與反向傳播。
- 下一次迭代時,重新隨機選擇要丟棄的神經元。
這樣做的好處是:
- 打破神經元之間的共適應:模型不能依賴某個特定神經元,必須學習更分散、更強健的特徵。
- 相當於集成學習:每次迭代都訓練一個不同的子網路,最終效果類似於多個模型的集成。
- 提升泛化能力:模型在未見過的數據上表現更好。
這就像團隊合作時輪流讓成員缺席,反而能讓整個團隊的應變能力更強。
因為每個人不能只依賴某個特定同事,必須學會獨立處理更多事情。
要注意的是:Dropout 只在訓練階段使用,推理階段會關閉。
推理時,所有神經元都參與計算,但權重會根據訓練時的丟棄比例進行縮放,以保持輸出的期望值一致。
四、三項技術的協同作用
這三項技術並不是各自獨立,而是協同合作,共同確保大模型能穩定訓練:
| 挑戰 | 技術 | 核心作用 |
|---|---|---|
| 訓練不穩定 | 正規化(Normalization) | 穩定數值分布,平滑梯度 |
| 梯度消失 | 殘差連接(Residual Connection) | 提供梯度捷徑,保留深層資訊 |
| 過擬合 | 丟棄法(Dropout) | 隨機停用神經元,提升泛化能力 |
在 Transformer 的每一層中,這三項技術同時存在:
[ \text{Output} = \text{LayerNorm}(x + \text{Dropout}(\text{Sublayer}(x))) ]
- 殘差連接:讓梯度能順暢回流。
- 層正規化:穩定每一層的數值分布。
- Dropout:防止模型過度依賴特定神經元。
三者共同構成了現代大模型訓練的穩定基石。
五、一個具體的例子
假設我們要訓練一個 24 層的 Transformer 來預測下一個詞。
如果沒有這些技術:
- 第 1 層的梯度可能因為連乘 24 個小於 1 的矩陣而衰減到幾乎為零。
- 每一層的輸入分布不斷變化,導致訓練震盪。
- 模型在訓練集上達到 99% 準確率,但在驗證集上只有 60%。
加入三項技術後:
- 殘差連接:梯度可以透過捷徑回流到第 1 層,淺層參數也能有效更新。
- 層正規化:每一層的輸入分布穩定,訓練平順。
- Dropout:模型不再死記訓練資料,驗證集準確率提升到 85%。
這就是為什麼現代大模型動輒數十層甚至上百層,卻依然能穩定訓練的原因。
六、總結:微小工程細節,決定模型成敗
回顧整個系列,我們從文字向量化出發,依序走過了:
- 從文字到向量:詞袋法、TF-IDF、Word2Vec、Token 與嵌入。
- 詞嵌入與位置編碼:語意表徵與順序資訊的結合。
- 注意力機制:QKV、Mask 與縮放點積。
- 多頭注意力與 FFN:Transformer 的核心組件。
- 自回歸生成與推理採樣:Temperature、Top-K、Top-P。
- 損失函數與訓練迴圈:交叉熵、反向傳播、梯度下降。
- 訓練穩定性技術:正規化、殘差連接、Dropout。
這七篇文章,構成了從「文字」到「大模型」的完整脈絡。
而這一篇談的三項技術——正規化、殘差連接與丟棄法——雖然看似是微小的工程細節,卻扮演著穩定訓練、保留梯度、防止過擬合的關鍵角色。
它們讓數十億甚至數千億參數的模型,能夠在有限的資料與算力下,穩定地學習語言的規律,最終展現出令人驚豔的理解與生成能力。
理解這些設計,不僅能幫助你掌握大模型的運作原理,更能從中借鑑解決深層網路訓練問題的工程思維,應用於更廣泛的機器學習與系統設計之中。
系列回顧
| 篇號 | 主題 | 核心概念 |
|---|---|---|
| 1 | 從文字到向量 | Tokenization、Word2Vec、Embedding |
| 2 | 詞嵌入與位置編碼 | Token Embedding、Positional Encoding、RoPE |
| 3 | 注意力機制入門 | QKV、Mask、Scaled Dot-Product |
| 4 | 多頭注意力與 FFN | Multi-Head、Feed-Forward、Stacked Layers |
| 5 | 自回歸生成與推理採樣 | Next Token Prediction、Temperature、Top-K、Top-P |
| 6 | 損失函數與訓練迴圈 | Cross-Entropy、Backpropagation、Gradient Descent |
| 7 | 訓練穩定性技術 | Normalization、Residual Connection、Dropout |
感謝你讀完這個系列。
如果你對其中某個主題想更深入探索,例如 RoPE 的數學細節、Flash Attention 的加速原理,或是 LLM 的微調與對齊技術,都歡迎繼續延伸閱讀。
大模型的世界還在快速演進,而這些基礎原理,會是你理解一切新技術的起點。