首頁(yè) > 科技要聞 > 科技> 正文

顏水成袁粒提出新一代MoE架構(gòu):專家吞吐速度最高提升2.1倍!

量子位 整合編輯:太平洋科技 發(fā)布于:2024-10-29 16:47

比傳統(tǒng)MoE推理速度更快、性能更高的新一代架構(gòu),來了!

這個(gè)通用架構(gòu)叫做MoE++,由顏水成領(lǐng)銜的昆侖萬維2050研究院與北大袁粒團(tuán)隊(duì)聯(lián)合提出。

總體來看,MoE++的創(chuàng)新之處在于引入了“零計(jì)算量專家”,得益于這個(gè)設(shè)計(jì),使得新架構(gòu)有了三大優(yōu)勢(shì):

降低計(jì)算成本:MoE++允許每個(gè)Token使用可變數(shù)量的FFN專家,甚至可以完全跳過當(dāng)前的MoE層。

提升性能:通過減少簡(jiǎn)單Token所需的FFN專家數(shù)量,MoE++使更多專家能夠?qū)W⒂趶?fù)雜的Token,釋放出比傳統(tǒng)MoE更大的性能潛力。

零計(jì)算量專家的參數(shù)極小:可以在每個(gè)GPU上同時(shí)部署所有的零計(jì)算量專家,避免了分布式FFN專家部署帶來的通信開銷和專家負(fù)載不均的問題。

除此之外,MoE++還讓每個(gè)Token在選擇專家時(shí)參考前一層的路由路徑。

實(shí)驗(yàn)結(jié)果表明,在0.6B到7B參數(shù)規(guī)模的LLMs上,MoE++在相同模型大小的情況下,相比傳統(tǒng)MoE,性能更優(yōu),同時(shí)實(shí)現(xiàn)了1.1到2.1倍的專家吞吐速度。

并且這個(gè)模型權(quán)重也已開源!

那么MoE++具體是如何做到的,我們繼續(xù)往下看。

MoE++是如何做到的?

現(xiàn)有的大多數(shù)混合專家(MoE)方法通常為所有Token激活固定數(shù)量的FFN專家。

在許多研究中,每個(gè)Token會(huì)選擇Top-2 FFN專家,并將它們的輸出加權(quán)合成為下一層的輸入。然而,并非所有Token的預(yù)測(cè)難度都是相同的。

例如,像逗號(hào)等簡(jiǎn)單符號(hào)可能只需要一個(gè)FFN專家來處理。

甚至在某些特殊情況下,某些Token如果與當(dāng)前MoE層的專家不匹配,繞過該層而不選擇Top-2 FFN專家反而可能更為高效。

基于這一見解,研究團(tuán)隊(duì)認(rèn)為,現(xiàn)有MoE使用的固定混合機(jī)制可能導(dǎo)致訓(xùn)練和推理效率下降,同時(shí)限制模型性能。

為了在提升速度的同時(shí)增強(qiáng)性能,研究團(tuán)隊(duì)提出了一種通用的異構(gòu)MoE框架,稱為MoE++。

具體來說,團(tuán)隊(duì)引入了三種零計(jì)算量專家:

Zero專家,輸出空向量

Copy專家,將輸入直接作為輸出

Constant專家,用可訓(xùn)練的向量替代輸入作為輸出。

如圖1所示,與傳統(tǒng)MoE方法不同,MoE++允許每個(gè)Token使用可變數(shù)量的FFN專家,接受恒定向量的替換,甚至完全跳過當(dāng)前的MoE++層。

圖1:MoE++和普通MoE的對(duì)比

這種異構(gòu)結(jié)構(gòu)通過擴(kuò)大網(wǎng)絡(luò)的組合空間,提升了模型的擬合能力,并顯著降低了計(jì)算成本。

此外,研究團(tuán)隊(duì)還將前一層的路由分?jǐn)?shù)整合到當(dāng)前層的專家選擇中,使Token在選擇專家時(shí)能夠參考其先前的路由路徑,從而實(shí)現(xiàn)更穩(wěn)定的專家分配。

