如何拯救LoRA初始化?LoRA-GA:性能顯著提升+收斂速度更快!

文章鏈接:https://arxiv.org/pdf/2407.05000
亮點(diǎn)直擊
- 提出了LoRA-GA,一種新穎的 LoRA 初始化方法,通過近似低秩矩陣的梯度與全權(quán)重矩陣的梯度來加速收斂。
- 確定了在非零初始化下的縮放因子,該因子確保適配器輸出的方差不受適配器的秩和輸入維度的影響。
- 通過廣泛的實(shí)驗(yàn)驗(yàn)證了 LoRA-GA,證明了與原版 LoRA 相比,其性能顯著提升且收斂速度更快。具體而言,LoRA-GA 在 T5-Base 的 GLUE 子集上比 LoRA 提高了 5.69%,在 Llama 2-7B 上在 MT-bench、GSM8K 和 HumanEval 上分別提高了 0.34%、11.52% 和 5.05%,同時實(shí)現(xiàn)了高達(dá) 2-4 倍的收斂速度提升。
微調(diào)大規(guī)模預(yù)訓(xùn)練模型在計(jì)算和內(nèi)存成本方面是非常昂貴的。LoRA 作為最流行的參數(shù)高效微調(diào) (PEFT) 方法之一,通過微調(diào)一個參數(shù)顯著更少的輔助低秩模型,提供了一種成本有效的替代方案。盡管 LoRA 顯著減少了每次迭代的計(jì)算和內(nèi)存需求,但大量實(shí)證證據(jù)表明,與完全微調(diào)相比,它的收斂速度明顯較慢,最終導(dǎo)致總體計(jì)算增加且測試性能往往較差。本文對 LoRA 的初始化方法進(jìn)行了深入研究,并表明細(xì)致的初始化(不改變架構(gòu)和訓(xùn)練算法)可以顯著提高效率和性能。本文引入了一種新穎的初始化方法,LoRA-GA(帶梯度近似的低秩適應(yīng)),該方法在第一步將低秩矩陣乘積的梯度與完全微調(diào)的梯度對齊。廣泛實(shí)驗(yàn)表明,LoRA-GA 達(dá)到了與完全微調(diào)相當(dāng)?shù)氖諗克俣龋ㄒ虼孙@著快于原版 LoRA 及其他各種最新改進(jìn)方法),同時達(dá)到相當(dāng)或更好的性能。例如,在 T5-Base 的 GLUE 數(shù)據(jù)集子集上,LoRA-GA 平均比 LoRA 提高了 5.69%。在更大的模型如 Llama 2-7B 上,LoRA-GA 在 MT-bench、GSM8K 和 Human-eval 上分別表現(xiàn)出 0.34%、11.52% 和 5.05% 的性能提升。此外,與原版 LoRA 相比,收斂速度提高了 2-4 倍,驗(yàn)證了其在加速收斂和提升模型性能方面的有效性。

方法
本節(jié)分析了 LoRA 的初始化并介紹了LoRA-GA。它包括兩個關(guān)鍵組件,分別檢查每個組件,并介紹它們在 LoRA-GA 中的整合。
- 近似全微調(diào)的梯度方向
- 確保初始化過程中的秩和Scale穩(wěn)定性。
原版 LoRA 回顧

梯度近似


Scale穩(wěn)定性

LoRA-GA 初始化



實(shí)驗(yàn)
本節(jié)中,評估了 LoRA-GA 在各種基準(zhǔn)數(shù)據(jù)集上的性能。首先,使用 T5-Base 模型 在 GLUE 數(shù)據(jù)集 的一個子集上評估自然語言理解 (NLU) 能力。隨后,使用 Llama 2-7B 模型評估對話、數(shù)學(xué)推理和編碼能力。最后,進(jìn)行消融研究以證明本文方法的有效性。
Baselines 將 LoRA-GA 與幾個基線進(jìn)行比較,以展示其有效性:

