DyLoRA:使用動態無搜索低秩適應的預訓練模型的參數有效微調

又一個針對LoRA的改進方法:

DyLoRA: Parameter-Efficient Tuning of Pretrained Models using Dynamic Search-Free Low Rank Adaptation

https://arxiv.org/pdf/2210.07558v2.pdf

https://github.com/huawei-noah/KD-NLP/tree/main/DyLoRA

Part1前言

LoRA存在的問題

  • rank的值是固定的,訓練完成後不能修改。
  • 優化rank的值需要大量的搜索和努力。

提出的方法:引入了一種動態低秩適應(Dy-LoRA)技術。通過對適配器模塊在訓練期間的不同秩所學到的表示進行排序,爲一系列的秩而不是單一的秩訓練LoRA塊。

主要貢獻

  • 動態LoRA:在LoRA的基礎上,我們開發了一種新的算法(DyLoRA),使其在推理時是動態的,而不會產生額外的費用。
  • 無需搜索的LoRA:我們證明,通過在性能上做出可忽略不計的妥協,有可能避免爲LoRA選擇最佳秩的昂貴的搜索過程。

Part2介紹

在每一個LoRA模塊中,有一個向上投影和向下投影的矩陣。設我們想訓練LoRA模塊在的範圍內操作,其中可以被視爲新的超參數。爲了使LoRA模塊在一系列的秩中工作,而不是單一的秩,我們需要確保增加或減少秩不會明顯阻礙模型的性能。實現這種行爲的一種方法是在LoRA模塊的訓練過程中對不同秩的信息內容進行排序。在這方面,在每個訓練步驟中,我們對進行抽樣。形成一個預先定義的分類分佈其(支持度爲Range[rmin, rmax]),並相應地截斷矩陣。

是W的b截斷版本。

前向傳播計算時是這麼計算的:

損失的計算:

另外在訓練的時候增加了一個新的模塊:frozen,即只更新截斷塊中第b個相關的行或者列。

整個流程如下:

需要注意反向傳播時是否是更新整個截斷塊還是第b個行或列。

Part3實驗結果

首先是說明不同rank對結果的影響:

接着是該方法和其他方法的對比:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章