研究團(tuán)隊(duì)認(rèn)為,新設(shè)計(jì)的MoE架構(gòu)應(yīng)滿足以下標(biāo)準(zhǔn):

設(shè)計(jì)應(yīng)盡量簡(jiǎn)化,以高效處理簡(jiǎn)單的Token

為了確保公平比較,新增參數(shù)應(yīng)保持在可忽略的范圍

在這些原則的指導(dǎo)下,研究團(tuán)隊(duì)引入了零計(jì)算量專家,每個(gè)專家僅執(zhí)行最基本的操作。

如圖2(a)所示,團(tuán)隊(duì)設(shè)計(jì)了三種類型的零計(jì)算量專家:Zero專家、Copy專家和Constant專家,分別對(duì)應(yīng)丟棄、跳過和替換操作。

圖2:MoE++的核心組成部分

Zero專家

最簡(jiǎn)單的零計(jì)算量專家是丟棄當(dāng)前輸入的Zero專家。

本質(zhì)上,Zero專家的存在可以將Top-2 MoE++層降級(jí)為Top-1 MoE++層。

具體來說,當(dāng)Zero專家被激活時(shí),Top-2 MoE++層的輸出將等同于另一個(gè)專家的單獨(dú)輸出。

這樣,Zero專家的引入提升了模型在處理簡(jiǎn)單Token和復(fù)雜Token時(shí)的靈活性。

Copy專家

Copy專家直接將輸入作為輸出,直觀上相當(dāng)于跳過當(dāng)前MoE++層。

具體而言,當(dāng)輸入Token與現(xiàn)有專家的匹配較差時(shí),選擇繞過MoE++層可能更為有利。

Constant專家

Constant專家通過可訓(xùn)練向量替換輸入Token。

然而,完全替換會(huì)導(dǎo)致輸入Token信息的丟失。

為此,研究團(tuán)隊(duì)引入了可訓(xùn)練的權(quán)重矩陣,用于動(dòng)態(tài)預(yù)測(cè)替換的比例。由于Constant專家的計(jì)算開銷極小,因此仍被歸類為零計(jì)算量專家。

路由分?jǐn)?shù)殘差

由于MoE++包含異構(gòu)專家,因此與普通MoE相比,路由器的設(shè)計(jì)變得更加關(guān)鍵。

為此,如圖2(b)所示,研究團(tuán)隊(duì)提出了一種路徑感知路由器,它在選擇合適的專家時(shí)考慮了前一層所采用的路徑。

具體來說,MoE++將前一層的路由分?jǐn)?shù)通過一個(gè)可學(xué)習(xí)的轉(zhuǎn)換矩陣合并到當(dāng)前層的專家選擇中。

這些路由分?jǐn)?shù)殘差使每個(gè)Token在選擇專家時(shí)可以考慮其先前的路由路徑。

為什么MoE++比MoE更好(Why)?

對(duì)于這個(gè)問題,主要可以總結(jié)三點(diǎn)原因。

首先就是靈活的計(jì)算量分配。

MoE++通過為簡(jiǎn)單Token分配較少的FFN專家,優(yōu)化了計(jì)算資源的分配,從而使更多FFN專家能夠?qū)W⒂谔幚砀咛魬?zhàn)性的Token。

正如圖3所示,研究團(tuán)隊(duì)發(fā)現(xiàn),在MoE++中,動(dòng)詞激活的FFN專家數(shù)量最多,其次是名詞,而拆分后的詞片激活的FFN數(shù)量最少。

這表明,MoE++能夠讓語義較少的Token使用更少的FFN專家,從而釋放更多專家來處理語義更豐富的Token。因此,MoE++不僅減少了計(jì)算開銷,還提升了整體性能。

圖3:在MoE++中不同Token所需要的平均FFN專家數(shù)量

其次是穩(wěn)定的路由

MoE++將前一層的路由分?jǐn)?shù)合并到當(dāng)前層的專家選擇中。

這些路由分?jǐn)?shù)殘差使每個(gè)Token在選擇專家時(shí)考慮其先前的路由路徑。

