讓大模型不再「巨無霸」,這是一份最新的大模型參數(shù)高效微調(diào)綜述
近期,大語言模型、文生圖模型等大規(guī)模 AI 模型迅猛發(fā)展。在這種形勢下,如何適應(yīng)瞬息萬變的需求,快速適配大模型至各類下游任務(wù),成為了一個重要的挑戰(zhàn)。受限于計算資源,傳統(tǒng)的全參數(shù)微調(diào)方法可能會顯得力不從心,因此需要探索更高效的微調(diào)策略。上述挑戰(zhàn)催生了參數(shù)高效微調(diào)(PEFT)技術(shù)在近期的快速發(fā)展。
為了全面總結(jié) PEFT 技術(shù)的發(fā)展歷程并及時跟進最新的研究進展,最近,來自美國東北大學(xué)、加州大學(xué) Riverside 分校、亞利桑那州立大學(xué)和紐約大學(xué)研究者們調(diào)研、整理并總結(jié)了參數(shù)高效微調(diào)(PEFT)技術(shù)在大模型上的應(yīng)用及其發(fā)展前景,并總結(jié)為一篇全面且前沿的綜述。
論文鏈接:???https://arxiv.org/pdf/2403.14608.pdf??
PEFT 提供了一個高效的針對預(yù)訓(xùn)練模型的下游任務(wù)適配手段,其通過固定大部分預(yù)訓(xùn)練參數(shù)并微調(diào)極少數(shù)參數(shù),讓大模型輕裝上陣,迅速適配各種下游任務(wù),讓大模型變得不再「巨無霸」。
全文長達 24 頁,涵蓋了近 250 篇最新文獻,剛發(fā)布就已經(jīng)被斯坦福大學(xué)、北京大學(xué)等機構(gòu)所引用,并在各平臺都有著不小的熱度。
具體來說,該綜述分別從 PEFT 算法分類,高效 PEFT 設(shè)計,PEFT 跨領(lǐng)域應(yīng)用,以及 PEFT 系統(tǒng)設(shè)計部署四大層面,對 PEFT 的發(fā)展歷程及其最新進展進行了全面且細致的闡述。無論是作為相關(guān)行業(yè)從業(yè)者,或是大模型微調(diào)領(lǐng)域的初學(xué)者,該綜述均可以充當(dāng)一個全面的學(xué)習(xí)指南。
1、PEFT 背景介紹
論文首先以最近大熱的 LLaMA 模型作為代表,分析并闡述了大語言模型(LLM)和其他基于 Transformer 的模型的架構(gòu)和計算流程,并定義了所需的符號表示,以便于在后文分析各類 PEFT 技術(shù)。
此外,作者還概述了 PEFT 算法的分類方法。作者根據(jù)不同的操作將 PEFT 算法劃分為加性微調(diào)、選擇性微調(diào)、重參數(shù)化微調(diào)和混合微調(diào)。圖三展示了 PEFT 算法的分類及各分類下包含的具體算法名稱。各分類的具體定義將在后文詳細講解。
在背景部分,作者還介紹了驗證 PEFT 方法性能所使用的常見下游基準(zhǔn)測試和數(shù)據(jù)集,便于讀者熟悉常見的任務(wù)設(shè)置。
2、PEFT 方法分類
作者首先給出了加性微調(diào)、選擇性微調(diào)、重參數(shù)化微調(diào)和混合微調(diào)的定義:
- 加性微調(diào)通過在預(yù)訓(xùn)練模型的特定位置添加可學(xué)習(xí)的模塊或參數(shù),以最小化適配下游任務(wù)時模型的可訓(xùn)練的參數(shù)量。
- 選擇性微調(diào)在微調(diào)過程中只更新模型中的一部分參數(shù),而保持其余參數(shù)固定。相較于加性微調(diào),選擇性微調(diào)無需更改預(yù)訓(xùn)練模型的架構(gòu)。
- 重參數(shù)化微調(diào)通過構(gòu)建預(yù)訓(xùn)練模型參數(shù)的(低秩的)表示形式用于訓(xùn)練。在推理時,參數(shù)將被等價的轉(zhuǎn)化為預(yù)訓(xùn)練模型參數(shù)結(jié)構(gòu),以避免引入額外的推理延遲。
這三者的區(qū)分如圖四所示:
混合微調(diào)結(jié)合了各類 PEFT 方法的優(yōu)勢,并通過分析不同方法的相似性以構(gòu)建一個統(tǒng)一的 PEFT 架構(gòu),或?qū)ふ易顑?yōu)的 PEFT 超參數(shù)。
接下來,作者對每個 PEFT 種類進一步細分:
A. 加性微調(diào):
1)Adapter
Adapter 通過在 Transformer 塊內(nèi)添加小型 Adapter 層,實現(xiàn)了參數(shù)高效微調(diào)。每個 Adapter 層包含一個下投影矩陣、一個激活函數(shù),和一個上投影矩陣。下投影矩陣將輸入特征映射到瓶頸維度 r,上投影矩陣將瓶頸特征映射回原始維度 d。
圖五展示了三種典型的 Adapter 層在模型中的插入策略。Serial Adapter 順序地插入到 Transformer 模塊之后,Parallel Adapter 則并行地插入到 Transformer 模塊旁。CoDA 是一種稀疏的 Adapter 方式,對于重要的 token,CoDA 同時利用預(yù)訓(xùn)練 Transformer 模塊和 Adapter 分支進行推理;而對于不重要的 token,CoDA 則僅使用 Adapter 分支進行推理,以節(jié)省計算開銷。
2)Soft Prompt
Soft Prompt 通過在輸入序列的頭部添加可學(xué)習(xí)的向量,以實現(xiàn)參數(shù)高效微調(diào)。代表性方法包括 Prefix-tuning 和 Prompt Tuning。Prefix-tuning 通過在每個 Transformer 層的鍵、值和查詢矩陣前面添加可學(xué)習(xí)的向量,實現(xiàn)對模型表示的微調(diào)。Prompt Tuning 僅僅在首個詞向量層插入可學(xué)習(xí)向量,以進一步減少訓(xùn)練參數(shù)。
3)Others
除了上述兩種分類,還有一些 PEFT 方法同樣也是在訓(xùn)練過程引入新的參數(shù)。
典型的兩種方法如圖六所示。(IA) 3 引入了三個縮放向量,用于調(diào)整鍵、值以及前饋網(wǎng)絡(luò)的激活值。SSF 則通過線性變換來調(diào)整模型的激活值。在每一步操作之后,SSF 都會添加一個 SSF-ADA 層,以實現(xiàn)激活值的縮放和平移。
B. 選擇性微調(diào):
1)非結(jié)構(gòu)化掩碼
這類方法通過在模型參數(shù)上添加可學(xué)習(xí)的二值掩碼來確定可以微調(diào)的參數(shù)。許多工作,如 Diff pruning、FishMask 和 LT-SFT 等,都專注于計算掩碼的位置。
2)結(jié)構(gòu)化掩碼
非結(jié)構(gòu)化掩碼對于掩碼的形狀沒有限制,但這就導(dǎo)致了其影響效率低下。因此,一些工作,如 FAR、S-Bitfit、Xattn Tuning 等均對掩碼的形狀進行了結(jié)構(gòu)化的限制。兩者的區(qū)別如下圖所示:
C. 重參數(shù)化微調(diào):
1)低秩分解
這類方法通過尋找預(yù)訓(xùn)練權(quán)重矩陣的各種低維度重參數(shù)化形式,以代表整個參數(shù)空間進行微調(diào)。其中最為典型的方法為 LoRA,它通過添加兩個額外的上投影和下投影矩陣來構(gòu)建原始模型參數(shù)的低秩表示用于訓(xùn)練。在訓(xùn)練后,額外引入的參數(shù)還可以被無縫的合并到預(yù)訓(xùn)練權(quán)重中,避免引入額外推理開銷。DoRA 將權(quán)重矩陣解耦為模長和方向,并利用 LoRA 來微調(diào)方向矩陣。
2)LoRA 衍生方法
作者將 LoRA 的衍生方法分為了動態(tài)選擇 LoRA 的秩以及 LoRA 在各方面的提升。
LoRA 動態(tài)秩中,典型方法為 DyLoRA,其構(gòu)造了一系列秩,用于在訓(xùn)練過程中同時訓(xùn)練,從而減少了用于尋找最優(yōu)秩所耗費的資源。
LoRA 提升中,作者羅列了傳統(tǒng) LoRA 在各個方面的缺陷以及對應(yīng)的解決方案。
D. 混合微調(diào):
這部分研究如何將不同 PEFT 技術(shù)融合進統(tǒng)一模型,并尋找一個最優(yōu)的設(shè)計模式。此外,也介紹了一些采用神經(jīng)架構(gòu)搜索(NAS)用以得到最優(yōu) PEFT 訓(xùn)練超參數(shù)的方案。
3、高效 PEFT 設(shè)計
這部分,作者探討了提升 PEFT 效率的研究,重點關(guān)注其訓(xùn)練和推理的延遲和峰值內(nèi)存開銷。作者主要通過三個角度來描述如何提升 PEFT 的效率。分別是:
PEFT 剪枝策略:即將神經(jīng)網(wǎng)絡(luò)剪枝技術(shù)和 PEFT 技術(shù)結(jié)合,以進一步提升效率。代表工作有 AdapterDrop、SparseAdapter 等。
PEFT 量化策略:即通過降低模型精度來減少模型大小,從而提高計算效率。在與 PEFT 結(jié)合時,其主要難點是如何更好的兼顧預(yù)訓(xùn)練權(quán)重以及新增的 PEFT 模塊的量化處理。代表工作有 QLoRA、LoftQ 等。
內(nèi)存高效的 PEFT 設(shè)計:盡管 PEFT 能夠在訓(xùn)練過程中只更新少量參數(shù),但是由于需要進行梯度計算和反向傳播,其內(nèi)存占用仍然較大。為了應(yīng)對這一挑戰(zhàn),一些方法試圖通過繞過預(yù)訓(xùn)練權(quán)重內(nèi)部的梯度計算來減少內(nèi)存開銷,比如 Side-Tuning 和 LST 等。同時,另一些方法則嘗試避免在 LLM 內(nèi)部進行反向傳播,以解決這一問題,例如 HyperTuning、MeZO 等。
4、PEFT 的跨領(lǐng)域應(yīng)用
在這一章中,作者探討了 PEFT 在不同領(lǐng)域的應(yīng)用,并就如何設(shè)計更優(yōu)的 PEFT 方法以提升特定模型或任務(wù)的性能進行了討論。本節(jié)主要圍繞著各種大型預(yù)訓(xùn)練模型展開,包括 LLM、視覺 Transformer(ViT)、視覺文本模型以及擴散模型,并詳細描述了 PEFT 在這些預(yù)訓(xùn)練模型的下游任務(wù)適配中的作用。
在 LLM 方面,作者介紹了如何利用 PEFT 微調(diào) LLM 以接受視覺指令輸入,代表性工作如 LLaMA-Adapter。此外,作者還探討了 PEFT 在 LLM 持續(xù)學(xué)習(xí)中的應(yīng)用,并提及了如何通過 PEFT 微調(diào) LLM 來擴展其上下文窗口。
針對 ViT,作者分別描述了如何利用 PEFT 技術(shù)使其適配下游圖像識別任務(wù),以及如何利用 PEFT 賦予 ViT 視頻識別能力。
在視覺文本模型方面,作者針對開放集圖像分類任務(wù),介紹了許多應(yīng)用 PEFT 微調(diào)視覺文本模型的工作。
對于擴散模型,作者識別了兩個常見場景:如何添加除文本外的額外輸入,以及如何實現(xiàn)個性化生成,并分別描述了 PEFT 在這兩類任務(wù)中的應(yīng)用。
5、PEFT 的系統(tǒng)設(shè)計挑戰(zhàn)
在這一章中,作者首先描述了基于云服務(wù)的 PEFT 系統(tǒng)所面臨的挑戰(zhàn)。主要包括以下幾點:
集中式 PEFT 查詢服務(wù):在這種模式下,云服務(wù)器存儲著單個 LLM 模型副本和多個 PEFT 模塊。根據(jù)不同 PEFT 查詢的任務(wù)需求,云服務(wù)器會選擇相應(yīng)的 PEFT 模塊并將其與 LLM 模型集成。
分布式 PEFT 查詢服務(wù):在這種模式下,LLM 模型存儲在云服務(wù)器上,而 PEFT 權(quán)重和數(shù)據(jù)集存儲在用戶設(shè)備上。用戶設(shè)備使用 PEFT 方法對 LLM 模型進行微調(diào),然后將微調(diào)后的 PEFT 權(quán)重和數(shù)據(jù)集上傳到云服務(wù)器。
多 PEFT 訓(xùn)練:挑戰(zhàn)包括如何管理內(nèi)存梯度和模型權(quán)重存儲,以及如何設(shè)計一個有效的內(nèi)核來批量訓(xùn)練 PEFT 等。
針對上述系統(tǒng)設(shè)計挑戰(zhàn),作者又列舉了三個詳細的系統(tǒng)設(shè)計案例,以更深入的分析這些挑戰(zhàn)與其可行的解決策略。
Offsite-Tuning:主要解決微調(diào) LLM 時出現(xiàn)的數(shù)據(jù)隱私困境以及大量資源消耗的問題。
PetS:提供了一個統(tǒng)一的服務(wù)框架,針對 PEFT 模塊提供統(tǒng)一的管理和調(diào)度機制。
PEFT 并行訓(xùn)練框架:介紹了兩種并行 PEFT 訓(xùn)練框架,包括 S-LoRA 和 Punica,以及他們?nèi)绾翁嵘?PEFT 的訓(xùn)練效率。
6、未來研究方向
作者認(rèn)為,盡管 PEFT 技術(shù)已經(jīng)在很多下游任務(wù)取得了成功,但仍有一些不足需要在未來的工作中加以解決。
建立統(tǒng)一的評測基準(zhǔn):盡管已存在一些 PEFT 庫,但缺乏一個全面的基準(zhǔn)來公平比較不同 PEFT 方法的效果和效率。建立一個公認(rèn)的基準(zhǔn)將促進社區(qū)內(nèi)的創(chuàng)新和合作。
增強訓(xùn)練效率:PEFT 在訓(xùn)練過程中,其可訓(xùn)練參數(shù)量并不總是與訓(xùn)練過程中的計算和內(nèi)存節(jié)省一致。如高效 PEFT 設(shè)計章節(jié)所述,未來的研究可以進一步探索優(yōu)化內(nèi)存和計算效率的方法。
探索擴展定律:許多 PEFT 技術(shù)都是在較小的 Transformer 模型上實現(xiàn)的,而其有效性不一定適用于如今的各種大參數(shù)量模型。未來的研究可以探索如何適應(yīng)大型模型的 PEFT 方法。
服務(wù)更多模型和任務(wù):隨著更多大型模型的出現(xiàn),如 Sora、Mamba 等,PEFT 技術(shù)可以解鎖新的應(yīng)用場景。未來的研究可以關(guān)注為特定模型和任務(wù)設(shè)計 PEFT 方法。
增強數(shù)據(jù)隱私:在服務(wù)或微調(diào)個性化 PEFT 模塊時,中心化系統(tǒng)可能面臨數(shù)據(jù)隱私問題。未來的研究可以探索加密協(xié)議來保護個人數(shù)據(jù)和中間訓(xùn)練 / 推理結(jié)果。
PEFT 與模型壓縮:模型壓縮技術(shù)如剪枝和量化對 PEFT 方法的影響尚未得到充分研究。未來的研究可以關(guān)注壓縮后的模型如何適應(yīng) PEFT 方法的性能。
本文轉(zhuǎn)自 機器之心 ,作者:機器之心
