
本文作者來自復旦大學、上海交通大學和上海人工智能實驗室。一作江書洋為復旦大學和實驗室聯(lián)培的博二學生,目前是實驗室見習研究員,師從上海交通大學人工智能學院王鈺教授。本文通訊作者為王鈺教授與張婭教授。
低秩適配器(LoRA)能夠在有監(jiān)督微調(diào)中以約 5% 的可訓練參數(shù)實現(xiàn)全參數(shù)微調(diào) 90% 性能。然而,在 LoRA 訓練中,可學習參數(shù)不僅注入了知識,也學習到了數(shù)據(jù)集中的幻覺噪聲。因為這種特性的存在,大多數(shù)的 LoRA 參數(shù)都將可學習秩設置為一個較小的值(8 或者 16),通過減小知識學習程度來避免幻覺,而這也限制了 LoRA 的性能上限

圖 1 普通的 LoRA 微調(diào)隨著秩的增大性能無法同步增加,而參數(shù)冗余微調(diào)能夠以冗余參數(shù)提升性能。
為了解決這個問題,上海交通大學人工智能學院、復旦大學和上海人工智能實驗室的團隊提出了參數(shù)冗余微調(diào)范式以及一種創(chuàng)新性的微調(diào)算法:NoRM(Noisy Reduction with Reserved Majority)。參數(shù)冗余微調(diào)范式下,可以以普通的 LoRA 訓練方式進行訓練,并使用特定的方法在將 LoRA 參數(shù)合并回基模型參數(shù)前將冗余部分去除。NoRM 通過 SVD 將 LoRA 參數(shù)分解為主成分和冗余成分,并提出了 Sim-Search 方法,以子空間相似度動態(tài)決定主成分的數(shù)量。評估結果顯示,NoRM 在指令微調(diào)、數(shù)學推理和代碼生成的任務上一致性強于 LoRA 和其他參數(shù)冗余微調(diào)方法,實現(xiàn)無痛漲點。

- 論文鏈接:https://openreview.net/pdf?id=ZV7CLf0RHK
- 開源代碼:https://github.com/pixas/NoRM
- 論文標題:FINE-TUNING WITH RESERVED MAJORITY FOR NOISE REDUCTION
研究動機
研究者首先在 Llama3-8B-Instruct 上進行預備實驗,使用 MetaMathQA-395K 數(shù)據(jù)集對模型進行微調(diào),并在 SVAMP 上進行測試。研究者通過三個方面探究微調(diào)過程中的冗余現(xiàn)象:(1)隨機刪除 10%~90% 的 LoRA 參數(shù)通道;(2)使用(1)中的方法,對 Transformer 中的不同層的 LoRA 參數(shù)進行隨機刪除;(3)使用(1)的方法,對 Transformer 中的不同模塊的 LoRA 參數(shù)進行隨機刪除。實驗結果發(fā)現(xiàn),不僅隨機刪除 LoRA 參數(shù)能夠提升下游模型的性能,不同層之間和模塊之間刪除 LoRA 參數(shù)對性能的影響呈現(xiàn)一定的規(guī)律。

圖 2 隨機刪除比例(a)的性能變化曲線和模型層索引(b)以及模塊(c)上的性能分布。對達成最好性能的保留比例用深藍色重點展示。
方法概述
在 LoRA 微調(diào)中,并不是直接更新參數(shù),而是更新一個低秩表達:。這個表達假設了參數(shù)的更新過程中,只在秩以內(nèi)進行變化。在參數(shù)冗余微調(diào)中,為了高效減小參數(shù)冗余度,并能夠根據(jù)不同模塊和層之間的冗余不同去設計算法,研究者們首先考慮直接使用奇異值分解(SVD)對參數(shù)更新部分進行分解:
其中為左右奇異矩陣,是包含了奇異值的對角矩陣。一種樸素的思想是保留最大的個奇異值和響應的奇異向量:
然而,通過這種方法只能得到整體的更新參數(shù),無法得到兩個 LoRA 參數(shù)分別去除冗余后的分量。為了能夠獲得一個在預處理和參數(shù)存儲上都更加高效的算法,研究者轉(zhuǎn)向使用隨機 SVD 來分別近似 和。特別地,隨機 SVD 以高斯分布初始化一個隨機矩陣:

