本文是一篇專注于減輕大型Transformer語(yǔ)言模型訓(xùn)練代價(jià)的工作。作者提出了一種基于低秩更新的ReLoRA方法。過去十年中深度學(xué)習(xí)發(fā)展階段中的一個(gè)核心原則就是不斷的“堆疊更多層(stack more layers),因此作者希望探索能否同樣以堆疊的方式來提升低秩適應(yīng)的訓(xùn)練效率,實(shí)驗(yàn)結(jié)果表明,ReLoRA在改進(jìn)大型網(wǎng)絡(luò)的訓(xùn)練方面更加有效。
論文鏈接: https://arxiv.org/abs/2307.05695 代碼倉(cāng)庫(kù): https://github.com/guitaricet/peft_pretraining
一段時(shí)間以來,大模型(LLMs)社區(qū)的研究人員開始關(guān)注于如何降低訓(xùn)練、微調(diào)和推理LLMs所需要的龐大算力,這對(duì)于繼續(xù)推動(dòng)LLMs在更多的垂直領(lǐng)域中發(fā)展和落地具有非常重要的意義。目前這一方向也有很多先驅(qū)工作,例如從模型結(jié)構(gòu)上創(chuàng)新的RWKV,直接替換計(jì)算量較大的Transformer架構(gòu),改用基于RNN范式的新架構(gòu)。還有一些方法從模型微調(diào)階段入手,例如在原有LLMs中加入參數(shù)量較小的Adapter模塊來進(jìn)行微調(diào)。還有微軟提出的低秩自適應(yīng)(Low-Rank Adaptation,LoRA)方法,LoRA假設(shè)模型在任務(wù)適配過程中對(duì)模型權(quán)重的更新量可以使用低秩矩陣進(jìn)行估計(jì),因而可以用來間接優(yōu)化新加入的輕量級(jí)適應(yīng)模塊,同時(shí)保持原有的預(yù)訓(xùn)練權(quán)重不變。目前LoRA已經(jīng)成為大模型工程師必備的一項(xiàng)微調(diào)技能,但本文作者仍然不滿足于目前LoRA所能達(dá)到的微調(diào)效果,并進(jìn)一步提出了一種可疊加的低秩微調(diào)方法,稱為ReLoRA。
本文來自馬薩諸塞大學(xué)洛厄爾分校的研究團(tuán)隊(duì),作者團(tuán)隊(duì)將ReLoRA應(yīng)用在具有高達(dá)350M參數(shù)的Transformer上時(shí),展現(xiàn)出了與常規(guī)神經(jīng)網(wǎng)絡(luò)訓(xùn)練相當(dāng)?shù)男阅堋4送猓疚淖髡哌€觀察到ReLoRA的微調(diào)效率會(huì)隨著模型參數(shù)規(guī)模的增加而不斷提高,這使得其未來有可能成為訓(xùn)練超大規(guī)模(通常超過1B參數(shù))LLMs的新型手段。
一、引言雖然目前學(xué)術(shù)界和工業(yè)界都在不斷推出自家的各種基座模型,但不可否認(rèn)的是,完全預(yù)訓(xùn)練一個(gè)具有初等推理能力的LLMs仍然需要非常龐大的算力,例如大家熟知的LLaMA-6B模型[1]就需要數(shù)百個(gè)GPU才能完成訓(xùn)練,這種規(guī)模的算力已經(jīng)讓絕大多數(shù)學(xué)術(shù)研究小組望而卻步了。在這種背景下,參數(shù)高效微調(diào)(PEFT)已經(jīng)成為了一個(gè)非常具有前景的LLMs研究方向。具體來說,PEFT方法可以在消費(fèi)級(jí)GPU(例如RTX 3090或4090)上對(duì)十億級(jí)語(yǔ)言或擴(kuò)散模型進(jìn)行微調(diào)。因此本文重點(diǎn)關(guān)注PEFT中的低秩訓(xùn)練技術(shù),尤其是LoRA方法。作者思考到,過去十年中深度學(xué)習(xí)發(fā)展階段中的一個(gè)核心原則就是不斷的“堆疊更多層(stack more layers)”,例如ResNet的提出可以使我們將卷積神經(jīng)網(wǎng)絡(luò)的深度提升到100層以上,并且也獲得了非常好的效果。因此本文探索能否同樣以堆疊的方式來提升低秩適應(yīng)的訓(xùn)練效率呢?
本文提出了一種基于低秩更新的ReLoRA方法,來訓(xùn)練和微調(diào)高秩網(wǎng)絡(luò),其性能優(yōu)于具有相同可訓(xùn)練參數(shù)數(shù)量的網(wǎng)絡(luò),甚至能夠達(dá)到與訓(xùn)練100M+規(guī)模的完整網(wǎng)絡(luò)類似的性能,對(duì)比效果如上圖所示。具體來說,ReLoRA方法包含(1)初始化全秩訓(xùn)練、(2)LoRA 訓(xùn)練、(3)參數(shù)重新啟動(dòng)、(4)鋸齒狀學(xué)習(xí)率調(diào)度(jagged learning rate schedule)和(5)優(yōu)化器參數(shù)部分重置。作者選擇目前非常火熱的自回歸語(yǔ)言模型進(jìn)行實(shí)驗(yàn),并且保證每個(gè)實(shí)驗(yàn)所使用的GPU計(jì)算時(shí)間不超過8天。二、本文方法作者首先從兩個(gè)矩陣之和的秩入手,通常來說,矩陣相加的后秩的上界會(huì)比較緊湊,對(duì)于矩陣,,然后存在矩陣,,使得矩陣之和的秩高于或。作者希望利用這一特性來制定靈活的參數(shù)高效訓(xùn)練方法,然后從LoRA算法開始入手,LoRA可以將模型權(quán)重的更新量 分解為一組低秩矩陣乘積 ,如下式所示,其中 是固定縮放因子。
在具體操作時(shí),LoRA通常是加入新的可學(xué)習(xí)參數(shù) 和 來實(shí)現(xiàn),這些參數(shù)可以在訓(xùn)練后合并回原始參數(shù)中。因此,盡管上述方程允許我們?cè)谟?xùn)練階段中實(shí)現(xiàn)總參數(shù)更新量高于任意單個(gè)矩陣的秩,但其仍然受到的限制。因此作者想到通過不斷疊加這一過程來突破限制達(dá)到更好的訓(xùn)練效果。這首先需要對(duì)LoRA過程進(jìn)行重新啟動(dòng),就可以在訓(xùn)練階段不斷合并每次得到的 和 來得到累加的權(quán)重更新量,計(jì)算公式如下:但是,想要對(duì)已經(jīng)完成的LoRA過程重新啟動(dòng)并不容易,這需要對(duì)優(yōu)化器進(jìn)行精細(xì)的調(diào)整,如果調(diào)整不到位,會(huì)導(dǎo)致模型在重啟后立即與之前的優(yōu)化方向出現(xiàn)分歧。例如Adam優(yōu)化器在更新時(shí)主要由先前步驟中所累積梯度的一階矩和二階矩引導(dǎo)。實(shí)際上,梯度矩平滑參數(shù) 和 通常非常高,因而在重新啟動(dòng)時(shí)的秩上界為 ,相應(yīng)的梯度矩 和 都是滿秩的,在合并參數(shù)后就會(huì)使用先前的舊梯度來優(yōu)化 朝向與 相同的子空間方向。 為了解決這個(gè)問題,作者提出了ReLoRA方法,ReLoRA在合并和重新啟動(dòng)期間可以對(duì)優(yōu)化器進(jìn)行部分重置,并在隨后的預(yù)熱中過程中將學(xué)習(xí)率設(shè)置為0。具體來說,作者提出了一種鋸齒狀學(xué)習(xí)率調(diào)度算法,如下圖所示,在每次對(duì)ReLoRA參數(shù)進(jìn)行重置時(shí),都會(huì)將學(xué)習(xí)率設(shè)置為零,并執(zhí)行快速(50-100 步)學(xué)習(xí)率預(yù)熱使其回到與重置前相同的水平范圍內(nèi)。
ReLoRA通過序列疊加的方式僅訓(xùn)練一小組參數(shù)就可以實(shí)現(xiàn)與全秩訓(xùn)練相當(dāng)?shù)男阅埽⑶易裱璍oRA方法的基礎(chǔ)原則,即保持原始網(wǎng)絡(luò)的凍結(jié)權(quán)重并添加新的可訓(xùn)練參數(shù)。乍一看,這種方式可能顯得計(jì)算效率低下,但我們需要清楚的是,這種方法可以通過減小梯度和優(yōu)化器狀態(tài)的大小,來顯著提高顯存效率。例如Adam優(yōu)化器狀態(tài)消耗的顯存通常是模型權(quán)重占用的兩倍。通過大幅減少可訓(xùn)練參數(shù)的數(shù)量,ReLoRA可以在相同的顯存條件下使用更大的batchsize大小,從而最大限度地提高硬件效率,ReLoRA的整體操作細(xì)節(jié)如下圖所示。
三、實(shí)驗(yàn)效果為了清晰的評(píng)估ReLoRA方法的性能,作者將其應(yīng)用在各種規(guī)模大小(60M、130M、250M 和 350M)的Transformer模型上,并且都在C4數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試。為了展現(xiàn)ReLoRA方法的普適性,作者重點(diǎn)考察NLP領(lǐng)域的基礎(chǔ)語(yǔ)言建模任務(wù)。模型架構(gòu)和訓(xùn)練超參數(shù)設(shè)置基本與LLaMA模型保持一致。與LLaMA不同的是,作者在實(shí)驗(yàn)中將原始的注意力機(jī)制(使用float32進(jìn)行 softmax計(jì)算)替換為了Flash注意力[2],并且使用bfloat16精度進(jìn)行計(jì)算,這樣操作可以將訓(xùn)練吞吐量提高50-100%,且沒有任何訓(xùn)練穩(wěn)定性問題。此外,使用ReLoRA方法訓(xùn)練的模型參數(shù)規(guī)模相比LLaMA要小得多,最大的模型參數(shù)才僅有350M,使用8個(gè)RTX4090上訓(xùn)練了一天時(shí)間就可以完成。 下圖展示了本文方法與其他方法的性能對(duì)比效果,可以看到ReLoRA顯著優(yōu)于低秩LoRA方法,證明了我們提出的修改的有效性。此外,ReLoRA還實(shí)現(xiàn)了與滿秩訓(xùn)練(Full training)相當(dāng)?shù)男阅埽⑶椅覀兛梢杂^察到,隨著網(wǎng)絡(luò)規(guī)模的增加,性能差距逐漸縮小。有趣的是,ReLoRA 唯一無法超過的基線模型是僅具有60M參數(shù)的最小模型。這一觀察結(jié)果表明,ReLoRA在改進(jìn)大型網(wǎng)絡(luò)的訓(xùn)練方面更加有效,這與作者最開始研究探索一種改進(jìn)大型網(wǎng)絡(luò)訓(xùn)練方法的目標(biāo)是一致的。
此外,為了進(jìn)一步判斷ReLoRA是否能夠通過迭代低秩更新來實(shí)現(xiàn)相比LoRA更高的秩更新訓(xùn)練,作者繪制了ReLoRA、LoRA和全秩訓(xùn)練的熱啟動(dòng)權(quán)重與最終權(quán)重之間差異的奇異值譜。如下圖所示,下圖說明了LoRA和ReLoRA之間對(duì)于 、、 和 奇異值的顯著差異,可以看到ReLoRA在所有四個(gè)矩陣參數(shù)上均得到了最小的奇異值。
四、總結(jié)本文是一篇專注于減輕大型Transformer語(yǔ)言模型訓(xùn)練代價(jià)的工作,作者選取了一條非常具有前景的方向,即低秩訓(xùn)練技術(shù),并且從最樸素的低秩矩陣分解 (LoRA) 方法出發(fā),利用多個(gè)疊加的低秩更新矩陣來訓(xùn)練高秩網(wǎng)絡(luò),為了實(shí)現(xiàn)這一點(diǎn),作者精心設(shè)計(jì)了包含參數(shù)重新啟動(dòng)、鋸齒狀學(xué)習(xí)率調(diào)度算法和優(yōu)化器參數(shù)重置等一系列操作,這些操作共同提高了ReLoRA算法的訓(xùn)練效率,在某些情況下甚至能夠達(dá)到與全秩訓(xùn)練相當(dāng)?shù)男阅埽绕鋵?shí)在超大規(guī)模的Transformer網(wǎng)絡(luò)中。作者通過大量的實(shí)驗(yàn)證明了ReLoRA的算法可行性和操作有效性,不知ReLoRA是否也會(huì)成為大模型工程師一項(xiàng)必備的算法技能呢?
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4785瀏覽量
101246 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5519瀏覽量
121614 -
LoRa
+關(guān)注
關(guān)注
349文章
1700瀏覽量
232490 -
大模型
+關(guān)注
關(guān)注
2文章
2613瀏覽量
3232
原文標(biāo)題:LoRA繼任者ReLoRA登場(chǎng),通過疊加多個(gè)低秩更新矩陣實(shí)現(xiàn)更高效大模型訓(xùn)練效果
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀
【「大模型啟示錄」閱讀體驗(yàn)】營(yíng)銷領(lǐng)域大模型的應(yīng)用
GPU是如何訓(xùn)練AI大模型的
PyTorch GPU 加速訓(xùn)練模型方法
如何訓(xùn)練自己的AI大模型
2024 VDC人工智能會(huì)場(chǎng):全新藍(lán)心大模型矩陣,助力開發(fā)者高效創(chuàng)新
![2024 VDC人工智能會(huì)場(chǎng):全新藍(lán)心大<b class='flag-5'>模型</b><b class='flag-5'>矩陣</b>,助力開發(fā)<b class='flag-5'>者</b><b class='flag-5'>高效</b>創(chuàng)新](https://file1.elecfans.com/web2/M00/09/56/wKgZomcKEd2AGjbGAAAR7EuaP38384.jpg)
如何通過增強(qiáng)抗干擾能力提高LoRa通信效果
![如何<b class='flag-5'>通過</b>增強(qiáng)抗干擾能力提高<b class='flag-5'>LoRa</b>通信<b class='flag-5'>效果</b>](https://file1.elecfans.com/web2/M00/01/8D/wKgaomawlsKAeyncAABZOuq8rqQ357.png)
使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型更新
人臉識(shí)別模型訓(xùn)練失敗原因有哪些
人臉識(shí)別模型訓(xùn)練是什么意思
【大語(yǔ)言模型:原理與工程實(shí)踐】大語(yǔ)言模型的預(yù)訓(xùn)練
【大語(yǔ)言模型:原理與工程實(shí)踐】大語(yǔ)言模型的基礎(chǔ)技術(shù)
【大語(yǔ)言模型:原理與工程實(shí)踐】揭開大語(yǔ)言模型的面紗
基于雙級(jí)優(yōu)化(BLO)的消除過擬合的微調(diào)方法
![基于雙級(jí)優(yōu)化(BLO)的消除過擬合的微調(diào)方法](https://file1.elecfans.com/web2/M00/C7/98/wKgaomYLxqSAfrTuAAAQsrCvNqM874.png)
評(píng)論