本發(fā)明屬于計(jì)算機(jī)視覺,更為具體地講,涉及一種基于奇異值的預(yù)訓(xùn)練視覺模型參數(shù)微調(diào)方法。
背景技術(shù):
1、隨著大型預(yù)訓(xùn)練視覺模型的發(fā)展,其復(fù)雜性和計(jì)算需求使得將具有數(shù)十億參數(shù)的模型適應(yīng)特定的下游任務(wù)變得愈發(fā)具有挑戰(zhàn)性。近年來,參數(shù)高效微調(diào)方法因能夠在保持高效性和準(zhǔn)確性的同時(shí),將所需參數(shù)和內(nèi)存需求降至最低,從而在性能上接近完全微調(diào)而備受關(guān)注。典型的參數(shù)高效微調(diào)方法lora(low-rank?adaptation,低秩適應(yīng))通過在微調(diào)期間引入兩個(gè)低秩矩陣來近似權(quán)重更新,將增量更新無縫集成到預(yù)訓(xùn)練權(quán)重中,而不會(huì)顯著增加推理時(shí)的延遲。在lora的基礎(chǔ)上,現(xiàn)有的參數(shù)高效微調(diào)方法主要分為兩類。第一類方法修改參數(shù)更新策略,如凍結(jié)lora中的部分低秩矩陣,或僅傳播低秩矩陣乘積的增量部分至預(yù)訓(xùn)練權(quán)重,從而在不增加計(jì)算開銷的情況下大幅減少可訓(xùn)練參數(shù)和激活內(nèi)存成本。第二類方法則對(duì)lora的秩進(jìn)行自適應(yīng)調(diào)整,利用奇異值分解對(duì)增量更新進(jìn)行參數(shù)化,并在訓(xùn)練過程中基于各模塊的重要性評(píng)分自適應(yīng)調(diào)整可訓(xùn)練參數(shù),或通過近端梯度法的門控控制稀疏性,以擴(kuò)大優(yōu)化空間并提升參數(shù)效率。
2、雖然lora和后續(xù)方法一定程序上提升了計(jì)算效率,但是現(xiàn)有的參數(shù)微調(diào)方法仍然存在一些問題:
3、1)現(xiàn)有的參數(shù)微調(diào)方法通常對(duì)低秩矩陣采用隨機(jī)初始化,這可能導(dǎo)致預(yù)訓(xùn)練權(quán)重矩陣的主要成分在微調(diào)初期無法得到有效更新,進(jìn)而導(dǎo)致梯度下降效率低下,并因次優(yōu)起點(diǎn)而降低模型的泛化能力。
4、2)現(xiàn)有方法通常專注于更新有限的參數(shù)子集,既可能是現(xiàn)有模型參數(shù)的一部分,也可能是一組全新的參數(shù),主要目的是在保留預(yù)訓(xùn)練大模型中已有知識(shí)的同時(shí),使其適應(yīng)特定任務(wù),從而最大限度地減少災(zāi)難性遺忘的風(fēng)險(xiǎn)。然而,這些方法的可訓(xùn)練參數(shù)仍有壓縮空間,還需要進(jìn)一步改進(jìn)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于奇異值的預(yù)訓(xùn)練視覺模型參數(shù)微調(diào)方法,采用奇異值分解來初始化低秩矩陣,在保留預(yù)訓(xùn)練信息的同時(shí),增強(qiáng)下游任務(wù)對(duì)新領(lǐng)域知識(shí)的學(xué)習(xí),在顯著減少可訓(xùn)練參數(shù)數(shù)量的同時(shí),有效保留了模型的知識(shí)和適應(yīng)性,提高模型微調(diào)效果。
2、為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明基于奇異值的預(yù)訓(xùn)練視覺模型參數(shù)微調(diào)方法包括以下步驟:
3、s1:根據(jù)實(shí)際需要獲取針對(duì)參數(shù)微調(diào)的訓(xùn)練樣本集,每個(gè)訓(xùn)練樣本包括圖像樣本和標(biāo)簽;
4、s2:對(duì)于預(yù)訓(xùn)練的視覺模型,根據(jù)實(shí)際需要從視覺模型中選擇需要進(jìn)行參數(shù)微調(diào)的層級(jí),記待微調(diào)層的權(quán)重矩陣為其中k=1,2,…,k,k表示待微調(diào)層的數(shù)量,mk×nk表示待微調(diào)層的權(quán)重矩陣尺寸;
5、s3:分別對(duì)每個(gè)待微調(diào)層的權(quán)重矩陣wk進(jìn)行奇異值分解,得到分解結(jié)果:
6、
7、其中,分別表示正交矩陣,對(duì)角矩陣和正交矩陣,上標(biāo)t表示轉(zhuǎn)置;
8、記奇異值分解得到的奇異值數(shù)量rk=min(mk,nk),將rk個(gè)奇異值進(jìn)行降序排列,將前r個(gè)奇異值構(gòu)成奇異值向量σk,r=[λk,1,λk,2,…,λk,r],r的值根據(jù)實(shí)際需要設(shè)置,同時(shí)得到殘差奇異值向量記正交矩陣uk中第i個(gè)特征向量為uk,i,i=1,2,…,mk,記正交矩陣vk中第j個(gè)特征向量為vk,j,j=1,2,…,nk;基于奇異值分解結(jié)果得到最佳秩-r近似矩陣wk,r和殘差矩陣wk,e:
9、
10、其中,
11、uk,r=[uk,1,uk,2,…,uk,r]
12、vk,r=[vk,1,vk,2,…,vk,r]
13、
14、uk,r、vk,r分別表示正交矩陣uk、vk中奇異值向量對(duì)應(yīng)的子矩陣,uk,e、vk,r分別表示正交矩陣uk、vk中除子矩陣uk,r、vk,r以外的剩余子矩陣;diag()表示生成對(duì)角矩陣,[,]表示矩陣拼接;
15、s4:將待微調(diào)層的權(quán)重矩陣中的uk,r、vk,r、uk,e、σk,e、vk,e以及視覺模型中其他層的參數(shù)全部?jī)鼋Y(jié),將σk,r作為可訓(xùn)練參數(shù);
16、s5:將訓(xùn)練樣本集中的圖像樣本輸入視覺模型,計(jì)算損失函數(shù)并對(duì)每個(gè)待微調(diào)層的可訓(xùn)練參數(shù)σk,r進(jìn)行更新,得到更新后的可訓(xùn)練參數(shù)σ′k,r;
17、s6:根據(jù)更新后的可訓(xùn)練參數(shù)σ′k,r計(jì)算得到每個(gè)待微調(diào)層更新后的模型參數(shù)wk′:
18、
19、s7:判斷是否達(dá)到微調(diào)結(jié)束條件,如果未達(dá)到,進(jìn)入步驟s8,否則微調(diào)結(jié)束;
20、s8:令權(quán)重矩陣wk=wk′,可訓(xùn)練參數(shù)σk,r=σ′k,r,返回步驟s5。
21、本發(fā)明基于奇異值的預(yù)訓(xùn)練視覺模型參數(shù)微調(diào)方法,對(duì)于預(yù)訓(xùn)練的視覺模型,根據(jù)實(shí)際需要從視覺模型中選擇需要進(jìn)行參數(shù)微調(diào)的層級(jí),分別對(duì)每個(gè)待微調(diào)層的權(quán)重矩陣進(jìn)行奇異值分解,得到用于重構(gòu)權(quán)重矩陣的最佳秩-r近似矩陣和殘差矩陣,將前r個(gè)奇異值構(gòu)成奇異值向量作為可訓(xùn)練參數(shù),其他模型參數(shù)均進(jìn)行凍結(jié),將訓(xùn)練樣本集中的圖像樣本輸入視覺模型對(duì)可訓(xùn)練參數(shù)進(jìn)行更新,采用更新后的可訓(xùn)練參數(shù)重構(gòu)得到權(quán)重矩陣。
22、本發(fā)明具有以下有益效果:
23、1)本發(fā)明通過使用奇異值分解得到的關(guān)鍵奇異值作為可訓(xùn)練參數(shù),用以縮放矩陣的基本子空間,從而促進(jìn)模型的快速域適應(yīng);
24、2)與其他lora變體相比,本發(fā)明獨(dú)特地采用svd初始化中最關(guān)鍵的奇異值作為可訓(xùn)練參數(shù),從而在保留預(yù)訓(xùn)練信息的同時(shí),更有效地為下游任務(wù)學(xué)習(xí)新領(lǐng)域的知識(shí);
25、3)本發(fā)明在訓(xùn)練完成后,可訓(xùn)練參數(shù)后可以無縫集成到原始矩陣中,因此本發(fā)明在顯著減少可訓(xùn)練參數(shù)數(shù)量的同時(shí),不會(huì)在推理過程中引入額外的計(jì)算開銷或延遲。
1.一種基于奇異值的預(yù)訓(xùn)練視覺模型參數(shù)微調(diào)方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的預(yù)訓(xùn)練視覺模型參數(shù)微調(diào)方法,其特征在于,所述步驟s3中秩r的取值范圍為[0.01nk,0.1nk]。