又一個針對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的值是固定的,訓(xùn)練完成后不能修改。 優(yōu)化rank的值需要大量的搜索和努力。
提出的方法:引入了一種動態(tài)低秩適應(yīng)(Dy-LoRA)技術(shù)。通過對適配器模塊在訓(xùn)練期間的不同秩所學(xué)到的表示進行排序,為一系列的秩而不是單一的秩訓(xùn)練LoRA塊。
主要貢獻:
動態(tài)LoRA:在LoRA的基礎(chǔ)上,我們開發(fā)了一種新的算法(DyLoRA),使其在推理時是動態(tài)的,而不會產(chǎn)生額外的費用。 無需搜索的LoRA:我們證明,通過在性能上做出可忽略不計的妥協(xié),有可能避免為LoRA選擇最佳秩的昂貴的搜索過程。
Part2介紹
在每一個LoRA模塊中,有一個向上投影和向下投影的矩陣。設(shè)我們想訓(xùn)練LoRA模塊在的范圍內(nèi)操作,其中和可以被視為新的超參數(shù)。為了使LoRA模塊在一系列的秩中工作,而不是單一的秩,我們需要確保增加或減少秩不會明顯阻礙模型的性能。實現(xiàn)這種行為的一種方法是在LoRA模塊的訓(xùn)練過程中對不同秩的信息內(nèi)容進行排序。在這方面,在每個訓(xùn)練步驟中,我們對進行抽樣。形成一個預(yù)先定義的分類分布其(支持度為Range[rmin, rmax]),并相應(yīng)地截斷和矩陣。
和 是W的b截斷版本。
前向傳播計算時是這么計算的:
損失的計算:
另外在訓(xùn)練的時候增加了一個新的模塊:frozen,即只更新截斷塊中第b個相關(guān)的行或者列。
整個流程如下:
需要注意反向傳播時是否是更新整個截斷塊還是第b個行或列。
Part3實驗結(jié)果
首先是說明不同rank對結(jié)果的影響:文章來源:http://www.zghlxwxcb.cn/news/detail-419419.html
接著是該方法和其他方法的對比:文章來源地址http://www.zghlxwxcb.cn/news/detail-419419.html
到了這里,關(guān)于DyLoRA:使用動態(tài)無搜索低秩適應(yīng)的預(yù)訓(xùn)練模型的參數(shù)有效微調(diào)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!