你的LoRA需要更新了!科大訊飛等提出MiLoRA:新穎且高效的LoRA變體

論文鏈接:https://arxiv.org/pdf/2410.18035
低秩適應(yīng)(LoRA)及其專(zhuān)家混合(MOE)變體是非常有效的參數(shù)高效微調(diào)(PEFT)方法。然而,由于在Transformer層中添加了LoRA模塊和MOE routers,這些方法在多租戶(hù)環(huán)境中引入了顯著的延遲。為了解決這個(gè)問(wèn)題,本文提出了低秩適應(yīng)的混合(MiLoRA),一種新穎且高效的LoRA變體。MiLoRA與之前的MOE風(fēng)格LoRA方法不同之處在于將每個(gè)LoRA模塊視為一個(gè)專(zhuān)家,并采用了一種基于提示的router機(jī)制。該機(jī)制在生成第一個(gè)新標(biāo)記之前計(jì)算專(zhuān)家路由結(jié)果,并將這些結(jié)果用于后續(xù)標(biāo)記,從而減少延遲。在常識(shí)推理任務(wù)、數(shù)學(xué)推理任務(wù)和廣泛使用的LLM評(píng)估基準(zhǔn)上進(jìn)行的廣泛實(shí)驗(yàn)和分析表明,MiLoRA始終優(yōu)于具有可比可調(diào)參數(shù)預(yù)算的強(qiáng)大PEFT基線。此外,與之前基于LoRA的方法相比,MiLoRA在多租戶(hù)環(huán)境中顯著減少了延遲。
亮點(diǎn)直擊
- 提出了一種新穎的LoRA變體,MiLoRA,它以高效的方式將MOE機(jī)制與LoRA結(jié)合起來(lái)。
- 在MiLoRA中,將每個(gè)LoRA模塊視為一個(gè)專(zhuān)家。
- 提出了一種基于提示的路由機(jī)制,以避免 token-wise 的計(jì)算。
- 進(jìn)行了廣泛的實(shí)驗(yàn)和分析,結(jié)果表明MiLoRA框架在實(shí)際應(yīng)用中優(yōu)于基線模型,并在可比的參數(shù)預(yù)算下表現(xiàn)更佳;在大語(yǔ)言模型推理過(guò)程中高效。
總結(jié)速覽
解決的問(wèn)題
- 多租戶(hù)環(huán)境中的延遲:在Transformer層中添加LoRA模塊和MOE router導(dǎo)致顯著的延遲,影響性能。
- 參數(shù)高效微調(diào)(PEFT)方法的局限性:現(xiàn)有的LoRA和MOE變體在多租戶(hù)設(shè)置中效率不高。
提出的方案
- MiLoRA框架:一種新穎且高效的LoRA變體,將MOE機(jī)制與LoRA結(jié)合。
- 基于提示的router機(jī)制:在生成第一個(gè)新標(biāo)記之前計(jì)算專(zhuān)家結(jié)果,避免逐個(gè)token的router計(jì)算。
應(yīng)用的技術(shù)
- 低秩適應(yīng)(LoRA):用于有效的參數(shù)微調(diào)。
- 專(zhuān)家混合(MOE):通過(guò)將每個(gè)LoRA模塊視為一個(gè)專(zhuān)家,優(yōu)化模型選擇。
- 提示機(jī)制:用于高效計(jì)算和。
達(dá)到的效果
- 性能提升:在常識(shí)推理、數(shù)學(xué)推理任務(wù)和LLM評(píng)估基準(zhǔn)上,MiLoRA優(yōu)于強(qiáng)大的PEFT基線。
- 顯著減少延遲:MiLoRA在多租戶(hù)環(huán)境中表現(xiàn)出更高的效率,相較于傳統(tǒng)LoRA方法降低了延遲。
- 可比的參數(shù)預(yù)算下的優(yōu)越表現(xiàn):在相同的參數(shù)預(yù)算下,MiLoRA框架在實(shí)際應(yīng)用中表現(xiàn)更佳。
方法
本節(jié)首先介紹LoRA和MoE的基礎(chǔ)概念,然后詳細(xì)闡述MiLoRA的架構(gòu)設(shè)計(jì)。
初步



