一種新的參數高效微調方法-LoRI

論文:LoRI: Reducing Cross-Task Interference in Multi-Task Low-Rank Adaptation

LoRA 具體參考

1. 引言與背景:為什么需要 LoRI?

這篇論文提出了一種新的參數高效微調(PEFT)方法,名為 LoRA with Reduced Interference (LoRI)。LoRI 旨在解決傳統 LoRA 的局限性

傳統 LoRA 的局限性(論文中指出):

  • 顯著的參數開銷 (Notable Overhead): 盡管 LoRA 比全量微調更高效,但它仍然引入了相當數量的可訓練參數,特別是當任務數量很多時(例如 2×r×d,其中 r 是秩, d 是維度)。
    • LoRI 的實現方式是將投影矩陣 A 固定為隨機投影,并使用任務特定的掩碼來稀疏化矩陣 B
  • 多任務場景下的參數干擾 (Parameter Interference in Multi-Task Scenarios): 這是一個關鍵問題。當多個 LoRA 適配器(每個適配器針對不同任務訓練)被合并或用于多任務學習設置時,它們之間會相互干擾,導致單個任務的性能下降或難以平衡跨任務的性能。這是因為這些適配器可能學到沖突或重疊的權重更新,當試圖將它們結合時,會導致類似“災難性遺忘”的問題。
    • 通過利用子空間的正交性最小化了適配器合并時的跨任務干擾
  • 持續學習中的挑戰 (Challenges in Continual Learning): 與干擾相關,在持續學習中(模型順序學習新任務),傳統 LoRA 適配器在引入新任務時,由于參數更新的重疊,難以保持在先前學習任務上的性能。
    • 通過稀疏性緩解災難性遺忘來支持持續學習

大量的實驗表明,LoRI 在性能上優于全量微調和其他 PEFT 方法,并且可訓練參數比 LoRA 少 95%。在多任務實驗中,LoRI 實現了有效的適配器合并和持續學習,并減少了跨任務干擾


2. LoRI 方法:它是如何工作的

在這里插入圖片描述

LoRI 通過對 A 和 B 施加特定約束來重新定義 LoRA 更新 Δ W = B A ΔW=BA ΔW=BA

2.1 核心思想:

LoRI 不像傳統 LoRA 那樣訓練矩陣 A 和 B,而是將矩陣 A 固定為隨機投影,并且只訓練稀疏矩陣 B。

2.2 LoRI 的詳細解釋:
  • 矩陣 A 的隨機投影 (Random Projection for Matrix A):
    • 機制: 對于每個 LoRA 適配器,矩陣 A ∈ R d × r A∈R^{d×r} ARd×r(其中 d d d 是基礎權重矩陣的維度, r r r 是 LoRA 秩)會隨機初始化(例如,使用標準正態分布),然后完全凍結。它在微調過程中不被訓練
    • 作用:
      • 參數減少: 通過凍結 A,可訓練參數數量立即減半,比標準 LoRA 少一半 ( d × r d×r d×r vs. 2 × d × r 2×d×r 2×d×r)。
      • 子空間正交性(對合并至關重要): 隨機投影在維度較高時,傾向于生成近似正交的子空間。這個特性是減少合并多個適配器時干擾的關鍵。如果不同任務通過隨機 A 矩陣被投影到“更不重疊”(更獨特)的子空間中,那么它們在 B 中學到的更新就不太可能相互干擾。
      • 減少過擬合: 更少的可訓練參數也有助于防止對特定任務數據過擬合。
      • 固定特征提取: A 充當一個固定的、隨機的特征提取器或降維器,將高維輸入映射到低維空間,然后由 B 在該空間進行任務特定的調整。
  • 矩陣 B 的稀疏化 (Sparsification of Matrix B):
    • 機制: 對于每個 LoRA 適配器,矩陣$ B∈R^{r×d}$ 被訓練,但會應用一個任務特定的二元掩碼 M ∈ 0 , 1 r × d M∈{0,1}r×d M0,1r×d 進行元素級操作 ( B ′ = B ⊙ M B′=B⊙M B=BM)。只有當 M i , j = 1 M_{i,j}=1 Mi,j?=1 的元素才可訓練。
    • 掩碼的確定方式:
      1. 初始化: 矩陣 B 在開始訓練時被初始化。
      2. 隨機選擇可訓練參數: LoRI 會在 B 矩陣中隨機選擇一定比例(10%)的元素作為可訓練參數,而將其余的 (90%) 元素設置為零并凍結。這個選擇過程在每個 LoRA 適配器(即每個任務)的初始化時獨立進行。
      3. 任務特定性: 因為這個隨機選擇過程是針對每個任務的 LoRI 適配器獨立進行的,所以生成的稀疏模式對于每個任務都是“特定”的。這意味著不同的任務的 LoRI 適配器所訓練的 B 矩陣的非零位置很可能是不同的,或者至少大部分不重疊。
      4. 訓練: 在訓練過程中,只有被選中的那些非零參數會根據梯度進行更新,其他參數始終保持為零。
    • 作用:
      • 進一步參數減少: 這顯著減少了矩陣 B 中可訓練參數的數量。
      • 有針對性的適應: 稀疏性允許每個任務以高度有針對性的方式適應模型,只修改 B 中特定、有限的參數集。
      • 減少干擾(持續學習): 通過確保不同任務修改 B 中大部分不重疊(或至少重疊較少)的參數集,從根本上減少了跨任務干擾。這對于持續學習特別有利,因為它直接緩解了災難性遺忘。如果一個新任務只更新 B 中一小部分不重疊的參數,它就不太可能降低先前學習任務的性能。