圖 3 NoRM 的算法總覽。其使用隨機奇異值分解來提取 delta 參數(shù)的主成分,并使用(b)Sim-Search 基于裁剪后的 delta 權重和預訓練權重間的子空間相似度決定擁有最小幻覺成分的 c 個通道。
接著,計算的主要列子空間:來近似特征空間。在此之后,通過對的QR分解得到的正交基的近似?;诖苏换梢栽诘牡途S空間上得到delta權重的投影:
那么在這個小矩陣上執(zhí)行標準SVD就可以得到:
其中,然后將轉(zhuǎn)化回去來近似奇異向量:?;谏鲜鲇嬎懔浚梢灾貥嫿铺幚砗蟮牡椭葏?shù):
確定好整個計算流程后,研究者們通過一種Sim-Search的方法來確定要保留的分量。這種方法通過預先設置好的兩個搜索超參數(shù),搜索步數(shù)和搜索步長,得到一組不同下的低秩分量,以及所對應的delta權重。研究者對每一個delta權重使用SVD計算主要的個奇異矩陣:
并使用同樣的公式對基模型的權重進行同樣的分解得到。通過提取個和的左奇異向量來計算子空間相似度:
其中
?;谟嬎愫玫腉rassmann距離,可以選擇這一組中擁有最大Grassmann距離的值及對應的delta權重和:
實驗結論
NoRM 通過在三種不同的基模型以及三個不同的微調(diào)任務上進行實驗,展現(xiàn)出強大的性能。
實驗 1:指令微調(diào)實驗
該任務主要測試,對 Instruct 模型進行微調(diào)后,如何保證多任務間的泛化性。通過和不同的 PEFT 基線進行比較,NoRM 在所有基模型上相比于最好的 PEFT 方法有著約 5 個點的提升。和之前最強的冗余微調(diào)方法 TAIA 相比,也有著 1~3 個點的提升,展現(xiàn)了 NoRM 強大的冗余去除能力。

實驗 2:專域微調(diào)實驗
該任務主要測試通過 NoRM 去除了冗余成分后,是否會對下游知識的學習造成影響。該實驗選擇 Llama3-8B 作為基模型,在數(shù)學推理和代碼生成上進行測試。實驗結果表明,由于 NoRM 可以使用更大的秩進行微調(diào),在下游知識的吸收上,也優(yōu)于之前的 PEFT 方法約 4 個點,領先 TAIA 約 3 個點。

實驗 3:可學習參數(shù)對 NoRM 的影響
NoRM 通過對可微調(diào)參數(shù)中的冗余部分進行自適應去除降低微調(diào)幻覺。本實驗中,通過改變秩的大小,NoRM 的性能隨著可微調(diào)參數(shù)的增加而增加,而 LoRA 的性能并沒有這樣的趨勢,這也映證了微調(diào)參數(shù)中存在大量冗余,這也是 LoRA 無法使用大秩提升性能的原因之一。

圖 4 NoRM 可以從大秩中受益,但基礎的 LoRA 在秩增大后反而降低性能。
實驗 4:NoRM 的學忘比
通過對 LoRA 和 NoRM 在記住預訓練知識的能力上進行比較,可以證實 NoRM 的設計哲學在于盡可能保留下游語料中和預訓練參數(shù)中重疊最大的部分。通過測試在 WikiText-103 測試集上的損失函數(shù)值,可以看到 NoRM 的損失降低,而 LoRA 相比于基模型都有著一定程度上的升高。

結論和展望
這篇工作發(fā)現(xiàn)了有趣的高效參數(shù)冗余現(xiàn)象,并提出了 NoRM 算法來智能識別并保留最有價值的參數(shù),同時去除有著負面作用的冗余參數(shù),給微調(diào)參數(shù)做了一次 “減重手術”。在目前強化學習微調(diào)盛行的當下,可以將 NoRM 的設計哲學遷移到強化學習中,通過去除數(shù)據(jù)中會帶來噪聲的成分,提升模型下游任務的適配性和多任務之間的泛化性。
熱門跟貼