動(dòng)機(jī)
正如下表4所示,現(xiàn)有的MOE風(fēng)格LoRA研究在推理過(guò)程中顯著減慢了LLM骨干網(wǎng)絡(luò)的速度,使每秒處理的tokens(tps)減少約20%。這些研究中,每個(gè)LoRA模塊被分解為多個(gè)專(zhuān)家,并且需要調(diào)用一個(gè)routers來(lái)確定哪些專(zhuān)家被激活。在生成每個(gè)token時(shí),每層的多個(gè)LoRA模塊和多個(gè) router的計(jì)算被執(zhí)行,導(dǎo)致的延遲不可忽視。為了提高這種MOE LoRA方法的效率,需要研究以下研究問(wèn)題:

RQ1. 能否將LoRA模塊視為一個(gè)專(zhuān)家,使得每個(gè)Transformer層只有一個(gè)LoRA router,并且每層只激活一個(gè)這樣的專(zhuān)家?
RQ2. LoRA router能否在輸入提示時(shí)僅調(diào)用一次?
即時(shí)感知的 LoRA router
為了調(diào)查RQ1和RQ2,現(xiàn)在嘗試提出MiLoRA方法的細(xì)節(jié)。MiLoRA的核心是提示感知路由機(jī)制。在該機(jī)制下,LoRA router將輸入提示的隱藏狀態(tài)作為輸入,并輸出當(dāng)前層的激活LoRA專(zhuān)家。與之前的工作不同,本文的工作:(a)僅在輸入提示首次通過(guò)Transformer骨干網(wǎng)絡(luò)并在生成第一個(gè)新標(biāo)記之前計(jì)算LoRA router一次。 router的激活決策將在后續(xù)生成步驟中重復(fù)使用。(b)在Transformer的層級(jí)上確定激活的LoRA專(zhuān)家,選擇哪個(gè)Transformer模塊由其對(duì)應(yīng)的LoRA模塊進(jìn)行修改。



可學(xué)習(xí)激活函數(shù)

