最近在使用影像生成 AI 模型,特別是 LoRA(Low-Rank Adaptation) 的朋友當中,最常被問到的問題之一是 「在將新數據添加到現有模型進行學習(微調)時,之前的數據應該怎麼處理?」

尋找這個問題的答案的過程,提供了似乎在窺視 人類的學習與記憶機制 的有趣 Insight。我將通過與一位知人的對話,詳細解析 LoRA 模型更新的核心原理和最佳配方。


1. LoRA 學習的疑問:覆蓋還是保留?



向我提問的人核心的疑問如下。

Q. 如果在以20張圖片製作的 LoRA 模型中,新增10張圖片進行二次訓練,是否需要將舊的20張數據包含在二次學習中?如果不包含舊數據,會不會完全「忘記」之前的特徵?

這個問題需要對 LoRA 的學習方式有根本性的理解。


2. LoRA 學習的原理:記憶的統計更新

簡而言之, LoRA 的運作方式是持續覆寫分析數據的「統計權重(Weight)」,而非將數據儲存為「記憶」

'更新統計'的方式

  • 一次學習 (20張): 根據20張圖片的特徵創建 權重狀態。在這個權重檔案中,20張圖片擁有的風格、臉部特徵、姿勢等特徵都有數值化的表現。

  • 二次學習 (只新增10張): 從現有的權重狀態出發,進行將權重拉向新的10張數據的工作。

此時,20張原始圖片不會保存在檔案中。因此,如果僅使用10張進行學習,模型將迅速傾向於10張的性質,而原有20張的特徵會逐漸模糊。

💡 核心: 如果不加入舊數據,雖然不會「完全忘記」,但被新數據的統計壓倒,原有特徵變得更加模糊的可能性很大。 特別是學習率(LR) 設定過高或步數過長時,忘卻的速度會更快。


3. 最佳解決方案:平衡的複習策略



如果目標是保留舊模型的 一致性基本氛圍 同時 增強 新的特徵,最安全且正統的方法是 將舊數據和新數據混合進行30張的再學習

正統配方:20張 + 10張 = 30張再學習

目的 數據組成 學習設置 (相較於第一次) 效果
保留舊有 + 微調 舊有20張 + 新增10張 LR設置為低 (例如:1.0 $\rightarrow$ 0.3~0.5),步數短 (100~300 步) 保持原有身份,朝新數據方向 進行微調(Fine-Tuning)
提高新數據比重 舊有20張 + 新增10張 (僅對新10張 設置 num_repeats 為2倍等) LR保持低,步數短 在維持原有特徵的基礎上,調整權重使新10張的特徵 更快被反映

這種方式原理就像是人類在學習新知識時,與復習舊知識並行以加強長期記憶。


4. 類似人類記憶的機器學習現象

這種現象驚人地 「與人類學習非常相似」。實際上,在深度學習中觀察到的現象讓人聯想到人類的記憶機制。

現象 (機器學習術語) 與人類學習/記憶的相似性 LoRA 應用案例
災難性遺忘 (Catastrophic Forgetting) 像只使用新密碼就忘記舊密碼一樣。 僅用新數據(10張)學習過久會急劇遺忘原有數據(20張)的特徵。
複習的重要性 將複習交替進行學習可以強化長期記憶。 必須將舊有20張 + 新增10張混合學習以維持平衡的特徵並加強。
過擬合 (Overfitting) 僅死背考試題目,讓應用能力下降的人。 對特定數據學習過久、過強將減少對其他提示的應用能力。

最終,在 LoRA 的微調過程中遭遇的 遺忘、複習的需求、在適當的時機停下來(Honey Spot) 等,都是對「如何學習、如何遺忘、如何進行複習」的認知科學思考。

我們使用的深度學習模型受到人腦結構的啟發,但實際上是數學上可實現的統計近似值。儘管如此,這一系統顯示出人類學習的相似現象,無疑是超越工學的哲學和有趣之處。


5. 處理 LoRA 即是在處理「平衡」

LoRA 模型更新不僅僅是覆蓋檔案的工作。

理解過去數據的「統計痕跡」,調整新數據的「比例」,並控制學習強度(LR與步數)以微調模型的「記憶」。這是一個要求決定模型是否保留其身份或完全轉變為新特徵的平衡感的過程。

下次進行 LoRA 微調時,請不要簡單輸入數字,而是思考「這會對模型的記憶產生什麼影響?」。這種直覺正是駕馭模型的真正專家的感悟!

人類學習與深度學習