自然語言理解實(shí)驗(yàn)
模型與數(shù)據(jù)集 在 GLUE 基準(zhǔn)的多個數(shù)據(jù)集上微調(diào) T5-Base 模型,包括 MNLI、SST-2、CoLA、QNLI 和 MRPC。使用準(zhǔn)確率作為主要指標(biāo),在開發(fā)集上評估性能。
實(shí)現(xiàn)細(xì)節(jié) 使用提示微調(diào) (prompt tuning) 方法對 T5-Base 模型進(jìn)行 GLUE 基準(zhǔn)的微調(diào)。這涉及將標(biāo)簽轉(zhuǎn)換為令牌(例如,“positive” 或 “negative”),并使用這些令牌的歸一化概率作為分類的預(yù)測標(biāo)簽概率。每個實(shí)驗(yàn)使用 3 個不同的隨機(jī)種子進(jìn)行,并報告平均性能。
結(jié)果如下表 1 所示,LoRA-GA 一直優(yōu)于原版 LoRA 和其他基線方法,取得了與完全微調(diào)相當(dāng)?shù)男阅堋L貏e是,LoRA-GA 在較小的數(shù)據(jù)集如 CoLA 和 MRPC 上表現(xiàn)突出,展示了其在有限訓(xùn)練數(shù)據(jù)下更快收斂和有效利用的能力。

大語言模型實(shí)驗(yàn)
模型與數(shù)據(jù)集 為了評估 LoRA-GA 的可擴(kuò)展性,在三個任務(wù)上訓(xùn)練了 Llama 2-7B 模型:對話、數(shù)學(xué)和代碼。
- 對話 (Chat):在 WizardLM的 52k 子集上訓(xùn)練模型,過濾掉以“作為 AI”或“對不起”開頭的回應(yīng)。在 MT-Bench 數(shù)據(jù)集上測試模型,該數(shù)據(jù)集由 80 個多輪問題組成,旨在評估大語言模型的多個方面。回答的質(zhì)量由 GPT-4 進(jìn)行評判,報告第一次回答的得分。
- 數(shù)學(xué) (Math):在 MetaMathQA 的 100k 子集上訓(xùn)練模型,這個數(shù)據(jù)集從其他數(shù)學(xué)指令調(diào)整數(shù)據(jù)集(如 GSM8K和 MATH)中引導(dǎo)而來,具有更高的復(fù)雜性和多樣性。選擇從 GSM8K 訓(xùn)練集中引導(dǎo)的數(shù)據(jù)并應(yīng)用過濾。準(zhǔn)確率在 GSM8K 評估集上報告。
- 代碼 (Code):在 Code-Feedback的 100k 子集上訓(xùn)練模型,這是一個高質(zhì)量的代碼指令數(shù)據(jù)集,去除代碼塊后的解釋。模型在 HumanEval上進(jìn)行測試,該數(shù)據(jù)集包含 180 個 Python 任務(wù),報告 PASS@1 指標(biāo)。
實(shí)現(xiàn)細(xì)節(jié) 本文的模型使用標(biāo)準(zhǔn)的監(jiān)督學(xué)習(xí)進(jìn)行語言建模訓(xùn)練。輸入提示的損失設(shè)置為零。每個實(shí)驗(yàn)使用 3 個不同的隨機(jī)種子進(jìn)行,并報告這些運(yùn)行的平均性能。
結(jié)果 結(jié)果如下表 2 所示,表明 LoRA-GA 優(yōu)于或與其他方法相當(dāng),包括完全微調(diào)。具體而言,LoRA-GA 在 GSM8K 和 Human-eval 數(shù)據(jù)集上表現(xiàn)出色,突顯了其在處理具有更高復(fù)雜性和多樣性的任務(wù)方面的有效性。在 MT-Bench 上,LoRA-GA 也展現(xiàn)了競爭力的性能,盡管略微落后于 DoRA。然而,LoRA-GA 在參數(shù)較少且大約僅需 DoRA 70% 的訓(xùn)練時間的情況下實(shí)現(xiàn)了這些性能。此外,如下圖 2(左)所示,本文的方法在收斂速率上顯著快于原版 LoRA,其收斂速率與完全微調(diào)相當(dāng)。


