對應原題(Common ‧ Fine-Tuning, Post-Training and Alignment)
- What is catastrophic forgetting and how do you mitigate it during fine-tuning? — Asked at: Mistral AI
🎯 什麼情境該想到我
當你「微調完,目標任務的分數漂亮,但使用者說模型整體變笨了」的時候。
★ 這題最重要的一句話:如果你沒有『保留能力評估集』,你根本不會知道遺忘發生了。
⚙️ 怎麼用
定義與成因
在新資料上訓練後,模型在舊任務上的能力急遽下降。
這是神經網路的老問題(McCloskey & Cohen, 1989),成因很單純:
梯度下降只優化「當前這批資料的損失」。損失函數裡沒有任何一項在保護舊能力。
權重被推向新任務的最優點——而那個點對舊任務可能很糟。模型沒有「記得要記得」的機制。
★ 在 LLM 上的具體表現
| 微調什麼 | 悄悄壞掉什麼 |
|---|---|
| 客服對話語料 | 通用推理、數學能力 |
| 英文任務資料 | 多語能力(中文表現退化) |
| 固定 JSON 輸出格式 | 指令遵循的彈性——變成不管你問什麼都吐 JSON |
| 單一領域(法律、醫療) | 領域外的常識判斷 |
| ★ 任何東西 | 安全對齊 |
兩個有名字的現象:
- 對齊稅(alignment tax) —— 做完安全對齊後,基準能力普遍略降。這是 RLHF 公認的代價(見 RLHF 全流程)
- ★ 安全退化 —— Qi et al. (2023, Fine-tuning Aligned Language Models Compromises Safety, Even When Users Do Not Intend To!) 指出:
即使只用完全良性的資料微調,也可能大幅削弱模型的安全對齊。
這對任何提供「客製微調」的產品都是重大的安全考量——微調不只會讓模型忘記知識,也會讓它忘記拒絕。
★ 偵測:沒有保留能力評估集就等於瞎做
微調的評估必須是兩組,不是一組:
① 目標任務評估集 ← 大家都會做
② ★ 保留能力評估集 ← 大多數人沒做
保留能力評估集至少要涵蓋:
| 面向 | 怎麼測 |
|---|---|
| 通用知識與推理 | 公開基準的子集(MMLU 等)或自建 |
| 指令遵循 | 一組格式各異的指令,看它會不會被微調的格式綁架 |
| ★ 安全拒答率 | 一組應該被拒絕的請求。這條不能省 |
| 多語(若適用) | 中文/目標語言的能力樣本 |
| 上游能力 | 微調前它會做、但不在微調資料裡的事 |
★ 要在訓練過程中定期跑,不是最後才跑。
遺忘通常是漸進的——畫出「目標任務分數」與「保留能力分數」隨 step 變化的兩條曲線,
交叉點就是你該停的地方。這和 RLHF 全流程 的 over-optimization 曲線是同一個道理。
分數
▲
│ 目標任務 ╱────────────────── ← 一路上升,看起來很棒
│ ╱
│ ──────╳────╮ ← ★ 最佳停止點
│ ╰──────╮
│ 保留能力 ╰──────── ← 悄悄崩壞
└────────────────────────────▶ 訓練步數
緩解手段(按實用度排序)
| # | 手段 | 說明 |
|---|---|---|
| 1 | ★ 混入通用資料(replay / rehearsal) | 最簡單也最有效。 在微調資料裡混入 5–30% 的通用指令資料(原始 SFT 資料或公開指令集)。比例要自己掃 |
| 2 | ★ 用 PEFT 而非全量微調 | LoRA 的低秩約束限制了權重能被推多遠,天然較不易遺忘(見 PEFT 方法比較)。而且底座權重完全沒動,最壞情況可以直接卸載 adapter |
| 3 | ★ 降低學習率、減少 epoch | 過度訓練是遺忘的主因。 多數微調 1–3 個 epoch 就夠,跑 10 個 epoch 幾乎必然遺忘 |
| 4 | 自我蒸餾 / KL 正則 | 把微調前的模型當 teacher,在損失裡加一項 KL 懲罰,拉住輸出分布不要跑太遠(概念同 RLHF 全流程 的 KL 項) |
| 5 | EWC(Elastic Weight Consolidation) | 用 Fisher 資訊估計「哪些參數對舊任務重要」,對它們加大更新阻力。理論漂亮,但在 LLM 規模上算 Fisher 太貴,實務少用 |
| 6 | 分離而非覆蓋 | 不同能力放不同 adapter,推論時按需載入,根本不讓它們互相覆蓋 |
| 7 | 資料多樣性 | 微調資料本身就涵蓋多種任務型態與格式,而不是單一模板 |
★ 實務上的關鍵判斷:
遺忘通常是「資料太窄 + 訓太久」的結果,不是演算法問題。
在去研究 EWC 之前,先檢查這兩件事——混入通用資料 + 減少 epoch 就能解掉大部分案例。
還有一個容易被誤判的情況
「模型變笨了」有時不是遺忘,是格式綁架。
微調資料全是「問題 → JSON」,模型學到「任何輸入都該回 JSON」——
能力還在,只是被格式蓋住了。這種情況混入多樣格式的資料就能解,不需要動訓練方法。
⚠️ 注意 / 什麼時候不適用
- ★ 沒有保留能力評估集,這整頁都白搭。這是唯一真正的必需品。
- 安全評估不能省,即使你的微調資料完全良性。提供微調服務的產品尤其要把這件事做成 gate。
- 混入資料的比例要掃,不是拍 10%。太少沒效果,太多會稀釋目標任務。
- LoRA 較不易遺忘不代表不會遺忘。 很大、訓很久一樣會。
- 持續預訓練(continual pretraining)的遺忘更嚴重,因為改動幅度大得多。新語言、新領域的大規模適應要特別小心。
- 公開基準會被污染。用公開基準當保留能力評估有其限制(見批次 3 的 benchmark 污染)。有條件的話自建。
- 遺忘有時是可接受的取捨。專用模型犧牲通用能力換取領域表現,是合理的產品決策——但要是有意識的決定,不是意外。
🧪 我實際套用的紀錄
- 2026-09-20:從面試題庫展開。待辦:任何微調專案,第一件事是先建保留能力評估集(含安全拒答)。
🔗 相關
- PEFT 方法比較 —— 為什麼 LoRA 較不易遺忘
- LoRA 與 QLoRA —— 最實用的緩解手段之一
- RLHF 全流程 —— 對齊稅與 KL 正則的同源概念
- 知識蒸餾 —— 自我蒸餾是緩解手段之一
- 工具-AI系統評估 —— 評估集怎麼建
- 工具-LLM微調實作路線 —— 決策層
- 工具-不重訓就改掉模型的一條錯誤知識 —— 只改一個知識點時的替代方案;它的「局部性」指標就是在量有沒有忘掉無關知識