Catastrophic Forgetting (災難性遺忘)

Catastrophic Forgetting(災難性遺忘)是指模型在學習新任務或新資料後,
先前學到的知識明顯退化甚至被覆蓋的現象。

此現象在 continual learning、lifelong learning、sequential fine-tuning 特別常見。


一句話版本

Catastrophic Forgetting 是模型在學新東西時,把原本會的舊能力系統性忘掉。


直覺示例(Task A -> Task B)

假設模型先學任務 A,再學任務 B:

這就是 catastrophic forgetting。


為什麼會發生

神經網路參數通常是共享的。
當新資料持續更新權重時,原本支撐舊任務的表示可能被改寫。

常見原因:


典型情境

1) Continual Learning

模型依序學 Task A -> Task B -> Task C,
新任務進來後,舊任務表現持續下降。

2) Fine-Tuning (微調) LLM / Encoder

模型原本具備通用能力,若對特定資料過度 fine-tune,可能出現:

3) 多階段訓練

例如 general pretraining -> domain adaptation -> instruction tuning。
若後段訓練過強,前段能力可能被沖淡。


和一般「忘記」的差異

這不是一般小幅效能波動,而是:

因此稱為 catastrophic。


常見解法

1) Replay / Rehearsal

訓練新任務時混入舊任務樣本:

2) Regularization-based Methods

限制重要參數不要被大幅修改。

常見代表:

核心想法:

對舊任務重要的權重,在更新時施加更大懲罰。

3) Parameter Isolation

為不同任務配置不同參數子空間,例如:

優點:降低互相覆蓋。
缺點:模型可能逐步膨脹。

4) Distillation

使用舊模型作為 teacher,要求新模型保留舊輸出分布。

5) External Memory / Retrieval

不把所有新知識硬寫進參數,而是交給外部系統:

這也是降低 forgetting 的常見工程路線。


Continual Learning 方法對照表

方法 核心想法 優點 限制 適用情境
Replay / Rehearsal 新任務訓練時混入舊樣本 通常有效、實作直觀 需要保存舊資料或摘要 任務序列穩定、可保存歷史資料
EWC 對重要參數加更新懲罰 能保護舊任務關鍵權重 重要度估計成本、超參敏感 任務數中等、需保守更新
SI 累積參數重要度後施加約束 不依賴完整二階資訊 仍需權重重要度估計 持續任務流訓練
LoRA / Adapter 把更新限制在輕量模組 降低覆寫主幹參數風險 仍可能有能力偏移 LLM 快速增量微調
RAG / External Retrieval 知識外置,不強依賴參數內化 對原模型能力干擾較小 依賴檢索品質與資料治理 頻繁知識更新、追求穩定保留舊能力

在 LLM / RAG 脈絡下的取捨

純 Fine-tune

把新知識直接寫進模型參數,可能造成:

RAG 路線

把新知識放在外部檢索系統,模型本體少改或不改。
此做法通常較不易觸發 catastrophic forgetting,
因為知識主要由外部文件承載,而非直接覆寫模型參數。

常見策略:


相關筆記

Powered by Forestry.md