20251109筆記 內容可能有錯誤,請參考原始影片 [李宏毅【生成式AI時代下的機器學習(2025)】](https://www.youtube.com/playlist?list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi) [【生成式AI時代下的機器學習(2025)】第六講:生成式人工智慧的後訓練(Post-Training)與遺忘問題](https://www.youtube.com/watch?v=Z6b5-77EfGk&list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi&index=7) ### 【生成式AI時代下的機器學習(2025)】第六講:生成式人工智慧的後訓練(Post-Training)與遺忘問題 大綱 #### 1. 後訓練與災難性遺忘的背景 * **定義:** 後訓練(Post-Training)或持續學習(continual learning),指對已具通用能力的 Foundation Model (Foundation Model) 進行調整,使其在特定領域(如中文、金融、程式設計)中變得更專業。 * **核心問題:** 災難性遺忘 (Catastrophic Forgetting),指模型在學習新技能後,忘記了既有的基礎能力(例如安全對齊、數學能力或 JSON 格式輸出)。 * **機制:** 遺忘程度與新任務的學習程度成正相關——學得越好,遺忘越嚴重。 #### 2. 解決遺忘問題的核心策略:經驗重現 * **經典方法:經驗重現 (Experience Replay):** 在訓練新任務時,混入少量(約 5%)的舊任務資料,以喚醒模型被隱藏的知識。 * **現代挑戰:** 當前大型公司不釋出原始訓練資料,導致無法進行傳統 ER。 #### 3. 實務中的自我重現與資料生成技術 * **偽重現 (Pseudo Rehearsal):** 利用 Foundation Model 自身的生成能力來創造類似過去經驗的數據。 * **自問自答 (Self-Ask / Self-Generate):** 讓模型自己生成問答對(Instruction Fine-Tuning 格式)來製造訓練數據,有效避免遺忘。 * **自我輸出與風格一致性 (Self-Output / Paraphrase):** * **原因:** 人類答案往往對模型來說是難以產生(Perplexity 高)的句子。 * **方法:** 使用模型自己產生或改寫過的答案來訓練,因為這些數據更接近模型自身的表達風格。 #### 4. 其他輔助策略與技術考量 * **過濾難學 Token:** 移除訓練資料中對 Foundation Model 來說最難以產生的 Token(約 20%),反而能提升學習效果並減少遺忘。 * **RL-based 訓練:** 基於強化學習(RL)的後訓練方法可能特別有助於防止遺忘,因其機制與自我輸出相似。 * **LORA 的取捨:** 參數效率調優(如 LORA)能減輕遺忘,但這是因為它限制了模型學習的程度。 *** ### I. 後訓練與災難性遺忘的背景與問題 ![image](https://hackmd.io/_uploads/r1PIAvs1Zg.png) #### 1. Post-Training (後訓練) 的定義與範疇 * **目的:** 對已具備通用能力的 Foundation Model 進行進一步調整,使其擅長特定的專業領域(如金融、法律)、特定人類語言(如中文、韓文)或特定程式語言(如 Verilog)。 * **技術上:** Post-training 可採用 pre-training style、Supervised Fine-Tuning (SFT) style,或 Reinforcement Learning (RL) style。 * **Foundation Model 的定義:** 在此討論中,Foundation Model 不一定是 base model,它也可以是一個已經過 alignment(對齊)的 Chat Model 或 Instruct Model,我們只是在其基礎上進一步訓練。 #### 2. 災難性遺忘 (Catastrophic Forgetting) 的實例與影響 * **安全性受損 (Safety Alignment):** 對 LLaMA Chat 進行中文資料的後訓練後,模型雖然學會了中文,但其原有的安全防禦能力會被破壞。例如,原本 LLaMA Chat 會拒絕回答如何獲取銀行密碼,但在後訓練後,它可能會用中文提供攻擊方式。這證明模型說錯話或說出有害句子的機率(Toxicity)大幅增加。 * **模型行為失常:** 有時模型會突然「腦袋不好使」。例如,在一個中文後訓練的例子中,模型被問及氣候變化對生態系統的影響,卻會不斷卡在「第一點、第一點、第一點」,陷入暴走狀態。 * **基礎能力崩潰:** 當對 LLaMA 進行 SFT 訓練,教授新技能(如推理、醫學、程式碼、工具使用)時,模型原有的基礎能力會暴跌。 * 例如,在一個實驗中,教導模型使用工具後,其原有的**數學**和**程式設計能力**會變差。特別是工具使用能力,在只教導其他技能時,其表現可以從 19.6 大幅暴跌至 3.6。 * **跨模態訓練的遺忘:** 即使是教導文字模型理解新模態(如聽懂語音),也會導致它遺忘其原有的文字能力。例如,模型會忘記如何輸出正確的 **JSON 格式**。 #### 3. 遺忘的本質與參數效率的取捨 * **學得越多,遺忘越嚴重:** 橫軸代表 Fine-tuning Loss(越往右代表學得越好),縱軸代表遺忘的嚴重程度,兩者幾乎呈一條斜直線。 * **模型大小無助益:** 根據研究,模型越大(在 1B 到 7B 範圍內)並不一定能減輕遺忘的狀況。 * **LORA 的限制:** 參數效率調優方法(如 LORA)雖然能減輕遺忘,但文獻指出這是一種取捨:**「LORA 學得少,遺忘得也少」** (Lora learns less and forget less)。如果參數量設定較小(Rank 較小),點會聚集在左下角(學得少,遺忘少);如果參數量設定較大(Rank 較大),則聚集在右下角(學得多,遺忘多)。 ### II. 解決遺忘問題的核心策略 #### 1. 經驗重現 (Experience Replay) — 古典但高效的方法 * **原理:** 在訓練新任務(任務二)時,混入少量過去任務(任務一)的資料。 * **資料量要求:** 不需要太多舊資料。大約只需混入**當前訓練資料量的 5% 左右**就非常足夠。這是因為模型的能力可能只是被「藏在某個地方」,只需要一個契機就能被喚醒。 * **實務案例:** 在針對 LLaMA 進行訓練時,只需要保留 **3%** 的安全對齊(Safety Alignment)資料,就能有效保持模型的安全能力。 #### 2. 偽重現與自我生成 (Pseudo Rehearsal) — 解決資料不可得的方案 * **現代困境:** 當今大型公司通常只釋出模型,不釋出原始訓練資料。 * **Self-Ask and Self-Generate (自問自答):** * **機制 (Self-Symphash Rehearsal):** 利用待後訓練的 Foundation Model 自身來生成類似其過去訓練資料的數據。 * **過程:** 只給模型代表 "user" 的 Token,讓它繼續生成一個問題;然後再給它 "assistant" 的 Token,讓它生成這個問題的答案。 * **結果:** 成功生成 Instruction Fine-Tuning 格式的資料,即使在 2019 年的 GPT-2 時代,模型也能自說自話產生看似真實但實為虛假的問答對。將這些自生成數據混入訓練資料中,可以避免遺忘。 #### 3. 利用模型自身的語言 (Self-Output / Paraphrase) * **Perplexity 差異:** 研究發現,人類撰寫的正確答案通常含有較多對於 Foundation Model 來說「難以產生」(機率較低,Perplexity 較高)的 Token。 * **Paraphrase (改寫):** 讓 Foundation Model 改寫人類寫的答案,使其更接近模型自己的語言。研究顯示,使用改寫過的答案來訓練模型,在大多數情況下結果都更好。 * **Self-Output (自我輸出):** * **方法:** 讓 Foundation Model 針對問題產出答案。如果答案可被檢測是正確的(例如在數學或程式碼問題中),則使用 **Foundation Model 自己的答案**來訓練模型。這是一種非常常見且有效的防止遺忘的方法。 * **利用更強的模型協助:** 如果目標 Foundation Model 太弱,無法產出正確答案,可以使用更強的模型(如 GPT-4 或 Claude)的答案來訓練。研究顯示,使用其他語言模型的答案訓練,比使用人類答案訓練,模型學得更好,遺忘更少。 * **Minimum Change (最小改變修正):** 在使用強模型(如 GPT-4)修正弱 Foundation Model 產生的錯誤答案時,要求修正後的內容要盡量相似,以確保訓練數據的風格與目標模型一致。 ### III. 輔助策略與技術考量 #### 1. 基於強化學習 (RL-based) 的後訓練 * **潛在優勢:** RL 訓練機制與 Self-Output 非常相似。RL 並非強制提供標準答案,而是讓模型產生答案,然後提高正確答案的機率。 * **推測:** 這種機制可能使 RL-based Post-Training 成為一種特別能防止遺忘的方法,這或許解釋了為何 RL 方法常被放在語言模型訓練的最後階段。 #### 2. 過濾難以學習的 Token * **原理:** 在訓練過程中,模型會計算其生成訓練資料中每個 token 的機率(難易度)。人類寫的答案通常包含較多難以產生的 Token。 * **方法:** 在訓練時,直接略過那些對 Foundation Model 來說特別難以產生的 Token。 * **效果:** 移除大約 **20%** 最難產生的 Token,反而能夠幫助模型表現得更好(包括在訓練時未曾見過的 out-of-domain 任務上),有效地避免模型試圖學習它根本學不來的東西。