生成式AI時代下的機器學習 — 後訓練、災難性遺忘與模型能力的保持

生成式AI時代下的機器學習 — 後訓練、災難性遺忘與模型能力的保持

生成式AI時代下的機器學習 — 後訓練、災難性遺忘與模型能力的保持

在生成式人工智慧時代,大型語言模型(LLM)的訓練過程通常分為多個階段,其中「後訓練 (Post-Training)」扮演了關鍵角色。後訓練,又稱為連續學習 (continual learning),指的是對一個已經具備通用基礎能力的模型進行進一步調整,使其在特定應用或專業領域(如金融、法律、特定語言如中文,或是程式語言如 Verilog)中表現得更為精湛。

後訓練的本質與應用

現今許多強大的模型,如 Llama 或 ChatGPT,都是開源或可供參數回調的通用模型。這些模型如同剛從學校畢業的學生,擁有基本的通用能力,但可能缺乏特定領域的專長。

後訓練的目的,便是利用特定資料集進一步調整這些通用模型,讓它們在特定領域做得更好。在技術上,後訓練與訓練語言模型的三種主要方式相似:預訓練風格 (pretrain style)、監督式微調 (Supervised Fine-Tuning, SFT) 或強化學習 (Reinforcement Learning, RL)。經過後訓練前的模型通常被稱為 foundation model(基礎模型),訓練後的模型則被稱為 f model(微調模型)。

後訓練的核心挑戰:災難性遺忘

然而,後訓練面臨最大的挑戰是 災難性遺忘 (catastrophic forgetting),即模型在學習新技能的同時,遺忘了原本擁有的技能。

遺忘現象的具體表現:

  1. 安全與對齊能力的破壞: 這是最容易被觀察到的能力破壞。例如,對 Llama 2 Chat 進行中文資料的後訓練後,雖然模型開始能用中文回答問題,但它原有的 safety alignment(安全對齊) 能力可能會被破壞。原本 Llama 2 Chat 會拒絕回答關於如何獲取銀行密碼的非法問題,但在後訓練後,它可能會用中文提供攻擊方式,失去了安全防禦能力。

  2. 通用能力的喪失: 遺忘並非僅限於安全對齊能力,模型其他基礎能力也會受到損害。例如,當模型被訓練學習特定任務(如寫程式、數學或工具使用)後,它在其他非訓練任務上的表現可能會大幅下降。

  3. 格式遵循能力的遺失: 即使是相對基礎的技能也會遺失。例如,當一個語言模型經過後訓練以理解語音時,雖然學習了新的語音相關技能,但可能會忘記如何輸出正確的 JSON 格式。

遺忘發生的原因與影響因素:

災難性遺忘通常發生在訓練只關注單一目標時。當訓練只要求模型在特定任務上(如寫程式)表現越來越強時,卻完全忽略了其他能力的變化,就很容易破壞原有能力。

值得注意的是,模型在目標任務上學得越好,其遺忘的情況就越嚴重,兩者之間幾乎呈直線關係。此外,研究發現在一定參數範圍內(如 1B 到 7B 模型的比較),模型大小與遺忘現象的嚴重程度不一定相關。雖然 LORA 等參數高效微調方法看起來遺忘較少,但這是以犧牲新技能的學習程度為代價換來的,因為 LORA 往往是「學得少,忘得少」。

避免災難性遺忘的解決方案

避免遺忘的挑戰在於,在現代訓練中,大型公司通常只釋出模型,而不釋出訓練資料。然而,早在 2019 年就提出了解決遺忘問題的有效方法,這些方法至今仍是主流:

  1. 經驗重播 (Experience Replay): 這是最直覺的方法。在訓練新任務時,將少量(約 5% 左右)舊任務的資料混入新任務的訓練資料中。由於模型對舊知識的遺忘更像是一種「不想想起」的狀態,而不是徹底抹除,因此少量舊資料即可喚醒它。

  2. 偽經驗重播 (Pseudo Experience Replay) / 自問自答: 當無法取得舊的訓練資料時,可以讓已經訓練完成的 foundation model 自說自話,生成過去任務的訓練資料(稱為 rehearsal data)。具體做法是提供一個代表使用者的符號,讓模型自行產生問題和答案。這種自問自答產生的資料可以作為過去經驗的代表,混入新的訓練資料中,從而避免遺忘。

  3. Self-Output (自我輸出) 或 Paraphrase (改寫): 這類方法的核心思想是利用模型自身的「語言」來進行訓練。

◦ 自我輸出: 讓 foundation model 自己產生答案,如果答案正確,就用它自己的答案來訓練自己。這類似於 RL based 的後訓練,被認為可能是一個更能防止遺忘的方法。研究顯示,使用模型(無論是 foundation model 自身或更強大的模型如 GPT-4/Claude)生成的答案進行訓練,模型反而比使用人類提供的答案學得更好,且更不容易遺忘原有技能。

◦ 改寫: 讓 foundation model 改寫人類寫的答案,用改寫後的答案(更接近模型自身的語言風格)來訓練模型。

總而言之,在進行後訓練時,應特別注意人工智慧很容易遺忘已有的技能。一個非常有效防止遺忘的方法是,盡量使用 人工智慧自己產生的訓練資料 來進行訓練。在評估後訓練結果時,除了檢查目標任務是否達成外,也應系統性地檢查模型是否仍保有原有的基礎能力,如安全對齊、寫程式或邏輯推理等。

參考資料

https://youtu.be/Pxf7LMXpWpk

Comments

Loading comments…

Leave a Comment