實(shí)驗(yàn)
數(shù)據(jù)集和評(píng)估指標(biāo)
將本文的方法與基線進(jìn)行比較,涉及一系列具有挑戰(zhàn)性的任務(wù):(a)五個(gè)基準(zhǔn)常識(shí)問(wèn)答任務(wù),ARC-e 和 ARC-c,OBQA,PIQA,BoolQ。 (b)兩個(gè)數(shù)學(xué)推理任務(wù),AQuA和 GSM8k。利用 Hu et al.(2023)提供的鏈?zhǔn)剿季S(COT)推理來(lái)訓(xùn)練這些數(shù)學(xué)任務(wù)的樣本。所有推理都是通過(guò)zero-shot CoT在 GPT-3.5 上生成的,但沒(méi)有經(jīng)過(guò)任何錯(cuò)誤過(guò)濾。 (c)MT-Bench,MMLU,和 BBH。由于這些任務(wù)不提供訓(xùn)練數(shù)據(jù),利用 Alpaca數(shù)據(jù)集進(jìn)行指令調(diào)優(yōu)。詳細(xì)的統(tǒng)計(jì)數(shù)據(jù)和評(píng)估指標(biāo)可以在附錄 B 中找到。
基線
將 MiLoRA 框架與當(dāng)前的 SOTA PEFT 基線方法進(jìn)行比較。
LoRA 及其變體: 考慮以下 LoRA 變體作為基線:(a)原始 LoRA;(b)AdaLoRA,它在不同的 Transformer 模塊之間自適應(yīng)調(diào)整 LoRA 參數(shù);(c)MOELoRA,它將每個(gè) LoRA 模塊視為單秩 LoRA 專(zhuān)家的混合;(d)DoRA,這是 LoRA 的最新變體之一,它將預(yù)訓(xùn)練權(quán)重分解為兩個(gè)組件:幅度和方向,用于微調(diào),特別采用 LoRA 進(jìn)行方向更新。
其他 PEFT 方法: 我們還考慮了最新的 PEFT 方法:(a)He et al.(2021)提出的 Parallel-Adapter;(b)Learned-Adapter;(c)P-tuning v2;(d)IAPT;(e)BitFit;(f)(IA)3,它將可學(xué)習(xí)向量乘到 Transformer 層中不同模塊的隱藏狀態(tài)上。
(g) SSP,這是一個(gè)結(jié)合不同PEFT方法的代表性工作,包括LoRA和BitFit。基線使用他們的開(kāi)源代碼進(jìn)行實(shí)現(xiàn)。我們僅調(diào)整與可調(diào)參數(shù)數(shù)量相關(guān)的超參數(shù),以公平比較基線方法和我們的MiLoRA方法。
實(shí)驗(yàn)設(shè)置
計(jì)算基礎(chǔ)設(shè)施 在NVIDIA A40(48GB)GPU上運(yùn)行所有實(shí)驗(yàn)。
預(yù)訓(xùn)練骨干模型 主要實(shí)驗(yàn)使用最新開(kāi)源的LLM,LlaMA-2 7B作為預(yù)訓(xùn)練骨干模型。在消融研究中,我們還將使用最近發(fā)布的LlaMA-2 13B和Gemma 2B。
預(yù)測(cè)頭 在微調(diào)LlaMA-2 7B時(shí),我們僅考慮監(jiān)督微調(diào)(SFT)設(shè)置。在接收到提示或指令后,所有預(yù)測(cè)均使用語(yǔ)言建模頭(LM head)生成。沒(méi)有安裝額外的預(yù)測(cè)頭來(lái)進(jìn)行分類(lèi)或數(shù)值預(yù)測(cè)。在推理期間的解碼中,我們使用束搜索,束大小為3。

