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