影響秩
將 GSM8K 和 Human-eval 數(shù)據(jù)集上的性能差異(與完全微調(diào)相比)主要?dú)w因于低秩近似所帶來的表示限制。為了解決這個問題,嘗試了更高的秩設(shè)置,具體為秩=32 和秩=128。發(fā)現(xiàn)表明,LoRA-GA 在不同秩設(shè)置下保持穩(wěn)定,并且在某些情況下,甚至超越了完全微調(diào)的性能。如圖 2(左)所示,初始化方法下更高的秩也導(dǎo)致了與完全微調(diào)相似的損失曲線。
消融研究
研究者們進(jìn)行了消融研究,以評估 LoRA-GA 中非零初始化、穩(wěn)定輸出和梯度近似的貢獻(xiàn),使用了五種不同的實(shí)驗(yàn)設(shè)置。每個設(shè)置的詳細(xì)信息見下表 3。

消融結(jié)果
結(jié)果如下表 4 和表 6 所示。對于小型和大型模型,觀察到,僅將 LoRA 的初始化更改為高斯初始化并未帶來性能提升,甚至可能導(dǎo)致輕微的性能下降。然而,當(dāng)與“+SO”(穩(wěn)定輸出)或“+GA”(梯度近似)結(jié)合使用時,性能優(yōu)于 LoRA。LoRA-GA,結(jié)合了這兩種技術(shù),表現(xiàn)優(yōu)于其他方法。如上圖 2(左)和下圖 4 所示,+SO 和 +GA 也提高了收斂速度,并且當(dāng)兩者結(jié)合時,訓(xùn)練損失曲線甚至更接近完全微調(diào)的曲線。這表明,輸出穩(wěn)定性和梯度近似都對 LoRA 的改進(jìn)有所貢獻(xiàn),各自解決了模型性能的不同方面。



內(nèi)存成本和運(yùn)行時間
研究者們在單個 RTX 3090 24GB GPU、128 核 CPU 和 256GB RAM 上對 LoRA-GA 進(jìn)行了基準(zhǔn)測試。如下表 5 所示,本文的新方法的內(nèi)存消耗不超過 LoRA 訓(xùn)練時的內(nèi)存消耗,表明沒有額外的內(nèi)存需求。此外,與后續(xù)的微調(diào)過程相比,這項(xiàng)操作的時間成本相對微不足道。例如,在 Code-Feedback 任務(wù)中,訓(xùn)練過程大約花費(fèi)了 10 小時,而初始化僅需約 1 分鐘,這一時間差異可以忽略不計(jì)。

結(jié)論
本文提出了一種用于LoRA的新初始化方案,旨在加速其收斂。通過研究 LoRA 的初始化方法和更新過程,開發(fā)了一種新初始化方法——LoRA-GA,該方法從第一步起就將低秩矩陣乘積的梯度近似為完全微調(diào)的梯度。
通過大量實(shí)驗(yàn),展示了 LoRA-GA 能夠?qū)崿F(xiàn)與完全微調(diào)相當(dāng)?shù)氖諗克俣龋瑫r提供類似或更優(yōu)的性能。由于 LoRA-GA 僅修改了 LoRA 的初始化,而未改變架構(gòu)或訓(xùn)練算法,它提供了一種高效且易于實(shí)施的方法。此外,它還可以與其他 LoRA 變體結(jié)合使用。例如,ReLoRA 定期將適配器合并到凍結(jié)權(quán)重 W 中,這可能使 LoRA-GA 在更多步驟中展現(xiàn)其優(yōu)勢。將此作為一個有趣的未來研究方向。
本文轉(zhuǎn)自 AI生成未來 ,作者:Shaowen Wang
原文鏈接:??https://mp.weixin.qq.com/s/JfgiVue2-oSZPQb3Qu72WQ??

