可重復(fù)性 在五個(gè)不同的隨機(jī)種子下運(yùn)行每個(gè)任務(wù),并報(bào)告每個(gè)任務(wù)在測(cè)試集上的中位性能。
主要結(jié)果
單任務(wù)設(shè)置。在這個(gè)設(shè)置中,我們通過(guò)采用這些方法對(duì)單個(gè)任務(wù)進(jìn)行微調(diào),將MiLoRA與基線PEFT方法進(jìn)行比較。五個(gè)常識(shí)推理任務(wù)和兩個(gè)數(shù)學(xué)推理任務(wù)的實(shí)驗(yàn)結(jié)果見(jiàn)下表1。我們?cè)诘诙兄姓故玖丝烧{(diào)參數(shù)的數(shù)量,在第三列中展示了平均激活參數(shù)。表1顯示,我們的MiLoRA方法在所有七個(gè)任務(wù)中均優(yōu)于基線方法,具有可比的可調(diào)參數(shù)和更少的激活參數(shù)。特別是,MiLoRA在可比參數(shù)下超越了之前的SOTA LoRA風(fēng)格基線,如AdaLoRA、DoRA和MOELoRA。這些結(jié)果表明,我們的方法在大語(yǔ)言模型的下游任務(wù)適應(yīng)方面表現(xiàn)良好。

多任務(wù)設(shè)置。下表2展示了在多任務(wù)學(xué)習(xí)中,使用LLaMA2-7B的LoRA、DoRA、MOELORA和MiLoRA的結(jié)果。與表1中的單任務(wù)設(shè)置相比,在多任務(wù)學(xué)習(xí)期間,我們混合了來(lái)自ARC、BoolQ、OBQA和PIQA的訓(xùn)練數(shù)據(jù)來(lái)訓(xùn)練模型,然后進(jìn)行單獨(dú)評(píng)估以調(diào)查每種方法的泛化能力。結(jié)果表明:(a) 與單任務(wù)學(xué)習(xí)相比,LoRA和DoRA在多任務(wù)學(xué)習(xí)中平均準(zhǔn)確率有所下降(LoRA:-2.0%,DoRA:-2.25%)。與此同時(shí),MOELORA和MiLoRA幾乎保持相同的平均準(zhǔn)確率。MiLoRA在平均得分方面幾乎沒(méi)有性能損失。

通用指令調(diào)優(yōu)的結(jié)果。在使用我們的MiLoRA方法或MOELoRA方法對(duì)LLaMA-2 7B模型進(jìn)行在Alpaca 數(shù)據(jù)集上的微調(diào)后,我們利用了具有挑戰(zhàn)性的基準(zhǔn)測(cè)試,如MT-Bench、MMLU和BBH進(jìn)行評(píng)估。我們報(bào)告了在MT-Bench上的平均GPT-4得分(gpt4-score)。下表3展示了結(jié)果。與之前的實(shí)驗(yàn)(表1和表2)一致,我們的MiLoRA方法在這三個(gè)基準(zhǔn)測(cè)試中優(yōu)于MOELoRA方法,證明了MiLoRA在提升大語(yǔ)言模型指令調(diào)優(yōu)質(zhì)量方面的優(yōu)越性。

消融研究與進(jìn)一步分析
推理效率分析
為了展示MiLoRA方法的推理效率,現(xiàn)在比較MiLoRA、DoRA和MOELoRA在不同beam size下進(jìn)行beam search時(shí)的GPU內(nèi)存和解碼速度。在這個(gè)實(shí)驗(yàn)中,LoRA參數(shù)沒(méi)有合并到主干中,以模擬單一大語(yǔ)言模型的多租戶(hù)設(shè)置。我們提供了兩個(gè)用于衡量效率的指標(biāo):(a) 峰值內(nèi)存成本(以MiB為單位)。(b) 每秒生成的tokens數(shù)量(tps)。結(jié)果如表4所示。

從表4可以看出,在beam size為1和3的情況下,MiLoRA方法的內(nèi)存成本與MOELoRA和DoRA相當(dāng)。然而,其在tps方面的生成速度顯著更高。對(duì)于beam size為1,MiLoRA比MOELoRA快21.7%,比DoRA快19.7%。
在beam size為3的情況下,MiLoRA比MOELoRA快17.9%,比DoRA快13.2%。MiLoRA的速度優(yōu)勢(shì)來(lái)自以下因素:(a) 我們的方法僅在輸入提示首次經(jīng)過(guò)大語(yǔ)言模型(LLM)并在生成第一個(gè)新token之前的每個(gè)Transformer層調(diào)用LoRA router。相比之下,MOELoRA和幾乎所有現(xiàn)有的基于MOE的LoRA變體在生成每個(gè)新token時(shí)需要在每層調(diào)用多個(gè) router。(b) 我們的方法顯著減少了在每個(gè)解碼步驟中激活的LoRA模塊數(shù)量,使得生成新token更加高效。
激活的LoRA專(zhuān)家的分布
我們現(xiàn)在比較MT-Bench、BoolQ和PIQA任務(wù)中所有Transformer層上的LoRA專(zhuān)家分布,如圖2所示。我們可以觀察到:(a) 不同的Transformer層通過(guò)其對(duì)應(yīng)的 router選擇激活不同的LoRA專(zhuān)家,且單個(gè)LoRA專(zhuān)家的最大比例不到30%。結(jié)果是直觀的,因?yàn)椴煌疃鹊腡ransformer層表示不同的知識(shí),需要不同的LoRA專(zhuān)家來(lái)表達(dá)。(b) 不同任務(wù)上的LoRA分布是不同的。例如,在MT-Bench和BoolQ任務(wù)中,少數(shù)層激活LoRA Q或LoRA K,而在PIQA任務(wù)中,這兩個(gè)LoRA專(zhuān)家被頻繁選擇。

