遺忘"大腦?香港中文大學提出新算法MoFO助力AI記住預訓練知識!
引言:大型語言模型在微調過程中的遺忘問題
在人工智能領域,大型語言模型(LLM)因其在多種任務中展示出的卓越能力而備受關注。這些模型通常先在大規模語料庫上進行預訓練,以掌握廣泛的語言能力,然后在特定任務的數據集上進行微調,以適應具體的應用場景。然而,微調過程中一個常見且棘手的問題是模型可能會忘記在預訓練階段獲得的知識,這種現象被稱為“遺忘”。
遺忘問題不僅降低了模型的通用性能,還可能影響到模型在新任務上的表現。因此,如何在微調過程中盡可能保留預訓練階段的知識,成為了研究的一個重要方向。本文中,我們將介紹一種新的微調算法——動量過濾優化器(MoFO),該算法通過在每次迭代中僅更新動量最大的參數子集,有效緩解了遺忘問題,同時保持了微調任務的性能。
- 論文標題:MoFO: Momentum-Filtered Optimizer for Mitigating Forgetting in LLM Fine-Tuning
- 機構:The Chinese University of Hong Kong, Shenzhen, China; Shenzhen Research Institute of Big Data; Hong Kong University of Science and Technology
- 論文鏈接:https://arxiv.org/pdf/2407.20999.pdf
MoFO優化器的概念和動機
1. 概念介紹
Momentum-Filtered Optimizer (MoFO) 是一種新型的微調算法,旨在解決大型語言模型(LLM)在微調過程中可能出現的知識遺忘問題。MoFO的核心思想是在每次迭代中選擇并更新具有最大動量幅度的模型參數。這種方法與全參數訓練相比,能夠在達到類似的微調性能的同時,保持參數更接近預訓練模型,從而減輕知識遺忘。
2. 動機
在微調大型語言模型時,常見的問題是模型可能會忘記在預訓練階段獲得的知識,這會導致模型在通用能力上的下降。為了解決這一問題,研究者們提出了多種方法,包括基于回放的方法和正則化方法。然而,這些方法要么需要訪問預訓練數據,增加了計算和存儲成本,要么需要修改損失函數,可能會損害模型在微調任務上的表現。
MoFO方法的提出,是基于對微調損失景觀的觀察,即通過選擇更新動量最大的參數子集,可以使模型收斂到更接近原始損失函數的最小值,從而在不犧牲微調性能的情況下減少遺忘。此外,MoFO不需要訪問預訓練數據,也不會改變原始損失函數,使其特別適用于只有微調檢查點的開源LLM場景。
MoFO的算法細節
1. 算法構成
MoFO算法將所有參數分為B個固定部分,每個部分包含不同的網絡參數(例如權重矩陣和偏置項)。在每次迭代中,MoFO選擇每個部分中動量最大的α%的參數進行更新。這種動量過濾機制可以通過PyTorch的反向傳播機制自動實現,其中自動返回的梯度會根據每個參數部分進行計算。
2. 實現細節
具體來說,MoFO在每次迭代中執行以下步驟:
- 將所有參數按照網絡結構劃分為不同的部分。
- 對每個部分,計算每個參數的動量,并選擇動量最大的α%的參數。
- 只更新這些選中的參數,而保持其他參數不變。
這種基于動量的選擇規則不僅簡化了計算過程,還通過選擇對減少微調損失最有影響的參數,提高了微調過程的效率和效果。通過這種方法,MoFO有效地選擇并更新最具影響力的參數,從而在增強微調過程的同時,減輕了預訓練知識的災難性遺忘。
實驗設置和數據集介紹
1. 數據集介紹
在本研究中,我們使用了兩組數據集進行實驗:用于指令式微調的數據集和用于持續微調的數據集。
- 指令式微調數據集:這組數據集涵蓋了不同領域的問題-答案對,特別是包括了395K數學問題-答案對的MetaMathQA數據集。我們隨機選擇了該數據集的10%(即33,000個問題-答案對)進行訓練。
- 持續微調數據集:我們在TRACE基準數據集上實施了MoFO方法,該數據集設計了8種不同領域的任務,包括領域特定知識、多語言能力、代碼生成和數學推理等。
2. 評估指標
- 指令式微調的評估指標:我們引入了一系列廣泛使用的基準來評估LLM在指令式微調后的性能和災難性遺忘效應。這些基準包括MMLU(大規模多任務語言理解)、Commonsense(常識推理能力評估)和GSM8K(數學能力評估)。
- 持續微調的評估指標:我們考慮了兩個關鍵指標:總體性能(OP)和向后轉移(BWT)。這些指標提供了一個全面的評估,可以衡量模型在增量學習的同時保留過去經驗的能力。
實驗結果與分析
1. 實驗結果
- 指令式微調結果:在MetaMathQA數據集上,MoFO與其他基線方法相比,在數學任務(GSM8K)上的表現相當,但在保持一般能力方面表現更好。例如,MoFO在MMLU的準確性上不僅保持不變,甚至略有提高。
- 持續微調結果:在TRACE基準數據集上,MoFO在OP和BWT得分上均優于全參數微調(Full FT)和半參數微調(HFT)。此外,MoFO與重放方法結合使用時,OP指標比單獨使用重放方法提高了1.5%。
2. 分析
- 參數更新分數的影響:我們發現,參數更新分數在保持模型性能和避免災難性遺忘方面起著關鍵作用。較低的更新分數有助于減少遺忘,但可能限制了優化的有效性。
- 更新策略的影響:MoFO通過選擇具有最大動量幅度的參數進行更新,與基于梯度的選擇相比,顯示出更強的優化能力和更少的遺忘。
通過這些實驗,我們驗證了MoFO在減輕災難性遺忘和提高微調性能方面的有效性。
MoFO的理論分析和收斂性
1. 理論基礎
MoFO(Momentum-Filtered Optimizer)是一種優化算法,旨在減輕在微調大型語言模型(LLM)時發生的知識遺忘問題。MoFO通過在每次迭代中只更新具有最大動量幅度的參數子集,從而保持模型參數更接近于預訓練模型。這種方法基于動量而非梯度來選擇更新的參數,這與傳統的Adam優化器有所不同。
2. 收斂性分析
在對MoFO的收斂性進行理論分析時,我們考慮了其簡化版本,即作為梯度下降(GD)的變體。根據提出的定理,如果損失函數的梯度是Lipschitz連續的,并且學習率滿足特定條件,則MoFO的GD版本將保證收斂到最小損失值。這一理論支持表明,MoFO能夠在不犧牲微調性能的情況下,有效減輕知識遺忘。
MoFO在持續微調中的應用
1. 持續微調的實驗設置
在持續微調的場景中,我們使用了TRACE基準數據集,該數據集包含多個不同領域的任務。我們在這些任務上順序訓練TinyLlama-1.1B模型,并采用MoFO進行優化。實驗中,MoFO的參數更新比例設置為5%,并使用余弦衰減的學習率調度。
2. 持續微調的性能評估
我們通過兩個關鍵指標來評估LLM在持續學習場景中的性能:整體性能(OP)和向后轉移(BWT)。MoFO在這些指標上的表現優于全參數微調和其他基線方法。特別是,與單獨使用重放方法相比,結合MoFO的重放方法在OP指標上有1.5%的性能提升。此外,當與GEM方法結合使用時,MoFO在OP指標上也顯示出0.9%的改進。
3. 結論
MoFO不僅在持續微調任務中表現出色,而且通過選擇性參數更新,有效地減輕了災難性遺忘,保持了模型對預訓練知識的保留。這些結果強調了MoFO在持續微調中的優越性能,并為未來在多模態大型語言模型中應用MoFO提供了理論和實證基礎。
討論與未來工作
1. 討論
本研究提出的Momentum-Filtered Optimizer(MoFO)方法在減輕大型語言模型(LLM)在微調過程中的遺忘問題上顯示出顯著的優勢。通過選擇具有最大動量幅度的參數進行更新,MoFO能夠在不犧牲微調任務性能的前提下,使模型參數更接近預訓練模型,從而有效減輕了遺忘現象。
實驗結果表明,與全參數微調(Full FT)和其他基線方法相比,MoFO在保持或甚至提升一般能力方面表現更為出色。例如,在MetaMathQA數據集上的數學推理任務(GSM8K)和一般能力保持方面,MoFO展示了優于L1和L2正則化方法的性能。
此外,MoFO在連續微調場景中也表現出色,如在TRACE基準測試中,MoFO的表現優于傳統的全參數微調方法,顯示出更好的整體性能(OP)和更低的后向遷移(BWT)得分。
2. 未來工作
盡管MoFO已經取得了一定的成果,但仍有一些潛在的改進和應用方向。首先,MoFO的收斂性尚未完全解決,未來的研究可以探索如何優化MoFO的動量篩選機制以確保更穩定和快速的收斂。其次,考慮到MoFO在處理遺忘問題方面的有效性,將其應用于多模態LLM可能是一個有前景的研究方向,這可能進一步提升模型在更廣泛應用場景中的表現。最后,結合其他連續學習策略,如經驗重放或梯度修剪,可能會進一步增強MoFO的性能和靈活性。
總結
本文介紹了一種新的微調優化算法——Momentum-Filtered Optimizer(MoFO),旨在解決LLM在微調過程中的知識遺忘問題。通過在每次迭代中僅更新動量最大的參數子集,MoFO能夠有效地減少參數移動,從而減輕災難性遺忘,并保持甚至提升模型在特定任務上的性能。實驗結果驗證了MoFO在多種微調場景中的有效性,包括指令微調和連續微調。未來的工作將探索MoFO的進一步優化以及在多模態LLM中的應用潛力。
本文轉載自 ??AI論文解讀??,作者:柏企
