![]()
在特定任務(wù)上微調(diào)大語言模型需要更新數(shù)十億個(gè)參數(shù),跨越萬億個(gè)Token,這帶來了巨大的GPU資源和時(shí)間成本。
低秩自適應(yīng)(LoRA)是一種更高效的替代方案,它凍結(jié)原始模型權(quán)重,但在特定模型子層或"模塊"中引入輕量級矩陣。這些矩陣(通常稱為"適配器")修改模塊權(quán)重,不僅實(shí)現(xiàn)了高效微調(diào),還支持按需模型服務(wù),大幅降低推理成本;支持跨GPU共享基礎(chǔ)模型,減少內(nèi)存需求;降低下載開銷;以及支持多個(gè)適配器的并行推理。
關(guān)鍵問題在于在模型中何處插入這些適配器。從經(jīng)驗(yàn)上看,針對更多更大的模塊往往能提升性能,因?yàn)檫@允許更多的定制化靈活性;但也會增加訓(xùn)練和推理成本。使用精心選擇的較小子集可以在顯著提高效率的同時(shí)保持大部分收益。
使用亞馬遜的Nova 2.0 Lite多模態(tài)推理大語言模型作為基礎(chǔ)模型,我們設(shè)定了一個(gè)目標(biāo):識別一套在絕大多數(shù)客戶用例中有效工作的標(biāo)準(zhǔn)化目標(biāo)模塊配置子集。通過消融研究,我們確定了一個(gè)名為o_proj的模塊,作為添加適配器時(shí)在效率和準(zhǔn)確性之間實(shí)現(xiàn)最佳平衡的單一模塊(o_proj是一個(gè)線性變換,它將注意力頭的表示混合成一個(gè)單一、連貫的形式,供模型的其余部分理解)。
Transformer架構(gòu)解析
Transformer模型——負(fù)責(zé)AI所有顯著進(jìn)展的模型——主要由多次重復(fù)的塊組成。每個(gè)塊又有兩個(gè)主要組件:注意力機(jī)制,它確定先前看到的Token對當(dāng)前處理Token的相關(guān)性;以及前饋網(wǎng)絡(luò),一個(gè)對注意力機(jī)制輸出進(jìn)行額外處理的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)。
注意力機(jī)制涉及三個(gè)不同的矩陣,它們的名稱來自數(shù)據(jù)庫設(shè)計(jì):查詢矩陣表示當(dāng)前Token與輸入序列中其他Token的相關(guān)性;鍵矩陣表示其他Token彼此之間的相關(guān)性;值矩陣表示這些其他Token的原始內(nèi)容。將三個(gè)矩陣相乘基本上創(chuàng)建了Transformer下一個(gè)輸出的配方。
為了減少計(jì)算復(fù)雜性,這些乘法在降維空間中進(jìn)行。矩陣本身及其乘法結(jié)果然后必須投影回輸入的原始維度。
LoRA使用兩個(gè)較小矩陣的乘積來近似權(quán)重更新,大幅減少了可訓(xùn)練參數(shù)的數(shù)量。該技術(shù)通常應(yīng)用于注意力投影層和前饋網(wǎng)絡(luò)層。這些模塊是理想的候選者,因?yàn)樗鼈儤?gòu)成了Transformer參數(shù)的大部分,直接管理表示學(xué)習(xí),并與低秩近似自然對齊。經(jīng)驗(yàn)證據(jù)表明,這些層中的權(quán)重變化在微調(diào)過程中通常位于低維子空間內(nèi)。
目標(biāo)模塊選擇策略
選擇正確的目標(biāo)模塊直接影響準(zhǔn)確性、延遲和計(jì)算效率。目標(biāo)模塊的最優(yōu)選擇主要是以下因素的函數(shù):(a)被微調(diào)的基礎(chǔ)模型(即其架構(gòu)、預(yù)訓(xùn)練和后訓(xùn)練數(shù)據(jù)分布等)和(b)定制化領(lǐng)域/模態(tài)。
在微調(diào)Nova 2.0 Lite時(shí),我們平衡了兩個(gè)相互競爭的目標(biāo):在多樣化任務(wù)和模態(tài)中最大化準(zhǔn)確性;最小化延遲以保持LoRA的效率優(yōu)勢。
我們研究了LoRA在每個(gè)Transformer塊中四個(gè)不同模塊的應(yīng)用:查詢、鍵和值投影層(qkv);o_proj層;以及前饋網(wǎng)絡(luò)中的兩個(gè)不同全連接層gate_up_proj和gate_down_proj(稱為fc1和fc2)。以下是基于文獻(xiàn)發(fā)表結(jié)果和經(jīng)驗(yàn)研究,這些模塊單獨(dú)和組合使用的權(quán)衡:
qkv單獨(dú)使用:準(zhǔn)確性良好(基線),延遲最低,適用于資源受限環(huán)境;o_proj單獨(dú)使用:準(zhǔn)確性中等,延遲最低,適用于超低延遲場景;qkv + o_proj:準(zhǔn)確性高,延遲低到中等,適用于注意力聚焦任務(wù);qkv + fc1/fc2:準(zhǔn)確性非常高,延遲中等,適用于復(fù)雜生成任務(wù);qkv + o_proj + fc1/fc2:準(zhǔn)確性最高,延遲高,適用于關(guān)鍵任務(wù)的最大準(zhǔn)確性。
實(shí)驗(yàn)設(shè)計(jì)與結(jié)果
我們進(jìn)行了全面的消融研究,在涵蓋文本和視覺數(shù)據(jù)的七個(gè)數(shù)據(jù)集上訓(xùn)練多個(gè)監(jiān)督微調(diào)LoRA變體,跨越推理和非推理任務(wù)。數(shù)據(jù)集涵蓋了從簡單問答到長上下文摘要和結(jié)構(gòu)化JSON提取的多樣化挑戰(zhàn)。
實(shí)驗(yàn)數(shù)據(jù)集包括:FinCOT(金融推理)、GovReport(政府文檔摘要)、MedMCQA(醫(yī)學(xué)多選題)、MedReason(醫(yī)學(xué)推理)、CoCoHD(政治文檔復(fù)雜基準(zhǔn))、Llava-COT(多模態(tài)圖像理解)、Invoice OCR(發(fā)票光學(xué)字符識別)。
所有實(shí)驗(yàn)都使用Nova 2.0 Lite通用可用性檢查點(diǎn),在目標(biāo)模塊間使用一致的超參數(shù),包括學(xué)習(xí)率比例和alpha值。
核心發(fā)現(xiàn)
通過詳細(xì)的實(shí)驗(yàn)分析,我們得出了幾個(gè)重要發(fā)現(xiàn):
o_proj是最穩(wěn)健的單一目標(biāo)。o_proj單獨(dú)配置表現(xiàn)出了卓越的一致性,在任何任務(wù)上都從未完全失敗,通常在最佳配置(即使用所有目標(biāo)模塊)的幾個(gè)百分點(diǎn)內(nèi)表現(xiàn)。在MedMCQA、CoCoHD、GovReport、LLaVA-CoT和Invoice OCR上,o_proj單獨(dú)配置要么匹配要么非常接近最優(yōu)性能,使其成為平衡性能和簡單性的有吸引力的默認(rèn)選擇。
qkv單獨(dú)顯示不穩(wěn)定性。雖然qkv單獨(dú)在MedMCQA上表現(xiàn)良好,但它表現(xiàn)出極端的可變性,在CoCoHD上表現(xiàn)低于基線,在其他地方顯示平庸的結(jié)果。這與假設(shè)一致,即僅注意力LoRA可能在需要來自前饋網(wǎng)絡(luò)的更豐富特征的任務(wù)上欠擬合。
模塊組合提供適度收益。像o_proj + fc2或"所有目標(biāo)模塊"這樣的組合通常實(shí)現(xiàn)了最高的每數(shù)據(jù)集分?jǐn)?shù)。然而,相比最佳單一模塊的改進(jìn)通常是適度的,通常為1-3個(gè)百分點(diǎn)。
任務(wù)難度放大配置影響。在基礎(chǔ)模型表現(xiàn)不佳的挑戰(zhàn)性基準(zhǔn)上,目標(biāo)模塊的選擇產(chǎn)生了更大的影響。例如,在CoCoHD(長上下文、復(fù)雜JSON生成)上,o_proj + fc2相比基礎(chǔ)模型實(shí)現(xiàn)了+15%的絕對改進(jìn),而o_proj單獨(dú)只有+3%。
推薦配置
基于我們的研究結(jié)果,我們提出以下推薦:
對于優(yōu)先考慮準(zhǔn)確性的場景,我們推薦o_proj + fc2作為文本和多模態(tài)任務(wù)的最優(yōu)配置,在各基準(zhǔn)上相比o_proj單獨(dú)顯示2-12%的改進(jìn)。
對于平衡效率和性能,o_proj單獨(dú)提供了優(yōu)秀的默認(rèn)選擇,以最小的延遲開銷提供穩(wěn)健的性能——在服務(wù)多個(gè)適配器或在資源約束下操作時(shí)特別有價(jià)值。
對于挑戰(zhàn)性任務(wù),如長上下文或復(fù)雜生成要求的基準(zhǔn)或基礎(chǔ)模型困難的其他任務(wù),o_proj + fc2的額外準(zhǔn)確性證明了適度的延遲增加是合理的。
我們的綜合研究表明,在LoRA微調(diào)中經(jīng)過深思熟慮的目標(biāo)模塊選擇可以在保持LoRA對生產(chǎn)部署有吸引力的效率優(yōu)勢的同時(shí)提高準(zhǔn)確性。o_proj層作為一個(gè)非常穩(wěn)健的單一目標(biāo)出現(xiàn),而o_proj + fc2組合為挑戰(zhàn)性任務(wù)提供了最佳準(zhǔn)確性。平均而言,o_proj LoRA在準(zhǔn)確性方面與o_proj + fc2相差2%以內(nèi),但延遲降低了22.6%。這些發(fā)現(xiàn)為跨多樣化客戶用例標(biāo)準(zhǔn)化LoRA配置提供了原則性基礎(chǔ),平衡了模型性能和計(jì)算效率的競爭需求。
Q&A
Q1:LoRA是什么?為什么要使用LoRA進(jìn)行大語言模型微調(diào)?
A:LoRA(低秩自適應(yīng))是一種高效的模型微調(diào)技術(shù),它凍結(jié)原始模型權(quán)重,在特定模塊中引入輕量級矩陣(適配器)來修改權(quán)重。相比傳統(tǒng)微調(diào)需要更新數(shù)十億參數(shù),LoRA大幅減少了可訓(xùn)練參數(shù)數(shù)量,降低GPU資源和時(shí)間成本,同時(shí)支持按需模型服務(wù)、跨GPU共享基礎(chǔ)模型,并實(shí)現(xiàn)多個(gè)適配器的并行推理。
Q2:o_proj模塊為什么在LoRA微調(diào)中表現(xiàn)最好?
A:o_proj是一個(gè)線性變換模塊,將注意力頭的表示混合成連貫形式供模型理解。研究發(fā)現(xiàn)o_proj在所有測試任務(wù)中表現(xiàn)出卓越的一致性,從未完全失敗,通常在最佳配置的幾個(gè)百分點(diǎn)內(nèi)表現(xiàn)。有證據(jù)表明該模塊在推理中發(fā)揮關(guān)鍵作用,這可能解釋了它的有效性。作為單一目標(biāo),它提供了性能和簡單性的最佳平衡。
Q3:在什么情況下應(yīng)該選擇o_proj + fc2組合而不是單獨(dú)使用o_proj?
A:當(dāng)任務(wù)對準(zhǔn)確性要求較高,特別是在長上下文、復(fù)雜生成要求或基礎(chǔ)模型表現(xiàn)困難的挑戰(zhàn)性任務(wù)中,應(yīng)選擇o_proj + fc2組合。雖然這種組合比單獨(dú)使用o_proj延遲增加約22.6%,但在各基準(zhǔn)測試中可提供2-12%的準(zhǔn)確性改進(jìn)。對于平衡效率和性能的常規(guī)場景,o_proj單獨(dú)使用仍是最佳選擇。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.