MiLoRA框架的消融研究
我們現(xiàn)在考慮以下MiLoRA的變體:(a) MiLoRA-1將自注意力池化替換為平均池化。(b) MiLoRA-2將自注意力池化替換為最后一個(gè)token池化。(c) MiLoRA-3為L(zhǎng)oRA router使用GeLU激活函數(shù)。(d) MiLoRA-4在前16層的LoRA router中使用ReLU,在更深的16層中使用GeLU。(e) MiLoRA-5在前16層的LoRA router中使用GeLU,在更深的16層中使用ReLU。BoolQ、PIQA和MMLU任務(wù)的實(shí)驗(yàn)結(jié)果如表5所示。

結(jié)果顯示,MiLoRA在默認(rèn)設(shè)置下(如表1所示)優(yōu)于五個(gè)變體。此外,(a) 將MiLoRA-1和MiLoRA-2與MiLoRA進(jìn)行比較表明,自注意力池化器提供了高質(zhì)量的信息聚合,從而實(shí)現(xiàn)了正確的LoRA專(zhuān)家選擇。(b) 將MiLoRA-5與MiLoRA-3和MiLoRA-4進(jìn)行比較表明,為不同層的 router使用不同的激活函數(shù)可以提升性能。(c) 然而,MiLoRA優(yōu)于MiLoRA-3、MiLoRA-4和MiLoRA-5,表明可學(xué)習(xí)的激活函數(shù)可以為每個(gè)LoRA router適配適當(dāng)?shù)募せ詈瘮?shù),并增強(qiáng)下游適應(yīng)能力。






關(guān)于預(yù)訓(xùn)練骨干網(wǎng)絡(luò)的消融實(shí)驗(yàn)
我們的主要實(shí)驗(yàn)是在LlaMA-2 7B模型上進(jìn)行的。為了展示我們方法的廣泛適用性,現(xiàn)在在LlaMA-2 13B和Gemma 2B上進(jìn)行實(shí)驗(yàn)。結(jié)果在附錄E的表7中報(bào)告可以看到,我們的MiLoRA方法在這兩個(gè)骨干網(wǎng)絡(luò)上也能優(yōu)于基線方法。
結(jié)論
這項(xiàng)工作介紹了LoRA混合(MiLoRA)方法,一種用于大語(yǔ)言模型參數(shù)高效微調(diào)的新方法。與以前關(guān)于MOE風(fēng)格LoRA方法的文獻(xiàn)不同,MiLoRA:(a)在Transformer層級(jí)激活LoRA專(zhuān)家,決定激活哪個(gè)Transformer模塊的LoRA。(b)激活哪個(gè)LoRA專(zhuān)家的決策依賴(lài)于輸入提示。(c)對(duì)于給定的提示,LoRA router只調(diào)用一次。后續(xù)的tokens生成步驟重用 router的決策。為了提高我們框架的下游性能,建議在微調(diào)期間為不同深度的LoRA router學(xué)習(xí)不同的激活函數(shù)。我們的方法易于實(shí)現(xiàn)且現(xiàn)成可用。在各種任務(wù)上的實(shí)驗(yàn)表明,MiLoRA方法在推理效率的同時(shí)優(yōu)于基線方法。
限制本文證明了提出的方法可以提高參數(shù)高效微調(diào)在多種任務(wù)和不同預(yù)訓(xùn)練模型(如LlaMA-2 7B、LlaMA-2 13B、Gemma 2B)上的性能。然而,我們也承認(rèn)以下局限性:(a)由于計(jì)算資源有限,我們沒(méi)有對(duì)更大規(guī)模的開(kāi)源大語(yǔ)言模型(如LlaMA-2 70B)進(jìn)行實(shí)驗(yàn)。(b)自然語(yǔ)言處理中的其他任務(wù),如信息抽取,也未被考慮。不過(guò),我們的框架可以輕松轉(zhuǎn)移到其他主干架構(gòu)和不同類(lèi)型的任務(wù)上。研究我們的方法是否在其他大規(guī)模主干模型和其他類(lèi)型的任務(wù)上仍然具有優(yōu)越性將會(huì)很有趣。將在未來(lái)的工作中探索這一點(diǎn)。
本文轉(zhuǎn)自AI生成未來(lái) ,作者:AI生成未來(lái)

















