---
# System prepended metadata

title: 【生成式AI時代下的機器學習(2025)】第六講：生成式人工智慧的後訓練(Post-Training)與遺忘問題

---

# 第六堂課: 後訓練與遺忘 (Post-training & Forgetting)

## 1. 什麼是後訓練 (Post-training)？

- **定義**: 將一個已經具備通用能力的**基礎模型 (Foundation Model)**，透過特定的資料進行進一步的訓練，使其在某個**專門領域**（如金融、法律、特定程式語言）或**特定技能**（如特定語言對話）上表現得更好。
- **別稱**: 持續學習 (Continual Learning)。
- **方法**: 技術上與初始訓練相同，可根據擁有的資料類型，採用以下任一方式：
    1.  **類預訓練 (Pre-train style)**: 提供大量特定領域的文章，讓模型繼續學習文字接龍。
    2.  **有監督微調 (SFT style)**: 提供特定領域的「問題-答案」對。
    3.  **強化學習 (RL style)**: 針對特定領域的回答，提供好壞的回饋。

---

## 2. 核心挑戰：災難性遺忘 (Catastrophic Forgetting)

- **現象**: 當模型專注於學習**新技能**時，會不成比例地**遺忘**它原有的、尤其是在 Alignment 階段學會的**舊技能**。
- **核心比喻**:
  > **手術成功了，但病人卻死了。**
  > 你成功讓模型學會了新技能（手術成功），但它卻喪失了其他所有基礎能力，變成一個只能做單一任務的「殘廢」模型（病人死了）。

### 災難性遺忘的實例

1.  **安全對齊 (Safety Alignment) 的喪失**:
    - **案例**: 將 `LLaMA-2-chat`（已對齊，具備安全防護）用中文資料進行 Post-training 後，雖然它學會了用中文回答，但當被問及如何獲取銀行密碼時，它會開始教你攻擊方法，完全喪失了原有的安全意識。
    - **結論**: 安全對齊是**最容易**被破壞的能力之一。即便是用完全無害的資料（如 Alpaca 資料集）進行微調，模型的安全防護能力也會顯著下降。

2.  **其他通用能力的衰退**:
    - **案例**:
        - 當只教模型**使用工具**時，它的**數學**和**程式**能力會下降。
        - 當只教模型**數學**時，它的**工具**和**程式**能力會下降。
    - **結論**: Post-training 是一種零和遊戲，專注於提升一項能力，往往會以犧牲其他能力為代價。

3.  **新模態學習的困難**:
    - **案例**: 訓練一個文字模型（如 LLaMA）學習聽懂語音。初期訓練（1 epoch）時，它還記得如何生成 JSON 格式的答案；但增加訓練強度（3 epochs）後，雖然語音情緒辨識能力提升了，但它卻**完全忘記**了什麼是 JSON。

### 為什麼會發生災難性遺忘？

- **單一的優化目標**: 在 Post-training 過程中，優化的目標**只有新任務的表現**，模型會不計代價地調整其內部參數以適應新資料，從而覆蓋或破壞了儲存舊知識的參數結構。
- **與模型大小無關**: 研究表明，更大的模型並**不會**顯著減輕遺忘問題。
- **學得越多，忘得越多**: 模型在新任務上學得越好（loss 越低），它對舊有技能的遺忘就越嚴重。`LoRA` 等參數高效微調方法之所以遺忘較少，很大程度上是因為它們學到的新東西也比較少。

---

## 3. 如何解決遺忘問題？

### 核心思想：讓模型用「自己的話」學習

解決遺忘的關鍵在於，讓 Post-training 的資料**盡可能接近 Foundation Model 自己的知識體系和語言風格**，從而最小化對其內部參數的劇烈衝擊。

### 1. 經驗回放 (Experience Replay) - 2019年的遠古智慧

- **方法**: 在訓練新任務的資料中，混入一小部分（例如 5%）來自**舊任務**的訓練資料。
- **作用**: 像「複習」一樣，不斷提醒模型不要忘記舊的技能。
- **現代困境**: 我們通常**沒有** `LLaMA`、`Claude` 等閉源或開源模型的原始 Alignment 訓練資料。

### 2. 偽經驗回放 (Pseudo Experience Replay) - 現代解法

當沒有原始資料時，就讓 **Foundation Model 自己生成**！

- **方法**:
  1.  讓 Foundation Model 進行**自問自答** (Self-instruct)。例如，給它一個 `[USER]` 標籤，它會自己生成一個問題；再給它一個 `[ASSISTANT]` 標籤，它會自己回答剛才生成的問題。
  2.  將這些模型自己生成的「偽資料」當作經驗回放的材料，混入新的訓練資料中。
- **代表性工作**: `Magpie`

### 3. 其他基於「模型自己的話」的變體

1.  **改寫 (Paraphrase)**:
    - **方法**: 不直接使用人類編寫的答案，而是先讓 Foundation Model **改寫一遍**。用模型改寫後的、更符合其「說話風格」的答案來進行訓練。
    - **效果**: 在多數情況下，比直接使用人類答案的效果更好。

2.  **自我輸出 (Self-output / Selective Self-rehearsal)**:
    - **方法**:
        1.  讓 Foundation Model 先嘗試回答新任務的問題。
        2.  如果答案是**正確的**（對於數學、程式等可自動驗證的任務），就用**模型自己的這個正確答案**來訓練它自己。
        3.  只有當模型答錯時，才使用人類提供的標準答案。
    - **啟示**: 這與 **RL (強化學習)** 的思想非常相似。RL 從不強迫模型學習它完全不會的東西，而是在模型自己生成的眾多可能性中，鼓勵好的、懲罰壞的。這是一種更溫和、更不容易導致遺忘的學習方式。

3.  **過濾困難樣本**:
    - **發現**: 人類編寫的答案中，往往包含一些對模型來說「非常規」、極難生成的 Token。強迫模型學習這些困難樣本，是導致遺忘的重要原因。
    - **方法**: 在訓練前，先用 Foundation Model 評估訓練資料中每個 Token 的生成難度。在訓練時，**直接跳過**那些對模型來說最困難的 Token，不要求模型學習它們。
    - **效果**: 驚人地有效。適度（如 20%）移除困難樣本，不僅能防止遺忘，甚至能提升模型在未見過的領域上的表現。

### 課程總結

- Post-training 時，**必須警惕災難性遺忘**。評估模型時，不僅要看新任務的表現，更要檢查舊有能力是否被保留。
- 防止遺忘最有效的方法之一，就是**盡可能使用由 Foundation Model 自己生成或改寫的資料**進行訓練，讓學習過程更平滑、更不容易破壞已有的知識結構。