如圖4所示,路由分?jǐn)?shù)殘差有效地建立了不同MoE++層之間的聯(lián)系,減小了路由分?jǐn)?shù)的方差。

同時(shí),路由分?jǐn)?shù)殘差不改變路由分?jǐn)?shù)的均值和取值范圍。因此,路由分?jǐn)?shù)殘差有助于在MoE++中實(shí)現(xiàn)異構(gòu)專家架構(gòu)的穩(wěn)定路由。

圖4:路由分?jǐn)?shù)殘差對(duì)路由分?jǐn)?shù)分布的影響

最后是更低的計(jì)算復(fù)雜度。

如下表所示,MoE++具有比普通MoE更低的理論計(jì)算復(fù)雜度。

實(shí)驗(yàn)結(jié)果

從0.6B的參數(shù)量逐漸擴(kuò)展到7B參數(shù)量的大量實(shí)驗(yàn)結(jié)果表明,MoE++方法明顯優(yōu)于普通MoE方法。

與相同大小的普通MoE模型相比,MoE++的專家吞吐量提高了約15% ~ 111%,同時(shí)具有更高的性能。


現(xiàn)有的LLMs模型通常需要大量的訓(xùn)練預(yù)算,比如OpenMoE-8B/32E使用1.1T Tokens,TinyLlama-1.1B使用3T Tokens。

研究人員也將MoE++模型的訓(xùn)練預(yù)算擴(kuò)展到1T Tokens。

研究人員發(fā)現(xiàn)MoE++模的性能與具有2到3倍激活參數(shù)的稠密模型相當(dāng)。

值得注意的是,MoE++優(yōu)于OpenMoE-8B/32E,這是一個(gè)從零開始訓(xùn)練的更大的MoE模型,使用更多的訓(xùn)練Tokens。

這些結(jié)果表明,MoE++框架是一種很有前途的LLMs框架方案。

任務(wù)級(jí)專家負(fù)載分布的可視化

研究人員還探索了MoE++模型中跨不同任務(wù)的專家負(fù)載分。這些可視化揭示了幾個(gè)有趣的發(fā)現(xiàn):

專家負(fù)載在不同層之間存在相關(guān)性,特別是在相鄰層之間。例如,當(dāng)?shù)趈層激活很大比例的FFN專家時(shí),第j + 1層很可能也會(huì)以同樣大的比例激活FFN專家。

與中間層相比,淺層和最后一層的專家分配模式在不同任務(wù)之間的差異更大。這表明該模型主要通過其淺層和最終層而不是中間層來適應(yīng)不同的任務(wù)。未來的工作可以集中在這些層中設(shè)計(jì)更復(fù)雜的結(jié)構(gòu),以增強(qiáng)模型對(duì)不同任務(wù)的適應(yīng)性。

不同任務(wù)中每個(gè)Token激活的FFN專家數(shù)量存在顯著差異,但并不一定是更簡(jiǎn)單的任務(wù)激活更少的FFN專家。例如,ARC Challenge任務(wù)通常比ARC Easy任務(wù)激活更多的FFN專家。這些結(jié)果表明,MoE++模型根據(jù)知識(shí)內(nèi)容和Token級(jí)別的復(fù)雜性來分配專家,而不是根據(jù)整體任務(wù)難度來分配專家。

在所有專家類型中,Zero專家的平均激活次數(shù)最高,更簡(jiǎn)單的任務(wù)顯示出更高的平均激活次數(shù)。例如,ARC Easy任務(wù)比ARC Challenge任務(wù)激活更多的零專家。這表明Zero專家的激活水平可能可以作為模型任務(wù)難度的一個(gè)指標(biāo)。

在MoE++模型的所有層中,不同任務(wù)主題的專家分配差異顯著,這表明MoE++模型通過采用不同的專家分配模式來處理不同主題的任務(wù)。





本文來源:量子位

網(wǎng)友評(píng)論

聚超值•精選

推薦 手機(jī) 筆記本 影像 硬件 家居 商用 企業(yè) 出行 未來
二維碼 回到頂部