NeurIPS 2024 Oral | 小參數,大作爲!揭秘非對稱 LoRA 架構性能

這篇論文剛剛中稿 NeurIPS Oral(64/15671 =0.4%),作者分別來自澳門大學、德克薩斯大學奧斯汀分校以及劍橋大學。其中,第一作者田春霖是澳門大學計算機系的三年級博士生,研究方向涉及 MLSys 和高效大語言模型。師從慄力、須成忠教授。

大型語言模型(LLMs)雖然在適應新任務方面取得了長足進步,但它們仍面臨着巨大的計算資源消耗,尤其在複雜領域的表現往往不盡如人意。爲了緩解這一問題,業界提出了多種參數高效微調(PEFT)方法,例如 LoRA。然而,LoRA 在面對複雜數據集時,總是難以與全參數微調的表現相媲美,尤其當任務之間充滿多樣性時,效果更是大打折扣。

爲了突破這一瓶頸,來自澳門大學、德克薩斯大學奧斯汀分校以及劍橋大學的研究者聯合提出了一種全新的非對稱 LoRA 架構 —— HydraLoRA。與傳統 LoRA 需要對所有任務使用相同的參數結構不同,HydraLoRA 引入了共享的 A 矩陣和多個獨立的 B 矩陣,分別處理不同的任務,從而避免任務間的干擾。九頭蛇(Hydra)的每個頭就像 LoRA 中的 B 矩陣一樣,專注於各自的特定任務,而共享的 A 矩陣則像九頭蛇的身體,統一管理和協調,確保高效和一致性。無需額外工具或人爲干預,HydraLoRA 能夠自主識別數據中的隱含特性,極大提升了任務適應性與性能表現。藉助這種多頭靈活應對的機制,HydraLoRA 實現了參數效率與模型性能的雙重突破。

一句話總結:HydraLoRA 引入了一種非對稱的參數微調架構,能夠有效識別並適應數據中的 “內在組件”—— 即子領域或不同任務,這些組件可能難以被領域專家明確界定。其核心思想是通過共享的 A 矩陣和獨立的 B 矩陣,最大限度地減少任務間的相互干擾,對每個內在組件進行優化調整。HydraLoRA 自主分配不同的 B 矩陣來捕捉特定任務的特性,而共享的 A 矩陣負責全局信息的整合,從而實現了高效的參數利用和性能提升。在複雜的多任務環境中,HydraLoRA 展現出了卓越的適應性,能夠靈活處理各個內在組件,顯著提升模型的準確性和效率,同時優化了資源消耗。

HydraLoRA 中 LoRA 架構變化示意圖

研究動機與觀察

LoRA 的現實困境:參數高效微調(PEFT)技術與全參數微調(FFT)之間存在顯著的性能差距,尤其在處理更多樣化或異質的訓練語料庫時,這一差距會進一步擴大。語料庫的異質性意味着數據集的多樣性,由於內容和風格各異,往往會引入干擾。PEFT 方法對此尤爲敏感,在異構情況下性能損失更爲嚴重。

LoRA 的分析觀察 1:在參數數量相同的情況下,與其對整個域數據集使用單個 LoRA,不如部署多個較小的 LoRA 模塊,每個模塊專注於特定的下游任務。如下表所示,對於 LoRA (Split),該研究將高秩的 LoRA 模塊分解爲多個較小且等效的低秩組件(r×n),其中 n 表示 LoRA 的數量,r 代表每個 LoRA 的秩。這表明任務之間的干擾可能對訓練過程產生負面影響。

此外,研究團隊認爲這種干擾並不限於顯式的多任務訓練場景。在任何訓練設置中,這種干擾都有可能發生,因爲所有數據集本質上都包含多個隱含的內在組件,例如子領域或域內的任務,這些組件甚至連領域專家也未必能夠明確區分。

LoRA 的分析觀察 2:當多個 LoRA 模塊在不同數據上獨立訓練時,不同頭的矩陣 A 參數趨於一致,而矩陣 B 的參數則明顯可區分。下圖展示了 LoRA 模塊的分解分析,通過 t-SNE 比較。各個頭部的 A 矩陣參數高度相似,導致在圖中重疊。相比之下,不同頭部的 B 矩陣參數則明顯不同,易於區分。研究團隊認爲這種不對稱現象主要源於 A 矩陣和 B 矩陣的初始化方式不同。A 矩陣傾向於捕捉跨領域的共性,而 B 矩陣則適應領域特定的差異。A 和 B 矩陣之間的區別爲提升參數效率和有效性提供了重要見解。從效率角度來看,該研究假設 A 矩陣的參數可以在多個頭部之間共享,從而減少冗餘。就有效性而言,由於不同頭部的 B 矩陣參數分散,說明使用單一頭部來適應多個領域的效果可能不如爲每個領域使用獨立頭部更爲有效,因爲這能最大程度地減少領域之間的干擾。

非對稱的架構:HydraLoRA

微調階段:HydraLoRA 無需特定的領域知識即可自適應地識別並初始化 N 個內在組件。然後,它利用一個可訓練的 MoE(Mixture of Experts)路由器,將每個內在組件視爲專家,自動將訓練樣本劃分到對應的組件進行微調。

推理階段:HydraLoRA 通過訓練完成的路由器,靈活且動態地合併多個 B 矩陣,以滿足不同任務和數據的需求。這樣的設計使得模型能夠高效地適應多樣化的應用場景,提升了整體性能和資源利用效率。

實驗結果

1. 整體性能

該研究使用 HydraLoRA 在單任務(通用、醫學、法律、數學和代碼)和多任務(Flanv2)場景下進行了全面驗證。

不同微調方案在單一領域多個基準中的性能比較:

在 BBH 基準上跨混合任務域的不同微調方案性能比較:

從以上兩個表格可以得出以下結論:

2. 能耗和吞吐量分析

HydraLoRA 的 “Hydra” 結構如何提高系統效率,降低訓練能耗和延遲?如下圖所示,該研究從訓練能耗和延遲兩個方面評估了 HydraLoRA 的系統效率。結果顯示,HydraLoRA 在系統效率上具有顯著優勢。首先,HydraLoRA 通過非對稱結構優化了能耗和延遲,減少了訓練過程中的能源消耗和時間延遲。

總結

1. 本文提出了一種新的參數高效微調架構,HydraLoRA,通過共享 A 矩陣和多個獨立的 B 矩陣,減少任務間的干擾並提高性能;

2. 本文挑戰了單一 LoRA 結構的侷限性,提出了一個通過分離內在組件來優化微調過程的框架,能夠自動識別數據中的不同子任務或子領域,進一步增強了模型的適應性;

3. 無論是處理單任務還是多任務,HydraLoRA 都在不同的領域中表現優異,同時顯著減少了參數量和計算資源的消耗。更令人振奮的是,HydraLoRA 的非對稱架構擺脫了手動干預的需求,通過自動化的方式優化了任務間的學習過程。