AIxiv專欄是本站發布學術、技術內容的欄位。過去數年,本站AIxiv專欄接收通報了2,000多篇內容,涵蓋全球各大專院校與企業的頂尖實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或聯絡報道。投稿信箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com。
近期,大語言模式、文生圖模型等大規模 AI 模式快速發展。在這種情勢下,如何適應瞬息萬變的需求,快速適應大模型至各類下游任務,成為了一個重要的挑戰。受限於運算資源,傳統的全參數微調方法可能會顯得力不從心,因此需要探索更有效率的微調策略。上述挑戰催生了參數高效微調(PEFT)技術在近期的快速發展。 為了全面總結PEFT 技術的發展歷程並及時跟進最新的研究進展,最近,來自美國東北大學、加州大學Riverside 分校、亞利桑那州立大學和紐約大學研究者們研究、整理並總結了參數高效微調(PEFT)技術在大模型上的應用及其發展前景,並總結為一篇全面且前沿的綜述。
論文連結:https://arxiv.org/pdf/2403.14608.pdfPEFT 提供了一個高效的針對預訓練模型的下游任務適配手段,其透過固定大部分預訓練參數並微調極少數參數,讓大模型輕裝上陣,迅速適配各種下游任務,讓大模型不再「巨無霸」。 全文長達24 頁,涵蓋了近250 篇最新文獻,剛發布就已經被史丹佛大學、北京大學等機構所引用,並在各平台都有著不小的熱度。
具體來說,該綜述分別從PEFT 演算法分類,高效能PEFT 設計,PEFT 跨領域應用,以及PEFT 系統設計部署在四大層面,對PEFT 的發展歷程及其最新進展進行了全面且細緻的闡述。無論是作為相關行業從業者,或是大模型微調領域的初學者,該綜述均可作為一個全面的學習指南。
論文首先以最近大熱的LLaMA 模型作為代表,分析並闡述了大語言模型(LLM)和其他基於Transformer 的模型的架構和計算流程,並定義了所需的符號表示,以便於在後文分析各類PEFT 技術。
此外,作者也概述了 PEFT 演算法的分類方法。作者根據不同的操作將 PEFT 演算法劃分為加性微調、選擇性微調、重參數化微調和混合微調。圖三展示了 PEFT 演算法的分類及各分類下所包含的具體演算法名稱。各分類的具體定義將在後文詳細講解。
在背景部分,作者也介紹了驗證 PEFT 方法效能所使用的常見下游基準測試和資料集,以便讀者熟悉常見的任務設定。
#作者首先給出了加性微調、選擇性微調、重參數化微調和混合微調的定義:
- 加性微調透過在預訓練模型的特定位置添加可學習的模組或參數,以最小化適配下游任務時模型的可訓練的參數量。
- 選擇性微調在微調過程中只更新模型中的一部分參數,而保持其餘參數固定。相較於加性微調,選擇性微調無需改變預訓練模型的架構。
- 重參數化微調透過建構預訓練模型參數的(低秩的)表示形式用於訓練。在推理時,參數將被等價的轉換為預訓練模型參數結構,以避免引入額外的推理延遲。
##混合微調結合了各類PEFT 方法的優勢,並透過分析不同方法的相似性以建構一個統一的PEFT 架構,或尋找最優的PEFT 超參數。 接下來,作者將每個PEFT 種類進一步細分:
A. 加性微調:
1)Adapter
#Adapter 透過在Transformer 區塊內新增小型Adapter 層,實現了參數高效微調。每個 Adapter 層包含一個下投影矩陣、一個激活函數,和一個上投影矩陣。下投影矩陣將輸入特徵映射到瓶頸維度 r,上投影矩陣將瓶頸特徵映射回原始維度 d。
圖五展示了三種典型的 Adapter 層在模型中的插入策略。 Serial Adapter 依序插入 Transformer 模組之後,Parallel Adapter 則並行地插入到 Transformer 模組旁。 CoDA 是一種稀疏的 Adapter 方式,對於重要的 token,CoDA 同時利用預訓練 Transformer 模組和 Adapter 分支進行推理;而對於不重要的 token,CoDA 則僅使用 Adapter 分支進行推理,以節省計算開銷。
2)Soft Prompt
#Soft Prompt 透過在輸入序列的頭部添加可學習的向量,以實現參數高效微調。代表性方法包括 Prefix-tuning 和 Prompt Tuning。 Prefix-tuning 透過在每個 Transformer 層的鍵、值和查詢矩陣前面添加可學習的向量,實現對模型表示的微調。 Prompt Tuning 僅在首個字向量層插入可學習向量,以進一步減少訓練參數。
3)Others
#除了上述兩種分類,還有一些PEFT 方法同樣也是在訓練過程中引入新的參數。
典型的兩種方法如圖六所示。 (IA) 3 引入了三個縮放向量,用於調整鍵、值以及前饋網路的激活值。 SSF 則透過線性變換來調整模型的活化值。在每一步操作之後,SSF 都會新增一個 SSF-ADA 層,以實現啟動值的縮放和平移。
B. 選擇性微調:
#1)非結構化遮罩
這類方法透過在模型參數上添加可學習的二值遮罩來確定可以微調的參數。許多工作,如 Diff pruning、FishMask 和 LT-SFT 等,都專注於計算遮罩的位置。
2)結構化遮罩
#非結構化遮罩對於遮罩的形狀沒有限制,但這就導致了其影響效率低下。因此,一些工作,如 FAR、S-Bitfit、Xattn Tuning 等均對掩碼的形狀進行了結構化的限制。兩者的差異如下圖所示:
這類方法透過尋找預訓練權重矩陣的各種低維度重參數化形式,以代表整個參數空間進行微調。其中最典型的方法為 LoRA,它透過添加兩個額外的上投影和下投影矩陣來建立原始模型參數的低秩表示來進行訓練。在訓練後,額外引入的參數還可以被無縫的合併到預訓練權重中,避免引入額外推理開銷。 DoRA 將權重矩陣解耦為模長和方向,並利用 LoRA 來微調方向矩陣。 #作者將LoRA 的衍生方法分為了動態選擇LoRA 的秩以及LoRA在各方面的提升。在 LoRA 動態秩中,典型方法為 DyLoRA,其建構了一系列秩,用於在訓練過程中同時訓練,從而減少了用於尋找最優秩所耗費的資源。 LoRA 提升中,作者羅列了傳統 LoRA 在各個方面的缺陷以及對應的解決方案。 #這部分研究如何將不同PEFT 技術融合進統一模型,並尋找一個最優的設計模式。此外,也介紹了一些採用神經架構搜尋(NAS)用來得到最優 PEFT 訓練超參數的方案。
這部分,作者探討了提升 PEFT 效率的研究,重點在於其訓練和推理的延遲和峰值記憶體開銷。作者主要透過三個角度來描述如何提升 PEFT 的效率。分別是:PEFT 剪枝策略:即將神經網路剪枝技術和 PEFT 技術結合,以進一步提升效率。代表工作有 AdapterDrop、SparseAdapter 等。 PEFT 量化策略:即透過降低模型精確度來減少模型大小,進而提高計算效率。在與 PEFT 結合時,其主要困難是如何更好的兼顧預訓練權重以及新增的 PEFT 模組的量化處理。代表工作有 QLoRA、LoftQ 等。 記憶體高效的PEFT 設計:儘管PEFT 能夠在訓練過程中只更新少量參數,但由於需要進行梯度計算和反向傳播,其記憶體佔用仍然較大。為了應對這項挑戰,一些方法試圖透過繞過預訓練權重內部的梯度計算來減少記憶體開銷,例如 Side-Tuning 和 LST 等。同時,有些方法則試圖避免在 LLM 內部進行反向傳播,以解決這個問題,例如 HyperTuning、MeZO 等。 在這一章中,作者探討了PEFT 在不同領域的應用,並就如何設計更優的PEFT 方法以提升特定模型或任務的表現進行了討論。本節主要圍繞著各種大型預訓練模型展開,包括 LLM、視覺 Transformer(ViT)、視覺文字模型以及擴散模型,並詳細描述了 PEFT 在這些預訓練模型的下游任務適配中的作用。 在 LLM 方面,作者介紹如何利用 PEFT 微調 LLM 以接受視覺指令輸入,代表性工作如 LLaMA-Adapter。此外,作者也探討了 PEFT 在 LLM 持續學習中的應用,並提及如何透過 PEFT 微調 LLM 來擴展其上下文視窗。 針對 ViT,作者分別描述如何利用 PEFT 技術使其適合下游影像辨識任務,以及如何利用 PEFT 賦予 ViT 影片辨識能力。 在視覺文字模型方面,作者針對開放集合圖像分類任務,介紹了許多應用 PEFT 微調視覺文字模型的工作。 對於擴散模型,作者識別了兩個常見場景:如何添加除文本外的額外輸入,以及如何實現個性化生成,並分別描述了PEFT 在這兩類任務中的應用。 在這一章中,作者首先描述了基於雲端服務的PEFT 系統所面臨的挑戰。主要包括以下幾點:集中式PEFT 查詢服務:在這個模式下,雲端伺服器儲存單一LLM 模型副本和多個PEFT 模組。根據不同 PEFT 查詢的任務需求,雲端伺服器會選擇對應的 PEFT 模組並將其與 LLM 模型整合。 分散式PEFT 查詢服務:在這個模式下,LLM 模型儲存在雲端伺服器上,而PEFT 權重和資料集儲存在用戶設備上。使用者裝置使用 PEFT 方法對 LLM 模型進行微調,然後將微調後的 PEFT 權重和資料集上傳到雲端伺服器。 多 PEFT 訓練:挑戰包括如何管理記憶體梯度和模型權重存儲,以及如何設計一個有效的內核來批量訓練 PEFT 等。
針對上述系統設計挑戰,作者列舉了三個詳細的系統設計案例,以更深入的分析這些挑戰與其可行的解決策略。 Offsite-Tuning:主要解決微調 LLM 時出現的資料隱私困境以及大量資源消耗的問題。 PetS:提供了一個統一的服務框架,針對 PEFT 模組提供統一的管理和排程機制。
PEFT 平行訓練框架:介紹了兩種平行 PEFT 訓練框架,包括 S-LoRA 和 Punica,以及他們如何提升 PEFT 的訓練效率。 #作者認為,儘管PEFT 技術已經在很多下游任務取得了成功,但仍有一些不足需要在未來的工作中解決。 建立統一的評測基準:儘管已存在一些PEFT 函式庫,但缺乏一個全面的基準來公平比較不同PEFT 方法的效果和效率。建立一個公認的基準將促進社區內的創新和合作。 增強訓練效率:PEFT 在訓練過程中,其可訓練參數量並不總是與訓練過程中的計算和記憶體節省一致。如高效 PEFT 設計章節所述,未來的研究可以進一步探索優化記憶體和運算效率的方法。 探索擴展定律:許多PEFT 技術都是在較小的Transformer 模型上實現的,而其有效性不一定適用於如今的各種大參數量模型。未來的研究可以探索如何適應大型模型的 PEFT 方法。 服務更多模型與任務:隨著更多大型模型的出現,如Sora、Mamba 等,PEFT 技術可以解鎖新的應用場景。未來的研究可以專注於為特定模型和任務設計 PEFT 方法。 增強資料隱私:在服務或微調個人化 PEFT 模組時,中心化系統可能面臨資料隱私問題。未來的研究可以探索加密協議來保護個人資料和中間訓練 / 推理結果。 PEFT 與模型壓縮:模型壓縮技術如剪枝和量化對 PEFT 方法的影響尚未得到充分研究。未來的研究可以關注壓縮後的模型如何適應 PEFT 方法的性能。 以上是讓大模型不再「巨無霸」,這是最新的大模型參數高效微調綜述的詳細內容。更多資訊請關注PHP中文網其他相關文章!