0
本文作者: 曉楠 | 2024-05-27 15:15 |
MoE 會成為未來大模型訓(xùn)練的新方向嗎?
這是人們發(fā)現(xiàn) MoE 架構(gòu)可以用于大模型訓(xùn)練、推理后,發(fā)出的一聲疑問。
MoE(Mixture of Experts),又稱「混合專家」,本質(zhì)是一種模塊化的稀疏激活。怎么理解?
當(dāng)前的大模型主要分為稠密(dense)模型與稀疏(sparse)模型,兩者的區(qū)別主要在于模型進(jìn)行計算時,被調(diào)用的參數(shù)數(shù)量,參數(shù)全部生效使用的是稠密模型,比如 OpenAI 從第一代到第三代即 GPT-1、 GPT-2、 GPT-3,以及 Meta 的 Llama 系列都是稠密模型;只使用其中一部分參數(shù)的是稀疏模型,比如基于 MoE 架構(gòu)的模型,而這些被使用的參數(shù)稱為「激活參數(shù)」。
具體從網(wǎng)絡(luò)結(jié)構(gòu)來看,目前主流的大模型大都是基于 Transformer 架構(gòu),由多個 Transformer Block 疊加組成,在每一個 Transformer Block 內(nèi)部都會包括兩層結(jié)構(gòu),一層是多頭自注意力(Multi-Head Self-Attention),另一層是位置前饋神經(jīng)網(wǎng)絡(luò)(Position-wise Feed-Forward Network,F(xiàn)FN)。MoE 做法是對 FFN 層進(jìn)行橫向擴(kuò)展,將其中的參數(shù)細(xì)化、組織成一個又一個的組,每個組是一個專家(expert)。
基于此,對于特定輸入,MoE 只需激活少數(shù) expert,讓其參數(shù)處于激活狀態(tài),從而實現(xiàn)稀疏激活。而具體激活哪些 expert、哪部分參數(shù),MoE 還會引入一個 Router(門控網(wǎng)絡(luò)或路由),根據(jù)特定輸入進(jìn)行動態(tài)選擇。
去年年底,Mistral AI 開源了基于 MoE 架構(gòu)的模型 Mixtral 8x7B,性能表現(xiàn)可達(dá)到與 GPT-3.5、 Llama2 70B 相媲美的程度,而推理時只消耗了一個 13B 級別的稠密模型計算量——這一度讓業(yè)內(nèi)人士對 MoE 架構(gòu)在大模型研究中的潛力充滿了想象。
居然有這樣一個架構(gòu),可以讓 AI 模型在增大參數(shù)規(guī)模的同時,計算成本遠(yuǎn)低于相同參數(shù)規(guī)模的稠密模型,實現(xiàn)高效訓(xùn)練。這在 Scaling Law 仍被奉為 LLM 第一性原理的當(dāng)下,簡直是「大力出奇跡」的不二工具。
緊接著,國內(nèi)外大模型從業(yè)者相繼推出基于 MoE 架構(gòu)的大模型:
今年 1 月,MiniMax 發(fā)布基于 MoE 架構(gòu)的大語言模型 abab6;
2月,昆侖萬維正式發(fā)布新版 MoE 大語言模型「天工 2.0」;
3月,馬斯克創(chuàng)辦的 xAI 宣布開源基于 MoE 架構(gòu)的大模型 Grok-1,新晉大模型獨角獸階躍星辰發(fā)布 Step-2 萬億參數(shù) MoE 語言大模型預(yù)覽版,阿里通義千問團(tuán)隊開源首個 MoE 模型——Qwen1.5-MoE-A2.7B;
4月,元象科技發(fā)布 XVERSE-MoE-A4.2B 大模型,面壁智能推出 MiniCPM-MoE-8x2B MoE 模型;
5月,DeepSeek AI 開源 MoE 語言模型 DeepSeek-V2,在一些任務(wù)表現(xiàn)中成為目前最強(qiáng)的開源 MoE 語言模型……
越來越多的玩家開始選擇 MoE。為此,AI 科技評論走訪了多位國內(nèi) MoE 專業(yè)人員。我們發(fā)現(xiàn),MoE 的未來或尚未可知,但在當(dāng)下,MoE 是大多數(shù)企業(yè)在忠于 Scaling Law 這一定律下必然要做出的選擇。
1.MoE 是算力匱乏的「產(chǎn)物」
MoE 并非新生事物。作為一種統(tǒng)計學(xué)架構(gòu),MoE 早在 1997 年就被提出,后來,隨著機(jī)器學(xué)習(xí)等人工智能技術(shù)的興起,MoE 的思想也隨著深度學(xué)習(xí)的發(fā)展一路演進(jìn),在2017年時,就已經(jīng)有專家學(xué)者在 LSTM 模型上運用 MoE 方法并取得了成功。
而意識到 MoE 可以用于大模型的訓(xùn)練,很多人是從去年年底 Mistral AI 開源了首個 MoE 架構(gòu)模型開始的,但對于很多研究 MoE 的學(xué)者來說,Mistral AI 的開源更是 MoE 的一次成功實踐,讓大家對 MoE 的感知從原先的理論到實際效果的轉(zhuǎn)變。
實際早在去年 6 月份,在一次訪談中,就有人聲稱 OpenAI 的 GPT-4 是一個 8x220B 的 MoE 模型。只不過彼時大模型在國內(nèi)才剛剛起步,大家對基礎(chǔ)模型的訓(xùn)練技術(shù)不太成熟,對 MoE 感知不夠,一陣喧嘩之后討論聲漸漸消散,不過也正是這一次讓更多業(yè)內(nèi)人士開始意識到 MoE 的價值。
階躍星辰算法專家告訴雷峰網(wǎng),當(dāng)初社區(qū)傳言 OpenAI 的 GPT-4 是 MoE 架構(gòu)時,他們并不感到意外,甚至能根據(jù)經(jīng)驗猜測它的大部分架構(gòu)細(xì)節(jié)。
元象XVERSE技術(shù)合伙人、大模型算法負(fù)責(zé)人軒文烽也表示,在更早之前,2021 年初 Google 在 arXiv上 發(fā)表了一篇論文《Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity》后,他們就開始了解到 MoE,同年國內(nèi)的阿里正在研發(fā) M6 模型,在這方面也有跟進(jìn)?!付?Mistral AI 的開源,直接讓它的實際效果呈現(xiàn)得更明顯,之后,去年 12 月元象XVERSE開始策劃訓(xùn)練 MoE 大模型。」
誠然,MoE 作為一種模塊化的稀疏激活,可以在模型總參數(shù)量不變的情況下,大幅降低計算總量,高效計算、降低成本。這是 MoE 最為顯著的優(yōu)勢,也是為什么它作為一個并不「新鮮」的技術(shù)又在此時此刻重新煥發(fā)活力的原因所在。
現(xiàn)在的大模型越來越大了。Scaling Law 帶來的啟示是模型越大,性能越強(qiáng),可是模型迭代離不開高效的算力支持,而算力的不足和匱乏,行業(yè)周知。
稀疏化包括 MoE 技術(shù)為這一問題提供了解法——它可以增大模型的參數(shù)規(guī)模,但是它的計算成本又要遠(yuǎn)低于相同參數(shù)規(guī)模的稠密模型。
面壁智能研究員宋晨陽告訴雷峰網(wǎng),在目前算力,特別是國內(nèi)算力普遍比較有限的情況下,MoE 架構(gòu)是一個必然的趨勢和選擇。
面壁智能與 MoE 淵源頗深。早在 2021 年 6 月,清華大學(xué)劉知遠(yuǎn)教授牽頭的「悟道·文源」就發(fā)布了千億 MoE 大模型 CPM-2 ,是國內(nèi)最早關(guān)注到這一問題的 AI 團(tuán)隊之一,而其中的參與成員就包括面壁智能的初始團(tuán)隊。因著這一自帶的基因,面壁智能一直在關(guān)注和研究 MoE 和稀疏化。
同樣堅信 Scaling Law 的階躍星辰在完成千億模型的訓(xùn)練后,開始訓(xùn)練萬億模型。而想把模型參數(shù)擴(kuò)大到萬億,MoE 是在性能、參數(shù)量、訓(xùn)練成本、推理成本這些維度權(quán)衡下的最佳選擇。
具體來看,MoE 模型的優(yōu)勢主要體現(xiàn)為專家化、動態(tài)化、稀疏化。
一是具有更強(qiáng)的表現(xiàn)力:MoE 架構(gòu)融合多個各有所長的專家模型,既有分工,又有合作,能夠動態(tài)地適應(yīng)不同輸入樣本的特點,提高模型的表達(dá)能力。
二是訓(xùn)練和推理速度更快:相比于同參數(shù)的稠密模型架構(gòu),MoE 是稀疏的,訓(xùn)練的時候計算量更小,推理的時候同時激活的參數(shù)量更小,因此能夠更高效地利用計算資源。
2.路徑抉擇不一
目前,市場上選擇 MoE 架構(gòu)的大模型廠商越來越多,大家做得也都大同小異,但在架構(gòu)細(xì)節(jié)上還有很多值得琢磨的地方,業(yè)界也沒有達(dá)成共識,比如總共需要多少個 expert(2個到128個)、選擇激活多少個 expert、需不需要有固定共享 expert、選擇 expert 的時候該怎么做均衡等,各家都會不太一樣。
一般來說,現(xiàn)在的 MoE 路徑選擇主要分為兩種——基于一個已有模型開始訓(xùn)練,還是從頭開始訓(xùn)練。
基于已有模型開始訓(xùn)練,是通過一個眾所周知的取巧方案——upcycle(向上復(fù)用)進(jìn)行的。具體來說,是將一個已經(jīng)訓(xùn)練好的大模型的前饋神經(jīng)網(wǎng)絡(luò)權(quán)重復(fù)制若干份,每一份作為一個 expert,然后組合在一起,這樣就可以把一個非 MoE 模型變成一個 MoE 模型,參數(shù)量很快就能變得特別大,但算力需求會小幾個量級。
宋晨陽告訴雷峰網(wǎng),「這種方法的最大優(yōu)勢在于可以節(jié)省很多成本,因為初始模型就有很多知識?!沟瑫r,這樣也存在很大的弊端,比如基于拷貝復(fù)制得到的 MoE 模型,expert 之間會有很多知識重疊,權(quán)重、參數(shù)的冗余導(dǎo)致對各 expert 的支持是重疊的,如果做得不好,就不能充分發(fā)揮 MoE 架構(gòu)的潛力,是一個很具考驗性的路徑。
那如果從頭開始訓(xùn)練的話,雖然訓(xùn)練起來會更難,但上述問題會有所緩解,且它的自由度更高,避免傳統(tǒng) MoE 架構(gòu)模型的潛在問題,爭取達(dá)到 MoE 架構(gòu)模型的上限。
目前,大多數(shù)廠商選擇的是基于已有模型進(jìn)行訓(xùn)練,像是 Mistral AI 的 Mixtral 系列模型、千問的 MoE 模型 Qwen1.5-MoE-A2.7B、面壁智能的 MiniCPM-MoE-8x2B 等。而從論文來看,DeepSeek 選擇的是從頭開始訓(xùn)練,前段時間 DeepSeek-V2 一經(jīng)開源發(fā)布,引起了非常大的反響。
階躍星辰的做法是,一方面選擇完全從頭開始訓(xùn)練,保持萬億參數(shù)在整個訓(xùn)練過程中都不變,充分發(fā)揮 MoE 架構(gòu)的潛力,另一方面在前期做好準(zhǔn)備工作,從眾多方案中選擇更為靠譜的架構(gòu)配置。
除此之外,還有一個大家會有分歧的問題,就是 MoE 架構(gòu)的 expert 的力度應(yīng)該是粗還是細(xì)?以及應(yīng)不應(yīng)該有固定共享 expert?
舉例來說,Mistrial AI 的 8x7B 是一個經(jīng)典的 MoE 架構(gòu),有 8 個 expert ,每個 expert 都是完全一樣的形狀,然后用 router 網(wǎng)絡(luò)去從 8 個 expert 里面選擇 2 個 expert。但是千問和 DeepSeek 采用了不同的做法,特別是 DeepSeek 把 expert 的粒度切得更細(xì),同時還引入共享 expert。
換句話說,好比原本是從 8 個 expert 中只能選 2 個,那組合數(shù)為 C8 2,但是如果把這 8 個 expert 每個再分別切成 8 個,就得到 64 個 expert,然后從 64 個 expert 中去選擇 8 個,組合數(shù)就達(dá)到了 C64 8。這樣一來,模型可選擇的組合大大增多,模型的表達(dá)能力也就會有所增強(qiáng)。
宋晨陽認(rèn)為,這是 DeepSeek MoE 模型的一大創(chuàng)新之處。
對此,軒文烽也告訴雷峰網(wǎng),在 expert 的選擇上,元象XVERSE 也沒有使用傳統(tǒng)的 MoE 架構(gòu)做法——類 Mistral AI 的選擇,每個 expert 等同于標(biāo)準(zhǔn)的 FFN——而是用了一些更細(xì)顆粒度的方法,將 expert 的設(shè)計設(shè)置為標(biāo)準(zhǔn) FFN 的 1/ 4,而之所以做出這個選擇,是在訓(xùn)練過程中,根據(jù)多次實驗預(yù)測結(jié)果得出的結(jié)論,另外他們也在密切關(guān)注目前業(yè)界的 FFN 的配比方案。
另外,DeepSeek 還引入了共享 expert,前面提到,如果像 Mistral AI 那樣從一個已有的稠密模型基于 upcycle,得到的 MoE 模型存在一個問題,即每個 expert 在初始化的時候完全一樣,彼此之間不可避免會有很多知識的重疊,最后參數(shù)將是冗余的。而 DeepSeek 的策略是把每個 expert 重疊的知識用共享 expert 單獨拿出來表示,共享 expert 對于每一個給定的輸入 token 不經(jīng)過 router 網(wǎng)絡(luò)直接固定激活,然后再對其他剩下不共享的 expert 中,用 router 網(wǎng)絡(luò)去選擇要激活的部分。
基于此,宋晨陽認(rèn)為,目前市面上的 MoE 模型又分為兩個流派,一種就是類似 Mistrial AI的傳統(tǒng) MoE 流派,還另外就是千問和 DeepSeek MoE 這種 expert 切分更細(xì)、設(shè)置共享 expert 的架構(gòu)。
至于哪種會成為主流,其實并沒有具體的答案,因為一個模型最后表現(xiàn)有多好,架構(gòu)還真不一定是最重要的事情,影響因素很多,比如數(shù)據(jù),包括哪些類型的數(shù)據(jù)、數(shù)據(jù)如何清洗、如何配比組織,以及最終訓(xùn)練時,原始數(shù)據(jù)如何切分成一個又一個的 token,等等。不同的選擇都將通往不同的答案。
當(dāng)前,面壁智能的 MiniCPM-MoE-8x2B 采用的是類似 Mistral AI 的模型架構(gòu)??紤]到未來面壁智能的最終目標(biāo)是要將端側(cè)模型做到極致,送到每一部手機(jī)、每一個用戶手上。所以,當(dāng)下他們也在討論,包括做一些實驗,來決定設(shè)計怎樣更適合加速的 MoE 架構(gòu),從而做出最終路徑選擇。
3.MoE「終究是一門妥協(xié)的藝術(shù)」
當(dāng)前,隨著入局玩家的增多,MoE 似乎正逐漸成為一種行業(yè)共識,那么,MoE 會是未來 AI 的方向嗎?
對此,眾說紛紜,信奉它的人認(rèn)為,它可以實現(xiàn)同等參數(shù)規(guī)模下算力的大幅降低,在 Scaling Law 仍未失效的當(dāng)下,無疑是最優(yōu)解。
但不看好的也大有人在。
今年 4 月底,Meta 官宣了 Llama 3,總共有三個版本——8B、70B 和 400B+。其中,8B 和 70B 版本已經(jīng)開源,而 400B+ 版本仍在訓(xùn)練中。CEO 扎克伯格在訪談提到,Llama 3 400B+ 將是一個稠密模型。面對如此大的參數(shù)量,仍然選擇稠密模型,或許表明,Meta 不相信稀疏化,「拒絕」了 MoE 架構(gòu)。
其實,即便是那些選擇了 MoE 架構(gòu)的玩家,也不得不承認(rèn),雖然有著高效訓(xùn)練、靈活性和可解釋性的優(yōu)點,MoE 的局限性仍然明顯,是「一門妥協(xié)的藝術(shù)」。
宋晨陽表示,MoE 的好處在于算力有限的情況下,可以實現(xiàn)同等參數(shù)規(guī)模下,計算量的大幅降低。但如果有足夠的算力,訓(xùn)練一個 MoE 模型和同等參數(shù)量的稠密模型,就性能來說,一定是稠密模型更好。
也就是說,同等參數(shù)規(guī)模下,稠密模型的表現(xiàn)要優(yōu)勝于 MoE 模型。這是因為,本質(zhì)上 FFN 的表達(dá)能力是不受限的,但 MoE 模型為了稀疏激活,強(qiáng)行規(guī)定只能激活被切細(xì)后的一部分 FFN,相當(dāng)于把模型的整個可表示空間給縮小了。
另外,無論是 MoE 還是整個稀疏化,都有一個「致命」問題,就是目前并沒有一個特別有效的方法能夠降低它們的存儲消耗。比如對于一個 7B 模型來說,可以把它做成稀疏架構(gòu),使其計算量小于 7B,但它的內(nèi)存消耗還是一個 7B 的規(guī)模,這會導(dǎo)致在實際將其部署在端側(cè)的時候,出現(xiàn)問題。
軒文烽也表示,MoE 現(xiàn)在的高效訓(xùn)練等優(yōu)勢其實就是通過顯存換效果。雖然 MoE 不像稠密模型那樣,參數(shù)增大后訓(xùn)練、推理成本都會顯著增加,但對于一個用 4.2B 的激活參數(shù)量達(dá)到 13B 效果的 MoE 模型來說,推理成本是低了些,但是顯存的占用并沒有變化。
因此,「如何優(yōu)化顯存方面的問題,同時保持它這種獲得更高效果的性價比,可能是需要行業(yè)去研究的?!?/p>
另外,一位從事 MoE 模型訓(xùn)練的研究員也感慨,在實際訓(xùn)練中,MoE 架構(gòu)模型確實存在一些挑戰(zhàn)。
比如,訓(xùn)練和推理難度大,萬億的 MoE 架構(gòu)需要將各專家放在不同的計算節(jié)點上,會引入額外的并行維度和網(wǎng)絡(luò)通信,專家之間的不平衡性會拖累整個系統(tǒng)的訓(xùn)練、推理效率,極端情況下可能會浪費 50% 以上的集群算力;參數(shù)利用率不高,每個專家都必須成為一定程度上的「通才」,消耗很多的參數(shù)量學(xué)習(xí)共有的基礎(chǔ)知識,在此基礎(chǔ)上才能有所「專精」,因此相同參數(shù)量的 MoE 模型往往比不過傳統(tǒng)稠密模型。
但這些從業(yè)者也紛紛向雷峰網(wǎng)(公眾號:雷峰網(wǎng))坦言,即便如此,就當(dāng)下的實際情況而言,MoE 肯定是一個非常有希望的做法、必然的趨勢。
或許,在算力足夠的理想狀態(tài)下,沒有必要非得用 MoE 架構(gòu),但在算力依舊短缺的現(xiàn)在,無法設(shè)想那個不存在的未來。當(dāng)然,如果我們把目光放得長遠(yuǎn)些,十年或二十年后,技術(shù)持續(xù)發(fā)展,硬件和計算框架不再成為短板,到底想要使用什么樣的架構(gòu)訓(xùn)練大模型,會更自由些。
而在當(dāng)下這個明確而具體的時間點,從業(yè)者能做的就是基于 MoE 架構(gòu)現(xiàn)有的一些技術(shù)挑戰(zhàn),以及可優(yōu)化空間,盡量進(jìn)行可能性的改進(jìn),使它的訓(xùn)練更高效、性能更好。
比如,如何為 MoE 設(shè)計一個更好的加速框架?MoE 模型并不是一個特別好加速的模型,因為有很多 expert ,這些 expert 如何部署,是把每個 expert 部署在不同的卡上,還是把它們切片以后進(jìn)行平行、分布式部署在多張卡上,等等。
再比如,目前關(guān)于 MoE 大模型似乎開始出現(xiàn)一個趨勢,就是當(dāng)大家都在爭著把大模型的參數(shù)量做得越來越大時,性能卻并沒有因此變好,甚至沒有參數(shù)量更小的模型好。一組對比是,參數(shù)量為 314B 億的 Grok-1 與 Mistral AI 的 8x7B 模型性能相當(dāng),這是為什么?
對此,宋晨陽認(rèn)為其中一個核心原因是 Mistral AI 的數(shù)據(jù)質(zhì)量更高。Scaling Law 能夠成立的前提,是要有充足的高質(zhì)量數(shù)據(jù)作為保證。對于同樣的模型架構(gòu)、同樣的參數(shù)量來說,數(shù)據(jù)質(zhì)量比較高的那個模型,可以用比較少的數(shù)據(jù)量達(dá)到相同的效果。
另外,除了數(shù)據(jù),另一個決定模型性能因素是訓(xùn)練技巧,包括批次大小等調(diào)度,都非常有講究,但目前這些在行業(yè)中,很多已經(jīng)做得非常好的頭部廠商「羞于」展示,需要更多的從業(yè)者不斷實踐,獲得更多的經(jīng)驗來探索更好、更優(yōu)的方式。當(dāng)然,也有一些廠商敢于「逆行」,如面壁智能的 MiniCPM-2B 在發(fā)布的同時,于技術(shù)報告中詳細(xì)描述了如批次大小調(diào)度、學(xué)習(xí)率調(diào)度、詞表大小選取等細(xì)節(jié)問題,為學(xué)界和業(yè)界提供了可參考的經(jīng)驗。
比如軒文烽在總結(jié) XVERSE-MoE-A4.2B 大模型的研發(fā)經(jīng)驗時覺得,如果再重新來一遍,可能會做得更快些,實驗計劃會設(shè)計得更緊湊些。
雖然,大家都想找到一個最優(yōu)的解決方案,將大模型訓(xùn)練、推理得又快又好,但不可否認(rèn),技術(shù)探索沒有邊界,沒有最優(yōu)、只有更優(yōu)。
MoE 包括稀疏化未必代表 AI 的未來,但它提供了豐富的想象空間。比如,是不是可以朝著更為稀疏的方向走去,將 expert 切得更細(xì),細(xì)到極限,如實現(xiàn)神經(jīng)元級別的稀疏激活,那又將會帶來怎樣的效果?
這是一個非常有前景、值得探索的方向。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。