在這里插入圖片描述

2.3 LoRI-S (Sparsified) 與 LoRI-F (Fixed/Frozen A):

論文可能使用 “LoRI-S” 指代完整的 LoRI 方法,即同時使用隨機 A 和稀疏 B;而 “LoRI-F” 可能僅指固定 A 的方面。但核心創新是固定隨機 A 和稀疏 B 的結合。

2.4 數學公式(隱含):

針對特定任務 t t t 的更新后的權重矩陣 W t W_t Wt? 將是:

W t = W 0 + Δ W t = W 0 + ( B t ⊙ M t ) A t W_t=W_0+ΔW_t=W_0+(B_t⊙M_t)A_t Wt?=W0?+ΔWt?=W0?+(Bt?Mt?)At?

其中:

  • W 0 W_0 W0? 是預訓練的基礎模型權重矩陣(凍結)。
  • A t A_t At? 是任務特定的隨機投影矩陣(固定,凍結)。
  • B t B_t Bt? 是任務特定的可訓練矩陣。
  • M t M_t Mt? B t B_t Bt? 的任務特定二元稀疏性掩碼。

3. LoRI 合并 (LoRI Merging):減少跨任務干擾

這是論文中最重要的一項主張。

3.1 標準 LoRA 合并的問題:

當你為不同任務擁有多個 LoRA 適配器 ( B A 1 , B A 2 , … , B A N BA1,BA2,…,BAN BA1,BA2,,BAN),并且希望將它們合并到單個模型中(例如,用于多任務推理或節省內存)時,常見的合并策略包括:

  • 求和: Δ W m e r g e d = ∑ i = 1 / N B i A i ΔW_{merged}=∑i=1/N B_iA_i ΔWmerged?=i=1/NBi?Ai?
  • 線性平均:$ ΔW_{merged}=∑i=1/N α_iB_iA_i (其中 (其中 (其中 α_i$ 是權重)
  • 連接 (Concatenation): (如 Figure 7 片段所示)通常指連接輸出或更復雜的 B 矩陣合并。

問題在于,這些合并策略常常導致跨任務干擾。如果不同任務的更新 BiAi 顯著重疊或將基礎模型拉向沖突的方向,合并它們可能會降低單個任務的性能。這是因為標準 LoRA 適配器通常在參數空間中學習相似或沖突的方向。

3.2 LoRI 如何解決合并中的干擾:
  • 利用適配器子空間之間的正交性:
    • 由于 LoRI 使用了隨機初始化且固定的 A 矩陣 (At),這些矩陣將輸入空間投影到很大程度上正交或彼此高度不同的子空間中。
    • 如果 A1 和 A2 投影到大部分正交的方向上,那么它們的更新 B1A1 和 B2A2 在整個模型參數空間中也會更不重疊。
    • 直覺: 想象每個 At 就像一個“過濾器”或“投影儀”,它將原始高維信息映射到一個獨特的低維“任務視角”。如果這些“視角”本身就是獨立的,那么即使在這些“視角”上進行修改(通過 B 矩陣),它們對原始模型的影響也會保持相對獨立。
    • 效果: 減少了不同任務適配器在參數空間中“爭搶”或“覆蓋”彼此更新的可能性。當這些更新被合并時,它們能夠更和諧地共存,從而在多任務設置中保持更好的性能。
  • 稀疏性進一步強化了獨立性:
    • 除了 A 的正交性,B 的稀疏性也意味著每個任務只修改了 B 中非常有限且可能與其他任務不重疊的元素。
    • 結合 A 的正交投影和 B 的稀疏更新,LoRI 使得不同任務的更新在結構上和方向上都更加獨立,從而顯著減少了合并時的干擾。
    • 論文在實驗中探索了合并 LoRI-S 適配器的效果(使用連接和線性合并)。雖然它仍然發現“代碼任務和其他領域(如 NLU 和數學)的性能之間存在顯著的權衡”,這意味著即使是 LoRI 也不可能完全消除所有權衡,但關鍵在于 LoRI 能夠實現有效的適配器合并,并且在性能曲線上的權衡可能比傳統 LoRA 更好,因為它減少了跨任務干擾。這個“權衡”本身可能不是干擾的體現,而是多任務學習固有的挑戰,即如何平衡通用性和專業化。但 LoRI 提供了一種更好的基礎,使得這種平衡更容易實現,因為適配器本身更“干凈”和獨立。

4. LoRI 持續學習 (LoRI Continual Learning):緩解災難性遺忘

持續學習是 LoRA 和 PEFT 方法的一個重要應用場景,但傳統 LoRA 在此面臨“災難性遺忘”的問題,即學習新任務后,模型在舊任務上的性能會顯著下降。LoRI 旨在緩解這個問題。

4.1 傳統 LoRA 在持續學習中的挑戰:

當一個 LoRA 適配器為新任務訓練時,它會修改 B 和 A 矩陣。由于這些矩陣是稠密且共享的(在不同任務之間沒有明確的參數隔離),新任務的更新可能會覆蓋或改變模型中對舊任務很重要的參數空間。這導致模型“忘記”了它在舊任務上學到的知識。

4.2 LoRI 如何緩解災難性遺忘:
  • 利用任務特定的稀疏性 (Task-Specific Sparsity):
    • LoRI 的核心在于為每個任務使用一個任務特定的稀疏掩碼 Mt 來限制矩陣 Bt 的可訓練參數。這意味著,對于每個新學習的任務,LoRI 只會更新 Bt 中非常小且特定的子集。
    • 直覺: 想象每個任務都在 LoRI 適配器中擁有自己的“專屬區域”或“私人抽屜”。當學習新任務時,你只打開并修改新任務的“私人抽屜”,而不會去動舊任務的“私人抽屜”。
    • 效果: 通過確保不同任務主要修改 B 中不重疊的參數子集,LoRI 顯著減少了新任務學習時對舊任務知識的干擾。如果新任務修改的參數與舊任務修改的參數是分離的,那么舊任務的性能就不會受到影響。
  • 固定隨機投影 A 的輔助作用:
    • 雖然 B 的稀疏性是主要機制,但 A 的固定隨機投影也間接有助于此。因為 A 已經將輸入映射到相對獨立的子空間,B 在這些子空間內的稀疏更新進一步確保了不同任務的獨立性。
  • 對比:
    • 傳統 LoRA: 類似于每個新任務都在同一張紙上寫字,可能會覆蓋之前的內容。
    • LoRI: 類似于每個新任務在同一張紙上的不同預留區域寫字,或者在不同層疊的透明紙上寫字,減少了相互擦除的風險。

5. “正交”概念的理解及其在 LoRI 中的重要性

論文中反復提到“正交”或“正交性”,這在理解 LoRI 減少干擾的機制中至關重要。

5.1 什么是“正交”?(具象化理解)

在數學和幾何中,正交(Orthogonality)是“垂直”或“不相關”的推廣。

  • 二維空間: 最直觀的例子是二維平面上的兩條直線,如果它們垂直相交,我們就說它們是正交的。它們的方向完全獨立,一個方向的變化不會影響另一個方向。
  • 高維空間: 在更高維的向量空間中,如果兩個向量的點積為零,它們就是正交的。這意味著它們在空間中指向完全不同的、相互獨立的“方向”。它們之間沒有“重疊”的投影。
  • 子空間的正交: 更進一步,如果兩個子空間中的所有向量都相互正交,那么這兩個子空間就是正交的。這意味著這兩個子空間彼此完全獨立,互不影響。
5.2 為什么 LoRI 會用到正交這個點?

在 LoRI 中,正交性主要體現在隨機投影矩陣 A 的設計上,它用于減少不同任務適配器在參數更新時的相互干擾

我們知道 LoRA 的更新是 ΔW=BA。LoRI 將 A 固定為隨機矩陣。

  • 核心思想:隨機投影產生近似正交的子空間。
    • 當維度很高時(LLM 的參數空間維度非常高),隨機生成的向量或矩陣往往會近似正交。這意味著,如果我隨機生成一個矩陣 A1 和另一個矩陣 A2,它們所定義的線性變換(即它們將輸入向量投影到的子空間)在統計上傾向于彼此不重疊或正交。
    • 換句話說,A1 捕捉到的“信息維度”與 A2 捕捉到的“信息維度”是相互獨立的。
  • LoRI 如何利用這一點減少干擾:
    1. 任務分離: 假設我們有兩個任務,Task 1 和 Task 2。它們分別對應 LoRI 適配器 ΔW1=B1A1 和 ΔW2=B2A2。
    2. A 的作用: 因為 A1 和 A2 都是隨機生成并凍結的,它們會將原始的特征空間投影到兩個近似正交的低維子空間中。
    3. B 的作用: B1 和 B2 負責在各自的(近似正交的)低維子空間內進行任務特定的微調
    4. 合并時減少干擾: 當我們嘗試合并這些適配器時(例如 ΔWmerged=ΔW1+ΔW2),由于 A1 和 A2 所定義的子空間已經是近似正交的,Task 1 通過 B1A1 對模型進行的修改,與 Task 2 通過 B2A2 對模型進行的修改,它們在整個高維參數空間中是相對獨立的。一個任務的更新不太可能“覆蓋”或“抵消”另一個任務的更新。
    5. 具象化類比:
      • 傳統 LoRA: 就像兩個畫家在同一塊畫布上共同畫一幅畫,他們可能會在同一區域反復修改,導致顏色混合、線條沖突,最終效果不理想。
      • LoRI: 就像兩個畫家分別在兩塊透明且方向不同的畫布上畫畫(A 定義了畫布的方向/視角),然后將這兩塊畫布疊加起來。由于畫布本身的方向不同且獨立,他們各自在畫布上進行的修改(B)即使疊加在一起,也不會產生太多的沖突,因為它們關注的是不同的“維度”或“方面”。
5.3 正交性與稀疏性的協同作用:
  • 正交性 (A 矩陣): 提供了一個基礎,使得不同任務的更新方向在高維空間中是分離的。
  • 稀疏性 (B 矩陣): 進一步確保了每個任務的實際修改只發生在非常有限且特定的參數位置上。這就像在每個透明畫布上,只允許在非常小的、不重疊的區域進行繪畫。

正交性解決了“方向”上的干擾,而稀疏性解決了“位置”上的干擾。

總結

LoRI 論文的關鍵創新點在于:

  1. 極端參數效率: 通過固定隨機 A 和稀疏 B,顯著減少可訓練參數(比 LoRA 少 95%)。
  2. 降低跨任務干擾: 利用隨機 A 的正交性促進適配器子空間的獨立性,結合 B 的稀疏性,使得多適配器合并時性能損失更小。
  3. 緩解災難性遺忘: 任務特定的稀疏掩碼確保新任務僅修改適配器中不重疊的參數,從而在持續學習中更好地保留舊知識。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/85790.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/85790.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/85790.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Go網絡編程:基于TCP的網絡服務端與客戶端

Go 語言的 net 包為網絡編程提供了簡潔高效的接口。我們可以使用它快速構建 TCP 網絡服務,如聊天服務器、RPC、微服務通信等。 一、TCP簡介 TCP(Transmission Control Protocol)是面向連接的、可靠的傳輸協議,通信模型為客戶端-服…

【StarRocks系列】架構、核心概念

目錄 一、架構:分布式 MPP 列式存儲 向量化引擎 二、存儲:高性能列式存儲引擎 三、表設計:三類模型適配不同場景 四、數據寫入:多種方式支持實時與批量 五、數據讀取:極致優化的查詢引擎 總結:Star…

從源碼到生產:Apache 2.4.57 自動化安裝實戰指南(附腳本)

引言:為何選擇源碼安裝 Apache? 在服務器運維場景中,源碼編譯安裝 Apache HTTP Server 是實現精細化配置的重要方式。相比包管理器安裝,源碼安裝可自定義模塊組合、適配特定依賴環境,并精確控制版本。本文將通過自動化…

iOS開發中的安全實踐:如何通過Ipa混淆與加固確保應用安全

隨著移動應用技術的不斷發展,開發者越來越重視應用的安全性,尤其是iOS應用。無論是面對大規模的數據泄露問題,還是在應用上線后避免被逆向破解,開發者們都需要采取一系列技術手段來保護應用。然而,很多開發者在應用開發…

JAVA實戰開源項目:智慧生活商城系統 (Vue+SpringBoot) 附源碼

本文項目編號 T 245 ,文末自助獲取源碼 \color{red}{T245,文末自助獲取源碼} T245,文末自助獲取源碼 目錄 一、系統介紹二、數據庫設計三、配套教程3.1 啟動教程3.2 講解視頻3.3 二次開發教程 四、功能截圖五、文案資料5.1 選題背景5.2 國內…

GNU Octave 基礎教程(8):GNU Octave 常用數學函數

目錄 一、基本算術運 二、初等數學函數 三、三角函數與反三角函數 四、統計函數 五、復數與其他函數 ? 小結 🔜 下一講預告 GNU Octave 內置了大量數學函數,涵蓋初等數學、線性代數、復數運算、統計函數等,非常適合科研、工程計算使用…

Go語言中的文件與IO:JSON、CSV、XML處理

在數據交換與存儲中&#xff0c;JSON、CSV、XML 是常見格式。Go 標準庫為這些格式提供了強大且易用的支持&#xff0c;涵蓋結構體映射、讀寫文件、編碼解碼等操作。 一、JSON處理&#xff08;encoding/json&#xff09; 1. 基本使用&#xff1a;結構體 <-> JSON type U…

三種語言寫 MCP

參考 https://zhuanlan.zhihu.com/p/1915029704936760261 https://www.5ee.net/archives/tmXJAgWz https://github.com/modelcontextprotocol/python-sdk https://github.com/modelcontextprotocol/typescript-sdk https://modelcontextprotocol.io/quickstart/server https:/…

Python訓練營-Day38-Dataset和Dataloader類

在遇到大規模數據集時&#xff0c;顯存常常無法一次性存儲所有數據&#xff0c;所以需要使用分批訓練的方法。為此&#xff0c;PyTorch提供了DataLoader類&#xff0c;該類可以自動將數據集切分為多個批次batch&#xff0c;并支持多線程加載數據。此外&#xff0c;還存在Datase…

SVN上傳代碼

SVN&#xff08;Subversion&#xff09;是一個常用的版本控制系統&#xff0c;提供了對代碼管理和協作的支持。以下是SVN常見操作&#xff08;如獲取代碼、上傳代碼、合并沖突處理等&#xff09;的命令行流程及實例&#xff1a; 1. 獲取代碼&#xff08;Checkout&#xff09; 在…

【appium】2.初始連接腳本配置

連接配置 from appium import webdriver desired_caps {platformName: Android,automationName: UIAutomator2,deviceName: ZTEB880,appPackage: com.taobao.taobao,appActivity: com.taobao.tao.welcome.Welcome,noReset: True }driver webdriver.Remote(http://localhost:…

FliTik翻頁時鐘v1.1.25.36,支持安卓TV/手機/車機+windows電腦端

FliTik翻頁時鐘v1.1.25.36&#xff0c;支持安卓TV/手機/車機windows電腦端 FliTik翻頁時鐘是一款集高顏值與強大功能于一身的全平臺數字時鐘工具類應用&#xff0c;支持TV、iOS、安卓、PC以及鴻蒙系統。它不僅擁有精美的翻頁動畫…

以AI賦能創意未來:即夢3.0與Seedance1.0Lite重磅登陸POE!

近年來&#xff0c;隨著人工智能技術的不斷突破&#xff0c;AI模型的應用場景也在逐漸拓寬。在這一過程中&#xff0c;如何整合和利用現有的AI技術&#xff0c;實現更為便捷的創作服務&#xff0c;成為了許多科技企業關注的焦點。近日&#xff0c;全球知名的AI模型整合平臺POE正…

云計算與5G:如何利用5G網絡優化云平臺的性能

想象一下&#xff0c;你正在用手機看視頻、進行在線游戲&#xff0c;甚至是使用云存儲來保存你的重要文件。所有這些背后&#xff0c;其實都離不開一個無形的力量——云計算。而今天&#xff0c;5G網絡的出現&#xff0c;就像為這些云服務加裝了一對翅膀&#xff0c;讓它們飛得…

GPT-1 與 BERT 架構

GPT-1 架構特點 僅解碼器架構&#xff1a;擯棄了傳統transformer中的編碼器層&#xff0c;而是直接用解碼器和自注意力&#xff0c;同時拋棄掉了交叉多頭注意力層&#xff0c;自注意力通過mask來完成計算。注意力塊添加到12個&#xff0c;Attention的輸出維數為762維&#xff0…

Day04_C語言基礎數據結構重點復習筆記20250618

1.什么是計算機的大小端存儲&#xff1f; 答&#xff1a;大端是數據的高位字節存儲在低地址&#xff0c;低位字節存儲在高地址&#xff0c;網絡協議&#xff08;如TCP/IP&#xff09;通常采用大端序&#xff08;稱為“網絡字節序”&#xff09;。例如&#xff1a;32位整數 0x12…

基于OpenSSL實現AES-CBC 128算法的 SeedKey DLL的生成與使用

&#x1f345; 我是螞蟻小兵&#xff0c;專注于車載診斷領域&#xff0c;尤其擅長于對CANoe工具的使用&#x1f345; 尋找組織 &#xff0c;答疑解惑&#xff0c;摸魚聊天&#xff0c;博客源碼&#xff0c;點擊加入&#x1f449;【相親相愛一家人】&#x1f345; 玩轉CANoe&…

進程間通信、線程間通信

進程間通信、線程間通信 進程間通行&#xff08;Inter-Process Communication&#xff0c; IPC&#xff09;和線程間通信&#xff08;Thread Communication&#xff09;的方式不完全相同&#xff0c;因為進程和線程的運行環境和特性不同 進程和線程的本質區別 進程 進程是操…

【FPGA學習】FPGA入門學習即數字邏輯復習

前言&#xff1a;最近開始學習FPGA了&#xff0c;希望通過博客記錄下每一次學習的過程&#xff0c;與大家共勉。 目錄 一、組合邏輯電路的設計&#xff08;工程學習引入&#xff09; 二、3-8譯碼器設計、下載和功能演示&#xff08;在的8段數碼管顯示&#xff09; 2.1 Logs…

ffmpeg python rgba圖片合成 4444格式mov視頻,保留透明通道

def convert_pngs_to_mov(input_pattern, output_path, frame_rate30):"""將BGRA四通道PNG序列轉換為ProRes 4444編碼的MOV視頻&#xff08;保留透明通道&#xff09;參數:input_pattern: PNG序列路徑模式&#xff08;如&#xff1a;"/path/to/frames/fram…