今日arXiv最熱大模型論文:超越LoRA,北京大學提出預訓練模型非梯度優化法
引言:探索大型語言模型中低秩適應的新方法
在自然語言處理領域,大語言模型(LLMs)的迅猛發展帶來了前所未有的性能提升。然而,隨之而來的是模型參數數量的激增,這不僅導致了調優成本的線性增長,也給在常規硬件上進行微調帶來了挑戰。為了解決這一問題,研究者們提出了一系列參數高效的調優方法,如LoRA,它們通過只調整模型中一小部分參數來實現與全參數微調相當的性能。盡管這些方法能夠降低約30%的GPU內存需求,但仍需要計算梯度和進行反向傳播,這對于大語言模型的使用和部署提出了挑戰。
近期,研究者們開始探索無導數優化(derivative-free optimization, DFO)方法,以避免梯度計算,并在少量樣本(few-shot)設置中展示出更強的魯棒性。本文提出了一種新的無導數優化方法,通過在每個自注意力層前置低秩模塊,并交替使用兩種無導數優化方法來優化這些低秩模塊。實驗結果表明,與現有的基于梯度的參數高效調優方法和無導數優化方法相比,該新方法在各種任務和語言模型上都取得了顯著的改進,并在內存使用和收斂速度方面展現了明顯的優勢。
論文標題:
Derivative-Free Optimization for Low-Rank Adaptation in Large Language Models
論文鏈接:
???https://arxiv.org/pdf/2403.01754.pdf??
低秩適應(LoRA)的挑戰與衍生無導數優化方法的誕生
低秩適應(LoRA)是一種參數高效的調優方法,它通過調整模型參數的一小部分來實現與模型調優相當的性能。然而,這一過程仍然需要大量的計算資源,因為它涉及到計算梯度并在整個模型中進行反向傳播。
近年來,研究人員開始嘗試使用無導數優化方法來避免計算梯度,并在少量樣本設置中展示出更高的魯棒性。本文的研究者們將低秩模塊插入到模型的每個自注意力層,并交替使用兩種無導數優化方法來優化這些低秩模塊。在各種任務和語言模型上的廣泛結果表明,此方法在內存使用和收斂速度方面與現有基于梯度的參數高效調優方法和無導數優化方法相比,都有顯著的改進。
目前,利用大語言模型的主流方法是通過上下文學習,將模型視為一項服務。這種方法只涉及前向計算,并且需要設計適當的提示或演示,而不更新模型參數。然而,上下文學習需要精心選擇提示和演示,模型的性能完全依賴于所選的提示和演示。
本文研究者考慮到直接使用無導數方法在高維空間中優化每層的所有低秩模塊可能會減慢收斂速度,于是采用了分而治之的策略。分別優化每層的低秩模塊,并且引入了一個線性映射矩陣。該矩陣將無導數優化后獲得的參數映射到每層所需的低秩模塊。研究者們根據正態分布初始化線性映射矩陣,其標準差與每層的隱藏狀態相關。
研究者在RoBERTa-large、GPT2-large和GPT2-XL上進行了全面的實驗,以評估方法的有效性。結果表明,提出的方法在少量樣本設置中平均在七個自然語言理解任務上取得了顯著的改進。此外,該方法在GPU內存使用和模型收斂速度方面表現出明顯的優勢,與現有的無導數優化方法相比性能更優。
方法概述:無導數優化方法與低秩模塊的結合
1. 無導數優化方法的基本原理
無導數優化(DFO)算法能夠在不依賴反向傳播的情況下處理復雜問題。通常,這些DFO算法采用采樣和更新框架來迭代地增強解決方案。這些算法在各種領域都有廣泛的應用,從自動機器學習到強化學習和目標檢測等。
代表性的DFO算法包括CMA-ES(協方差矩陣適應進化策略)、Fireworks算法(煙花算法)、遺傳算法等。
- CMA-ES是一種廣泛采用的進化算法,用于非線性和非凸連續優化。它通過在每次迭代中從多元正態分布模型中采樣來生成新的潛在解決方案。
- 此外還有基于模擬煙花爆炸過程的Fireworks算法,通過隨機爆炸過程引入隨機性和多樣性,幫助逃離局部最小值并進行更全面的問題空間搜索。
- FWA提出了一種新的搜索方式,通過局部空間內的隨機爆炸過程搜索潛在空間。
基于CMA-ES和FWA,研究者提出了兩種無導數優化方法用于低秩適應:C-LoRA和F-LoRA。
2. 低秩模塊的引入與優化策略
研究者首先將模型設計得接近預訓練階段(例如,保持一致的目標函數),通過將每個輸入X轉換為包含標記的掩碼語言模型(MLM)輸入。然后,模型確定用于替換標記的類Y的相應詞匯化器。
在低秩適應(LoRA)和黑盒提示調優(BBT)的成功基礎上,將低秩矩陣整合到預訓練語言模型的每層自注意力模塊中。研究者使用無導數優化方法來優化引入的低秩矩陣參數。LoRA模塊由兩個低秩矩陣組成。在訓練過程中,W的參數被凍結,不接收梯度更新,而A和B的參數使用無梯度方法進行更新。
考慮到大語言模型具有低內在維度,研究者進一步使用兩種無梯度優化方法在低秩空間中優化參數。在語言模型的每層自注意力模塊中使用無梯度優化器(例如FWA和CMA-ES)優化向量。然后,這些優化后的向量通過特定的隨機投影模塊,將其投影到低秩空間。
這一過程針對每個模型層分別進行,將優化自注意力層連接的低秩矩陣視為子問題優化過程。受到分而治之方法的啟發,研究者采用無梯度優化策略來優化整個模型中引入的參數。
上述模塊在模型性能中起著至關重要的作用。研究者分析了兩種不同的初始化方法:隨機初始化與正態分布和使用與BBTv2類似的語言模型每層隱藏狀態的分布進行初始化。發現表明,隨機初始化與正態分布會導致語言模型性能略有下降,并減慢收斂速度。
因此,研究者使用語言模型每層的隱藏狀態分布來對模塊進行初始化。這種初始化策略有助于保持模型的性能和收斂速度,從而獲得更好的結果。
實驗結果:與現有方法的比較
在RoBERTa-large上的實驗結果表明,研究者提出的方法在七個自然語言理解任務中的平均表現上取得了顯著的改進。與現有的基于梯度的參數高效方法(例如Adapter tuning、LoRA、P-Tuning v2和BitFit)以及無導數優化方法(例如BBT、GAP3和BBTv2)相比,本的方法展現了明顯的優勢。此外,在內存使用和模型收斂速度方面也展現了明顯的優勢。
討論:無導數優化方法的優勢與局限
1. 內存使用與訓練時間的改進
該方法在單個NVIDIA 3090 GPU上進行了實驗,該GPU具有24GB的內存。實驗結果表明,與BBTv2相比,該方法在SST2、AG's News和MRPC上分別提高了8.7分鐘、15.4分鐘和7.7分鐘的收斂速度,這表明該方法具有在大語言模型上應用的潛力,提供了參數高效、內存高效和更快收斂的優勢。
2. 子空間維度與低秩大小對模型性能的影響
在探索子空間維度對方法的影響時,使用GPT2-XL模型在SST2和SNLI數據集上進行了實驗。該方法在增加子空間維度時始終優于BBTv2。
在考慮低秩r對提出方法性能的影響時,研究者在GPT2-XL模型上對SST2和Yelpp數據集進行了實驗。在使用無導數方法優化時,模型不需要在高維度上進行優化,只需要在低秩r上進行優化即可取得良好的結果。實驗中,研究者選擇r=2或r=4,允許模型通過引入非常少的參數來實現良好的結果。
結論與未來工作方向
1. 本研究的貢獻與意義
本研究的意義在于,它為如何在不計算梯度的情況下有效利用大型語言模型提供了一個有前景的方向。不僅提高了模型的穩定性和收斂速度,而且在GPU內存使用上也更為高效,這使得它在資源受限的環境中尤為有價值。
2. 對未來大型語言模型優化方法的展望
未來的研究可以在多個方向上進一步擴展本研究的工作。
- 首先,雖然該方法在語言理解任務上取得了成功,但其在生成任務上的效果尚未得到驗證。未來的工作可以探索如何將導數自由優化方法應用于更廣泛的NLP任務,包括文本生成。
- 其次,目前僅在需要修改特定模型結構的大模型上進行了驗證。未來的工作可以探索如何將這種方法應用于不同類型的模型,以及如何進一步提高其在不同模型架構上的通用性和靈活性。
- 最后,本研究的方法在實驗中展現了優勢,但其背后的理論基礎尚未完全清晰。因此,未來的研究可以致力于更深入地理解導數自由優化方法在低秩模塊優化中的作用機制,以及它們如何與模型的內在維度和參數效率相互作用。
本文轉載自夕小瑤科技說,作者:松果
