將混合專家推向極限:只需更新0.32%的參數(shù)就能完成模型微調(diào)
眾所周知,大模型的訓(xùn)練成本很高,但其實(shí)對(duì)預(yù)訓(xùn)練后的模型進(jìn)行微調(diào)也需要一定的成本,還好我們已經(jīng)有了 (IA)3 或 LORA 等一些參數(shù)高效型微調(diào)(PEFT)方法。
近日,AI 創(chuàng)業(yè)公司 Cohere 更進(jìn)一步,將混合專家方法與 PEFT 組合,實(shí)現(xiàn)了極其參數(shù)高效的微調(diào) —— 即使是在未曾見(jiàn)過(guò)的任務(wù)上,這種新方法只需更新不到 1% 的參數(shù),就能實(shí)現(xiàn)與完全微調(diào)方法相當(dāng)?shù)男阅堋?/span>
Cohere 公司在攻克這些挑戰(zhàn)上邁出了重要一步,提出了一個(gè)新框架 —— 可在大幅受限的計(jì)算環(huán)境中利用 MoE 的優(yōu)勢(shì)。
- 論文鏈接:https://arxiv.org/abs/2309.05444
- 代碼鏈接:https://github.com/for-ai/parameter-efficient-moe
傳統(tǒng)的訓(xùn)練范式是將模型的權(quán)重應(yīng)用于每個(gè)輸入。有理由相信這種方法效率不高,因?yàn)閱蝹€(gè)輸入可能無(wú)法讓模型發(fā)揮全部力量。
相比之下,混合專家(MoE/Mixture of Experts)則是基于多個(gè)子模塊組件(即所謂的專家),這些組件可以專門處理不同類型的輸入。這種對(duì)于條件計(jì)算的強(qiáng)調(diào)對(duì)效率具有重要的影響,比如會(huì)有恒定的推理成本。這使得 MoE 成了大規(guī)模 Transformer 時(shí)代一個(gè)重要的研究領(lǐng)域并得到了廣泛的采用;而在這些應(yīng)用中,規(guī)模的擴(kuò)張也會(huì)造成部署成本和延遲上升。
盡管截至目前的大部分研究關(guān)注的是將 MoE 用作一種預(yù)訓(xùn)練策略,但 MoE 的內(nèi)在動(dòng)機(jī)并不僅局限于預(yù)訓(xùn)練。事實(shí)上,MoE 具有一些非常適合指令微調(diào)的特性;在指令微調(diào)設(shè)置中,數(shù)據(jù)會(huì)被刻意地構(gòu)建,以代表多樣化的任務(wù),這通常也被稱為多任務(wù)微調(diào)。
基于這一觀察,AI 創(chuàng)業(yè)公司 Cohere 提出了一個(gè)問(wèn)題:能否使用 MoE 來(lái)進(jìn)行指令微調(diào)?MoE 范式的一大主要缺點(diǎn)是會(huì)引入大量參數(shù)。盡管是基于條件執(zhí)行計(jì)算,但完全微調(diào) MoE 架構(gòu)需要更新所有參數(shù),這需要非常大量的計(jì)算。對(duì)于大多數(shù)實(shí)踐者來(lái)說(shuō),考慮到現(xiàn)代 LLM 的規(guī)模,這樣的計(jì)算成本是無(wú)力支撐的。
于是,Cohere 公司關(guān)注的是更為現(xiàn)實(shí)的實(shí)踐場(chǎng)景,即將 MoE 用于參數(shù)高效型微調(diào)(PEFT)方法,如 (IA)3 或 LORA,它們微調(diào)的參數(shù)數(shù)量會(huì)少很多。這是一個(gè)重大挑戰(zhàn),不僅因?yàn)槟繕?biāo)是僅更新所有參數(shù)的一小部分,而且因?yàn)檫€要在更受限的環(huán)境中解決 MoE 固有的優(yōu)化挑戰(zhàn)。
他們引入了 Mixture of Vectors(MoV)和 Mixture of LORA(MoLORA),一種參數(shù)高效型混合專家適應(yīng)方法。不同于標(biāo)準(zhǔn)的 MoE,這種新框架很輕量,可用于對(duì)參數(shù)有限制的場(chǎng)景。
值得注意的是,在未曾見(jiàn)過(guò)的任務(wù)上,這種新方法只需更新不到 1% 的參數(shù),就能實(shí)現(xiàn)與完全微調(diào)方法相當(dāng)?shù)男阅堋F浔憩F(xiàn)也能輕松勝過(guò) (IA)3 或 LORA 等基礎(chǔ)的參數(shù)高效型技術(shù)。
該團(tuán)隊(duì)基于 55 個(gè)數(shù)據(jù)集,在 12 個(gè)不同任務(wù)上,用 770M 到 11B 的不同大小 T5 模型進(jìn)行了實(shí)驗(yàn),得到了相當(dāng)一致的結(jié)果。
本文的主要貢獻(xiàn)包括:
1. 提出了極其參數(shù)高效的 MoE。該架構(gòu)利用了模塊化和輕量級(jí)的專家,可在更加現(xiàn)實(shí)的設(shè)置中使用 MoE。使用這個(gè)新提出的 MoE 來(lái)訓(xùn)練一個(gè)密集模型時(shí),僅需更新其不到 1% 的參數(shù)。
2. 使用新提出的方法執(zhí)行指令微調(diào)時(shí),在未曾見(jiàn)過(guò)的任務(wù)上能取得持續(xù)優(yōu)于傳統(tǒng)參數(shù)高效方法的性能,同時(shí)還能為不同大小的模型維持較高的參數(shù)效率。相較于 3B 和 11B 模型大小的標(biāo)準(zhǔn) (IA)3,混合 (IA)3 向量(MoV)分別實(shí)現(xiàn)了 14.57% 和 8.39% 的提升。這種優(yōu)越性在各種大小的模型、各種類型的專家和可訓(xùn)練參數(shù)負(fù)載上都有體現(xiàn)。
3. 研究表明新提出的方法能取得與大規(guī)模完全微調(diào)方法相當(dāng)?shù)男阅鼙憩F(xiàn),同時(shí)只需更新一小部分模型參數(shù)。研究者在 8 個(gè)未曾見(jiàn)過(guò)的任務(wù)上進(jìn)行了實(shí)驗(yàn),結(jié)果表明 MoV 僅會(huì)分別更新 3B 和 11B 模型中 0.32% 和 0.86% 的參數(shù),卻能以顯著更低的計(jì)算成本實(shí)現(xiàn)與完全微調(diào)方法相當(dāng)?shù)谋憩F(xiàn)。
4. 他們也進(jìn)行了一系列廣泛的消融研究,系統(tǒng)性地評(píng)估了各種 MoE 架構(gòu)和 PEFT 策略的效能,涉及多種模型大小、不同的適應(yīng)器類型、專家的數(shù)量、路由機(jī)制和優(yōu)化超參數(shù)的重要性,尤其是考慮到 MoE 的敏感性。
方法
指令微調(diào)可以形式化地表述為:存在一個(gè)任務(wù)集合 T,將其分為訓(xùn)練任務(wù)集 T_train 和留存評(píng)估集 T_eval。
首先在 T_train 上對(duì)基礎(chǔ)預(yù)訓(xùn)練模型進(jìn)行微調(diào),然后使用零樣本方式在 T_eval 中的每個(gè)任務(wù)上評(píng)估微調(diào)后的模型。標(biāo)準(zhǔn)的微調(diào)方法是微調(diào)所有模型參數(shù),這樣會(huì)有很高的計(jì)算和內(nèi)存成本。新提出的方法卻有很高的參數(shù)效率,其使用了參數(shù)高效型混合專家,下面詳細(xì)描述一下該框架。
(IA)3 和 LORA 參數(shù)高效型微調(diào)方法
參數(shù)高效型微調(diào)(PEFT)方法只會(huì)更新少量參數(shù)的權(quán)重。為了展示新方法適用于不同的 PEFT 技術(shù),研究者實(shí)驗(yàn)了 (IA)3 和 LORA。這些方法會(huì)向已有的預(yù)訓(xùn)練模型模型添加少量參數(shù)。這里就不對(duì) (IA)3 和 LORA 做更詳細(xì)的介紹了,感興趣的讀者可參閱原論文以及機(jī)器之心的報(bào)道《調(diào)教 LLaMA 類模型沒(méi)那么難,LoRA 將模型微調(diào)縮減到幾小時(shí)》。
極其參數(shù)高效的混合專家
新提出的極其參數(shù)高效的 MoE 框架使用了輕量級(jí)的「適應(yīng)器」作為預(yù)訓(xùn)練密集模型之上的專家。
具體來(lái)說(shuō),MoE 是一系列神經(jīng)網(wǎng)絡(luò)架構(gòu),可以通過(guò)基于門控機(jī)制(路由器)激活的多個(gè)專家來(lái)進(jìn)行條件計(jì)算。MoE 層由一個(gè)路由器網(wǎng)絡(luò) R 和一個(gè)專家集合 E 構(gòu)成,其中 E 包含 n 個(gè)專家,每個(gè)專家 E_i 都是一個(gè)已參數(shù)化的函數(shù)。至于路由器網(wǎng)絡(luò) R 的設(shè)計(jì),該團(tuán)隊(duì)參照了論文《Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity》,通常由一個(gè)密集層后帶一個(gè) softmax 函數(shù)構(gòu)成;其中這個(gè)密集層有可訓(xùn)練的權(quán)重 W_g,softmax 函數(shù)則是以中間 token 表征 x 為輸入并基于門控分?jǐn)?shù) s_1, ..., s_n 將每個(gè)專家的輸出組合到一起:
對(duì)于 Transformer 模型,其中的密集型前向?qū)颖?MoE 層取代,該層中每個(gè)專家 E_i 都對(duì)應(yīng)于一個(gè)獨(dú)立的密集型前向網(wǎng)絡(luò)。隨著每個(gè)專家的規(guī)模和專家數(shù)量的增加,模型的參數(shù)總數(shù)會(huì)成倍增大。但是,在新提出的參數(shù)高效型 MoE 架構(gòu)中,每一個(gè)專家都被一個(gè)輕量級(jí) PEFT 適應(yīng)器(比如 (IA)3 向量或 LORA 適應(yīng)器)替代。
在微調(diào)過(guò)程中,密集層的預(yù)訓(xùn)練權(quán)重保持固定,而專家層和路由器層則從頭開始訓(xùn)練。不同于標(biāo)準(zhǔn) MoE,這種新提出的輕量級(jí)專家可以在微調(diào)時(shí)間學(xué)習(xí)適應(yīng)預(yù)訓(xùn)練 Transformer 層。這樣一來(lái),新的 MoE 框架只需要少量參數(shù)更新,而不是整體對(duì)大模型進(jìn)行更新。
除了參數(shù)效率之外,研究者選擇的 PEFT 適應(yīng)器可通過(guò) soft merging 實(shí)現(xiàn)路由計(jì)算。具體來(lái)說(shuō),由于 (IA)3 向量和 LORA 適應(yīng)器都是線性函數(shù),所以他們首先會(huì)計(jì)算專家的加權(quán)平均,然后使用組合后的專家 E_mix 應(yīng)用一個(gè) PEFT 變換:
對(duì)于把 (IA)3 向量或 LORA 適應(yīng)器分別用作專家的方法,研究者將它們分別命名為 Mixture of Vectors (MoV) 和 Mixture of LORA (MoLORA),這兩種方法都能持續(xù)穩(wěn)定地優(yōu)于對(duì)應(yīng)的 PEFT 方法。下圖 2 展示了 MoV 層的架構(gòu)以及相應(yīng)的偽代碼。
通過(guò) MoV 和 MoLORA 只更新少部分參數(shù)有一些實(shí)際的好處 —— 不僅有益于訓(xùn)練,也有助于推理;對(duì)于后者的優(yōu)勢(shì)是 MoE 架構(gòu)所獨(dú)有的。下面簡(jiǎn)要描述一些這些好處:
訓(xùn)練效率
這種極其參數(shù)高效的 MoE 形式可以顯著減少內(nèi)存消耗。通過(guò)在訓(xùn)練期間凍結(jié)大多數(shù)參數(shù),不僅能減少計(jì)算模型參數(shù)的梯度的計(jì)算開銷,而且還可降低存儲(chǔ)模型的優(yōu)化器狀態(tài)的內(nèi)存需求。根據(jù)優(yōu)化器的選擇,后者可能非常重要,舉個(gè)例子,AdamW 等 Adam 優(yōu)化器變體為了存儲(chǔ)優(yōu)化器狀態(tài),每個(gè)參數(shù)需要兩倍的內(nèi)存(根據(jù)一階矩和二階矩的估計(jì)),而 Adafactor 則能通過(guò)分解二階參數(shù)矩的估計(jì)來(lái)將這種開銷減半。
推理效率
MoV 和 MoLORA 方法的固有結(jié)構(gòu)模塊化特性能為推理帶來(lái)顯著的內(nèi)存效益。對(duì)于傳統(tǒng)的 MoE 模型,很多完全用于前向的塊的副本(甚至基于特定架構(gòu)的模型的完整副本)需要在推理時(shí)間被存儲(chǔ)在內(nèi)存中,這種做法的成本很高。
使用這種方法,不管確切的類型如何,都只需要將模型主干的一個(gè)副本保存在內(nèi)存中,外加上輕量級(jí)參數(shù)高效型專家。這能在推理時(shí)間顯著降低對(duì)內(nèi)存的需求。
實(shí)驗(yàn)
參數(shù)高效型 MoE 與 PEFT 方法:新的 MoE 方法與單專家型 PEFT 方法相比如何?下表 1 比較了 PEFT 方法((IA)3 和 LORA)與新提出的參數(shù)高效型 MoE 方法(MoV 和 MoLORA)的零樣本性能,其中基礎(chǔ)模型是 T5-3B。
可以觀察到,相比于標(biāo)準(zhǔn)的 (IA)3 向量和 LORA 適應(yīng)器,MoE 變體(MoV 和 MoLORA)的性能有顯著優(yōu)勢(shì)。
比如,使用 30 個(gè)專家的 MoV 的表現(xiàn)優(yōu)于密集型 (IA)3 方法 14.57%,使用 15 個(gè)專家的 MoLORA 則在平均中值分?jǐn)?shù)上提升了 5.70%。
在同樣的參數(shù)負(fù)載下,MoV 的表現(xiàn)勝過(guò) MoLORA。研究者也比較了新提出的兩種方法:使用 3B 參數(shù)的基礎(chǔ)模型時(shí),MoV 在性能與參數(shù)成本的權(quán)衡方面表現(xiàn)更好。
參數(shù)高效型 MoE 與完全微調(diào)方法的對(duì)比。如表 1 所示,與完全微調(diào)的 T0-3B 相比,使用 10 個(gè)專家的 MoV 和 MoLORA 的性能相當(dāng)。這是一個(gè)非常亮眼的結(jié)果,因?yàn)?MoV-10 僅更新了全體模型參數(shù)中的 0.32%。而如果將 MoV 的專家數(shù)增至 15,將 MoLORA 的專家數(shù)增至 30,新方法的效果甚至能小幅勝過(guò)完全微調(diào)方法。
此外,研究者還通過(guò)實(shí)驗(yàn)探索了參數(shù)高效型 MoE 隨基礎(chǔ)模型大小增長(zhǎng)的性能變化情況、專家數(shù)量對(duì)下游任務(wù)性能的影響、最優(yōu)的路由策略等方面,詳見(jiàn)原論文。