Zubnet AI學習Wiki › 過擬合
訓練

過擬合

模型過度記憶訓練資料而失去對新輸入泛化能力的現象。就像一個學生背熟了模擬考的答案卻無法解決新問題。模型在訓練資料上表現極佳,但在未見過的資料上表現糟糕。

為什麼重要

過擬合是模型訓練中最常見的失敗模式。這就是為什麼評估要使用獨立的測試集,也是為什麼訓練太長(太多 epoch)實際上會讓模型變得更差。

深度解析

過擬合發生在模型有足夠的容量來記憶訓練資料中的特定模式時 —— 包括雜訊、離群值和偶然的相關性 —— 而非學習底層可泛化的模式。在機制上,你可以透過追蹤訓練過程中的兩條損失曲線來檢測它:訓練損失和驗證損失(在模型從未訓練過的保留集上計算)。在健康的訓練過程中,兩條曲線一起下降。過擬合表現為分歧:訓練損失持續下降,而驗證損失趨於平坦或開始上升。這個差距代表模型將其容量用於記憶而非泛化。

經典防禦手段

抗過擬合的經典防禦手段歷經數十年的精煉,大多數仍適用於現代 LLM 訓練。Dropout 在訓練期間隨機將一部分神經元的啟動值歸零,迫使模型建立冗餘表徵而非依賴任何單一路徑。權重衰減(L2 正則化)懲罰大的權重值,阻止模型擬合狹窄的高幅值模式。早停法意味著監控驗證損失,當其停止改善時就停止訓練,即使訓練損失仍在下降。資料增強 —— 創建訓練資料的合成變體 —— 在不收集新資料的情況下有效擴大資料集。對於語言模型,這可能意味著改述、回翻譯,或使用不同的上下文呈現相同文本的上下文窗口策略。

LLM 時代的特殊之處

在大型語言模型時代,過擬合有一些不太直覺的特徵。在非常大的模型上用非常大的資料集進行預訓練時,通常處於「欠擬合」狀態 —— 它們可以從更多資料或更多訓練步驟中受益,而非更少。Chinchilla 擴展定律將此形式化:對於給定的算力預算,模型大小和訓練 token 數之間存在最佳平衡,而大多數早期 LLM 相對於其參數量來說在太少的 token 上過度訓練了。在前沿規模的預訓練階段過擬合很罕見,正是因為資料集非常龐大。但在微調階段就成了嚴重問題,因為資料集通常小幾個數量級。在幾千個範例上對一個 7B 模型微調超過 2-3 個 epoch 幾乎必定會過擬合,症狀很容易辨識:模型開始逐字複述訓練範例、失去處理與訓練格式不同的提示的能力,甚至可能在它之前能處理的一般任務上表現退化。

基準測試作弊

現代 AI 中最隱蔽的過擬合形式之一是基準測試過擬合,即訓練資料恰好包含(或被刻意選取以包含)與評估基準相似的問題。模型在基準測試上得分很高,但實際上並未獲得底層能力。這與傳統過擬合不同,因為模型對與訓練集相似的資料泛化得很好 —— 問題在於基準測試衡量的是訓練集鄰近區域的表現,而非真正的能力。這就是為什麼該領域已轉向保留評估集、污染檢測,以及像 Chatbot Arena 這樣基於人類偏好的評估 —— 測試題目事先未知且無法通過資料選取來刷分。

是光譜,不是開關

對實務工作者來說,最有用的心智模型是:過擬合不是二元狀態而是一個光譜。某種程度的記憶是不可避免的,甚至是可取的 —— 你希望模型知道巴黎是法國首都,這是一個被記住的事實。問題出在記憶排擠了泛化:模型記住了訓練中的確切措辭,而非充分理解概念以回答新穎的相關問題。觀察訓練-驗證損失差距、使用 LoRA 等參數高效方法(限制模型過擬合的容量),以及在真正分布外的範例上進行測試,是最佳的實務防禦手段。

相關概念

← 所有術語
← 最佳化 參數 →
ESC