比LoRA更高效!上交大&哈佛推出新微調框架,瞄準特定任務方向
比LoRA更高效的模型微調方法來了——
以常識推理為例,在參數量減少8~16倍的情況下,兩種方法能達到相同效果。
新方法名叫LoRA-Dash,由來自上海交通大學和哈佛大學的研究人員提出,主要針對特定任務微調模型往往需要大量計算資源這一痛點。
研究完成的主要工作是:
對高效微調過程中的TSD(Task-specific Directions, 特定任務方向)進行了嚴格定義,并詳細分析了其性質。
為了進一步釋放TSD在下游任務中的潛力,提出新的高效微調方法LoRA-Dash。
來看具體內容。
從頭搭建特定任務方向的框架
隨著大型語言模型的發展,針對特定任務微調模型往往需要大量計算資源。
為了解決這一問題,參數高效微調(PEFT)策略應運而生,像LoRA等方法被廣泛應用。
在LoRA中,作者們通過一系列實驗發現,LoRA本質上是捕捉一些預訓練中已學習到的但并不重要的方向,這些方向對應的特征在之后的下游任務中被LoRA放大。
LoRA把這些方向定義為“特定任務方向”(Task-specific Directions, TSD)。
然而,在LoRA原論文關于TSD的敘述中卻出現了一些矛盾和沖突。
比如作者認為TSD是???的最大的幾個奇異值對應的奇異向量。
然而這些從???中得到的奇異向量基本不可能和??的奇異向量一致。
這些沖突導致研究者們對TSD的概念很模糊,更別說利用這些方向。
為了解決這些問題,論文作者對高效微調過程中的TSD進行了嚴格的定義,并詳細分析了其性質。
TSD的定義
首先,定義矩陣的基、矩陣的方向如下。
定義1:對于一個矩陣?? ,其左奇異向量和右奇異向量分別由矩陣??和??表示,矩陣??的基定義如下。
核心基:矩陣??的核心基定義為,其中每個
是由奇異向量????和????構成的秩為1的矩陣。
全局基:矩陣??的全局基定義為 ,對于所有??, ??,涵蓋了左奇異向量和右奇異向量的所有組合。
定義2:矩陣?? ∈ ???x??(其中 ?? < ??)的方向基于其全局基定義,采用其奇異值∑的擴展集合,并用零填充。
具體表示為(??1,0,…,0,??2,0,…,0,??n,…,0)∈ ???x??,即通過行展平的∑。
研究人員提醒道,任何全局基都可以視為一個單位方向,因為它的方向是一個one-hot的向量。
至于特定任務方向,作者們基于以下前提進行研究:
對于任何特定任務,矩陣空間???x??中存在一個最優矩陣??。
對于預訓練權重矩陣??,其針對該任務的最佳調整為???=??-??。
在PEFT中,研究人員只能獲得??及其方向的信息。
由于???和??*的方向基于各自的基,他們首先將二者投影到??的全局基上。
定義3:定義 ????·(·)為將一個坐標系中的方向投影到另一個坐標系中的投影算子。
特別地,??????(??)=(??11,…,??????)∈ ?????是將矩陣?? ∈ ???x?? 的方向投影到矩陣?? ∈ ???x??的全局基上。
基于矩陣??的全局基,??????(??*)表示??需要演變的方向。
由于??最多只能利用??個核心基,它只能改變其方向的??個值。
因此,重點關注核心方向的變化。
變換過程中,不同核心方向的坐標值變化程度不同,受下游任務的多樣性影響,某些核心方向可能變化顯著,而其他方向變化較小。
定義的變化率????衡量了第??個核心方向的變化程度:
因此,研究人員定義TSD為:
對于某個特定任務和預訓練權重矩陣??,假設該任務的最優權重為??,則該任務在??上的TSD是指那些在從??到??的變化過程中,其坐標值表現出顯著高變化率??的核心方向。
TSD的性質及使用難點
作者通過一系列實驗,得出了TSD的兩個性質:
- TSD主要對應于??較小但非最小的奇異值相關的核心方向。
- TSD僅涵蓋少數方向,這些方向在從??到??*的轉變過程中具有顯著的變化率,而其他大多數核心方向的變化率則較小或可以忽略不計。
盡管TSD的定義和性質已被充分探討,但由于在微調之前???和??都是未知的,因此在實際操作中事先利用TSD信息幾乎不可能。
為解決這一挑戰,作者假設LoRA的???預測出的高變化率核心方向與TSD密切相關。
通過廣泛實驗,結果顯示預測方向與實際TSD之間存在高度重疊,由此得出一個重要結論:
無論LoRA的秩設置、訓練步驟或模型層次如何,LoRA的???一致地捕捉到了任務特定方向的信息。
這表明,即便在未知TSD的情況下,仍能通過LoRA訓練中獲得的???捕捉到這些關鍵信息。
釋放TSD潛力:LoRA-Dash
為了進一步釋放TSD在下游任務中的潛力,研究人員提出了一個新的高效微調方法LoRA-Dash。
LoRA-Dash包含兩個主要階段:
第一是“預啟動階段”。在此階段,任務特定方向被識別。這是模型優化的關鍵部分,確保識別出最需要調整的方向。
具體而言,這一階段中LoRA-Dash利用在t次更新之后得到的???進行TSD的預測,確定下一階段需要被調整的方向。
第二是“沖刺階段”。在這一階段,模型利用之前識別的TSD的潛力,進行微調優化,使預訓練模型更好地適應特定任務。
具體而言,作者直接模擬TSD的坐標變化,加速模型的適應性調整,從而提升其在新任務中的表現。
LoRA-Dash的偽代碼如圖。
實驗
作者們分別在常識推理(commonsense reasoning)、自然語言理解(natural language understanding)和主體驅動生成(subject-driven generation)任務上做了實驗。
實驗結果表明,LoRA-Dash在各個任務上都取得了遠超LoRA的性能提升。
常識推理(使用LLAMA-7B,LLAMA2-7B以及LLAMA3-8B進行微調):
自然語言理解(使用DeBERTaV3-base和DeBERTaV3-large進行微調):
主體驅動生成(使用SDXL進行微調)。與LoRA相比,LoRA-Dash和原圖的一致性更高,比如圖中的狗和花瓶。
實驗結果證明了TSD對于下游任務的有效性,LoRA-Dash能夠充分釋放TSD的潛能,進一步激發高效微調的性能水平。
目前相關論文已公開,代碼也已開源。
論文:https://arxiv.org/pdf/2409.01035
代碼:https://github.com/Chongjie-Si/Subspace-Tuning
項目主頁:https://chongjiesi.site/project/2024-lora-dash.html