災難性遺忘:微調後模型變笨了怎麼辦
專項任務變好、其他能力全面退化,是微調最典型的副作用。有幾個明確的緩解手段。
微調後模型在目標任務上分數漂亮,但突然不會寫程式、不會摘要、連基本問答都變差——這是災難性遺忘。原因是訓練資料太窄,模型被推向只做那一件事。
先確認它真的發生了
準備一組「通用能力回歸測試」:常識問答、摘要、翻譯、程式碼各十題,微調前後都跑。沒有這組題目,你只會在使用者抱怨時才發現。
四個緩解手段
- 降低學習率與輪數——最簡單也最常有效。
- 降低 LoRA rank,限制模型能改變的幅度。
- 混入通用資料:訓練集裡摻入 10–20% 的一般性對話樣本。
- 只調必要的模組:僅在注意力投影上加 LoRA,不動 MLP。
混合資料的比例
# 專項 800 筆 + 通用 200 筆,且要打散
train = shuffle(task_data[:800] + general_data[:200], seed=42)通用資料不必自己寫,可以用底座模型對一批常見問題產生回答,再人工快速篩掉明顯錯誤的。目的是「維持原本行為」,不是教它新東西。
LoRA 的天然優勢
LoRA 遺忘通常比全參數微調輕微,因為原始權重沒有被改動。真的退化太嚴重時,還可以降低推論時的介面卡權重當作折衷。
別用「目標任務分數」單獨決定要不要上線。分數從 82 升到 91,但通用能力掉了三成,對多數產品是虧的。