自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MoE也有Scaling Law,「百萬專家」利用率近100%!DeepMind華人挑戰(zhàn)MoE極限

人工智能 新聞
MoE已然成為AI界的主流架構,不論是開源Grok,還是閉源GPT-4,皆是其擁躉。然而,這些模型的專家,最大數(shù)量僅有32個。最近,谷歌DeepMind提出了全新的策略PEER,可將MoE擴展到百萬個專家,還不會增加計算成本。

如果你熟悉當前LLM的主流架構,混合專家(MoE)技術想必是老朋友之一。有人甚至會說,MoE是使大模型崛起的關鍵因素之一。

開源的Mixtral、DBRX、Grok等模型都使用了MoE,而且根據(jù)Soumith Chintala等大佬的推測,GPT-4也是一個規(guī)模為8×220B的MoE模型。

圖片

類似GPT-4,多數(shù)MoE模型都會將專家數(shù)量限制在較少數(shù)量,一般不會超過16或32。

然而,DeepMind研究科學家Xu Owen He最近就在一篇獨立發(fā)表的論文中,提出了一種全新的方法——PEER(參數(shù)高效專家檢索,Parameter Efficient Expert Retrieval),可以將專家數(shù)量擴展到百萬數(shù)量級。

圖片

論文地址:https://arxiv.org/abs/2407.04153

這究竟是如何做到的?參數(shù)量不會爆炸嗎?不會造成收益遞減嗎?如何實現(xiàn)能在百萬個專家中實現(xiàn)高效檢索?

背景與介紹

Transformer架構中,每個塊內(nèi)都包含注意力層和前饋層(FFW),注意力層用于計算序列中token之間的關系,F(xiàn)FW網(wǎng)絡則負責存儲模型知識。

我們當然希望LLM能在參數(shù)中隱式存儲更多知識,但FFW的計算成本和激活內(nèi)存會隨之線性增加。稠密模型中,F(xiàn)FW層已經(jīng)占據(jù)了總參數(shù)量的2/3,是擴展的主要瓶頸之一。

MoE模型雖然參數(shù)量也很大,但每次推理時不會動用整個模型的能力,而是將數(shù)據(jù)路由到小型且專門的「專家模塊」,因此能在LLM參數(shù)增加的同時,讓推理所需的計算成本基本不變。

那么專家數(shù)量(即MoE模型的「粒度」)是不是越多越好?

這要考慮多個因素,包括模型參數(shù)總量、訓練token數(shù)量和算力的預算。

2022年的一項研究認為,模型總參數(shù)量不變時,存在一個能達到最優(yōu)性能的「最佳粒度」。專家數(shù)量超過這個與之后,模型性能就會進入「平臺期」。

圖片

Unified Scaling Laws for Routed Language Models

論文地址:https://arxiv.org/pdf/2202.01169

然而,今年年初Krajewski等人發(fā)表的一篇論文反駁了這個觀點。他們發(fā)現(xiàn),如果同時增加訓練所用的token數(shù)量,那么更高粒度可以提高性能。

圖片

論文地址:https://arxiv.org/pdf/2402.07871

受到這種細粒度MoE Scaling Law的啟發(fā),作者推斷,模型容量的持續(xù)改進將帶來具有高粒度的LLM,即包括大量微型專家的模型。

除了能帶來更高效的擴展,增加專家數(shù)量還有另外一層好處——終身學習。

之前有研究表明,通過簡單地添加新專家并進行適當正則化,MoE模型就可以適應連續(xù)的數(shù)據(jù)流。凍結舊專家、僅讓新專家權重更新,就可以在保持可塑性的同時防止災難性遺忘。

在終身學習環(huán)境中,數(shù)據(jù)流可能達到無限長度,甚至永無止境,因此論文探索的專家數(shù)量的擴大就顯得十分重要。

百萬MoE所系

PEER層設計

形式上,PEER可以表達為函數(shù)圖片,包含如下三部分:

- N個專家組成的專家池,其中每個專家ei和f有相同的函數(shù)簽名圖片

- 一組相應的N個乘積鍵圖片

- 用于將輸入向量x映射到查詢向量q(x)的查詢網(wǎng)絡圖片

用????表示top-k運算符,給定輸入x,從N個專家中檢索到k個專家的過程可以表示為:

圖片

之后使用softmax或sigmoid等激活函數(shù)應用于top-k個專家的查詢-鍵內(nèi)積,獲得路由分數(shù):

圖片

最后,計算路由分數(shù)加權的專家分數(shù)之和,作為PEER層輸出。

圖片

上述的PEER層可以插入到Transformer架構骨干的中間,或者代替FFW層,整體計算流程如圖2所示。

圖片

PEER層示意圖

乘積鍵檢索

由于要使用非常多的專家(N≥106),直接計算公式1中的前k個指標可能會非常耗費資源。

為此,研究人員提出了乘積鍵檢索技術——通過連接來自兩個獨立d/2維的子鍵C和C′(C, C′ ? Rd/2)的向量來進行創(chuàng)建:

圖片

這種K的笛卡爾積結構,能夠高效地找到前k位專家。

也就是,先將查詢向量q(x)拆分為兩個子查詢q1和q2,并分別對子查詢與子鍵之間的內(nèi)積進行前k個操作:

圖片

然后得到一組k2候選鍵集合,圖片,在數(shù)學上,這可以保證從K中與q(x)最相似的k個鍵在這個候選集合中。

此外,候選鍵與q(x)之間的內(nèi)積只是子鍵與子查詢之間內(nèi)積的總和:圖片

因此,可以再次將前k個操作應用于這k的平方個內(nèi)積,以從原始的乘積鍵集合K中獲得前k個匹配鍵。

最終,公式1中通過窮舉搜索進行的top-k專家檢索的復雜度,從O(N·d)降到了O((√N + k2)d)。

參數(shù)高效專家和多頭檢索

通常的MoE架構中會將專家隱藏層設計為FFW層相同大小,但PEER中的每個專家ei則小得多,僅僅是包含一個神經(jīng)元、一個隱藏層的單例MLP:

圖片

其中vi、ui都不是參數(shù)矩陣,而是與x維度相同的向量,??表示ReLU或GELU等激活函數(shù)。

每個專家只有如此少的參數(shù),怎么可能有強大的表達能力?

此處,作者借鑒了多頭注意力的做法,使用了「多頭檢索」(multi-head retrieval)機制。

也就是說,查詢過程并不是僅有一次,而是使用h個獨立的查詢網(wǎng)絡,分別計算自己的查詢向量并檢索出一組top-k專家,但他們共享相同的專家池和每個專家的乘積鍵。

h個「檢索頭」的輸出相加后得到最終檢索結果:

圖片

可以證明,當每個頭只檢索一名專家時(k=1),使用含h個檢索頭的PEER層,等效于使用含有h個神經(jīng)元的專家。

圖片

這就意味著,這種多頭檢索的過程相當于動態(tài)組裝出含有h個神經(jīng)元的專家MLP網(wǎng)絡。

與現(xiàn)有MoE中多個專家之間完全隔離的狀態(tài)相比,這種設計允許專家間共享隱藏神經(jīng)元,從而提升了參數(shù)效率和知識遷移的能力。

算法1描述了PEER前向計算的簡化實現(xiàn)。要想達到高效的實現(xiàn),可能還需要專門的硬件內(nèi)核來加速embedding查找,以及與einsum操作的融合。

圖片

為什么用大量的小專家

論文的背景介紹中,我們從直覺和經(jīng)驗層面推導出使用大量專家的優(yōu)點,但作者也在此處用公式推導的方法證明了這一點。

首先,我們可以用3個超參數(shù)表征MoE層的設置:參數(shù)總量P、每個token激活的參數(shù)Pactive以及單個專家的大小Pexpert。

之前提及的,Krajewski論文中提出的「細粒度MoE Scaling Law」就可以用這三個參數(shù)表示為如下形式:

圖片

其中,L表示損失值,D是訓練token總量,G是激活專家的數(shù)量,a、b、g、α、β、γ等字母都表示常量。

為了降低損失值、提高模型性能,我們需要提升P、D、G的值,同時也需要限制Pactive的大小,因為計算和內(nèi)存成本主要由激活參數(shù)量決定。

值得注意的是,Pactive對應的內(nèi)存占用也和batch中的token數(shù)量有關,但與batch大小或序列長度無關,因為在處理batch或序列的每個token時只需要存儲模型的一份副本。

由于專家大小Pexpert=Pactive/G,因此專家數(shù)量N=P/Pexpert=P·G/Pactive。

這就意味著,如果想要在增加P、G的同時保持Pactive不變,就應該減小專家大小Pexpert,并增加專家數(shù)量N。

這就解釋了,我們?yōu)槭裁葱枰罅康男<摇?/span>

一般來說,對于只有單個隱藏層的專家模型,其參數(shù)大小為:Pexpert=(2?dmodel+1)?dexpert,相應地,Pactive=(2?dmodel+1)?dactive。

其中dmodel、dexpert、dactive分別表示表示Transformer的隱藏維度、單個專家的隱藏神經(jīng)元數(shù)量以及每個token激活的參數(shù)總量。

PEER中使用了盡可能小的專家大小,即dexpert=1,因此最大程度地降低了dactive,大小僅為檢索頭數(shù)量乘以每次檢索的專家數(shù)量(h·k)。

實驗

預訓練isoFLOP分析

作者使用isoFLOP分析將PEER與各種基線方法進行了比較。

這里,他選擇了固定的FLOP預算(6e18和2e19),并同時改變模型大小和來自C4數(shù)據(jù)集的訓練token數(shù),以獲得isoFLOP曲線。

isoFLOP曲線上的每個點,都具有相同的計算成本,作者根據(jù)其模型大小和在C4上的最終驗證困惑度(perplexity),來繪制這些點。

對于密集基線模型,通過改變層數(shù)、注意力頭數(shù)和模型維度來改變它們的大小。

對于MoE、PKM和PEER方法,作者選取了每個考慮的密集模型,并分別用MoE、PKM和PEER層,替換中間塊中的FFN層(例如,在12塊Transformer中,替換第6塊中的FFN)。

在MoE中,作者使用了專家選擇路由算法。該算法有效地解決了專家負載不平衡問題,并且通常優(yōu)于token選擇MoE。

每個專家的大小與相應密集模型中原始MLP的大小相同,作者使用了128個專家來覆蓋與PEER模型相同的模型大小范圍。

這種類型的MoE代表了標準的粗粒度方法,由少量大型專家組成。

在PKM中,作者使用了1024×2個儲存器,8個頭,每個頭選擇32個存儲器(top k=32)。

此外,研究者還應用了查詢批量歸一化,這是原始PKM論文中推薦的,用于提高記憶使用率。

在PEER中,同樣使用了10242個專家,8個頭,每個頭選擇16個存儲器(top k=16)。

默認情況下,作者也啟用了查詢批歸一化(BatchNorm)來增加專家使用率。與專家選擇MoE基線不同,PEER代表了一種細粒度方法,使用了大量小型專家。

在所有模型大小和方法中,保持了一致的批大?。?28)和序列長度(2048)。通過將總計算預算除以每個訓練步驟的FLOP來計算訓練步驟數(shù)。

圖1展示的是isoFLOP曲線。

與密集FFW基線相比,稀疏替代方案使isoFLOP曲線向下和向右移動,因為其引入了更多的總參數(shù)P,但使用了更少或相同數(shù)量的活躍參數(shù)Pactive。

另外,在相同的計算預算下,PEER模型達到了最低的計算優(yōu)化困惑度。

圖片

語言建模數(shù)據(jù)集評估

根據(jù)isoFLOP曲線確定每種方法的計算最優(yōu)模型后,研究人員在幾個流行的語言建模數(shù)據(jù)集上評估了這些預訓練模型的性能,包括Curation Corpus、Lambada、the Pile、Wikitext和預訓練數(shù)據(jù)集C4。

評估結果如表1所示,作者根據(jù)模型在訓練期間使用的FLOP預算將其分組。

圖片

消融實驗

改變專家總數(shù)

圖1中isoFLOP圖所示的模型都有超過一百萬(10242)個專家。

接下來,研究者進行了一項消融研究,研究專家數(shù)量N的影響,N決定了等式9中的總參數(shù)數(shù)量P。

作者選擇了isoFLOP最優(yōu)模型,并改變PEER層中的專家數(shù)量(N = 1282, 2562, 5122, 10242),同時活躍專家的數(shù)量不變(h = 8, k = 16)。

實驗結果如圖3(a)所示,可以看出,isoFLOP曲線在10242個專家的PEER模型和相應的密集骨干模型(未將中間塊的FFW層替換為PEER層)之間進行插值。

這表明,僅僅增加專家數(shù)量,就可以提高模型性能。

圖片

改變活躍專家的數(shù)量

另外,作者還對活躍專家hk數(shù)量進行了消融研究,hk等同于等式9中的粒度G。

他系統(tǒng)地改變了活躍專家的數(shù)量(hk = 32, 64, 128, 256, 512),同時保持專家總數(shù)不變(N = 10242)。

此外,對于給定的hk,同時改變h和k以找到最優(yōu)組合。結果中的isoFLOP曲線,以頭(h)數(shù)為橫軸繪制,如圖3(b)所示。

結果表明,在考慮的數(shù)值范圍內(nèi),更高的h·k值通常會帶來更好的性能。

值得注意的是,隨著h·k的增加,最優(yōu)的h也在增加。然而,性能逐漸趨于飽和,增加活躍專家的數(shù)量也會增加設備內(nèi)存消耗,可能需要額外的加速器設備。

因此,在實際應用中,應該根據(jù)性能、設備數(shù)量和計算資源需求之間的權衡來選擇適當?shù)膆·k值。

專家使用和查詢批歸一化

由于PEER層中有超過一百萬個專家,對于許多人來說,一定好奇其在推理過程中實際選擇了多少專家?它們的使用是否均勻分布?

為了分析這點,研究者在C4驗證集的所有token中,為每個專家ei保留一個累積的路由分數(shù)(router score),表示為:圖片圖片

其中,gi(x)是指當token x作為輸入時用于聚合專家輸出的路由分數(shù)。如果專家ei未被選中,則gi(x)=0。

從這些累積的路由分數(shù)中,可以獲得一個經(jīng)驗概率分布向量,表示為圖片。

代表C4驗證集上所有專家的分布。

然后,作者計算了Lample等人提出的以下指標來評估專家的使用情況和分布:

- 專家使用:推理過程中檢索到的專家比例:圖片

- 不均勻性:z與均勻分布之間的KL散度圖片

其中,N是專家總數(shù)。

默認設置下,作者在查詢網(wǎng)絡上添加了一個批歸一化(BN)層,目的是增加訓練過程中的專家使用率。

對此,他研究添加這個BN層對上述指標的影響。

表2展示了不同專家數(shù)量下的專家使用和不均勻性,包括使用和不使用BN的情況。

可以看到,即使對于100萬個專家,專家使用率也接近100%,而使用BN可以導致專家的使用更加平衡,并降低困惑度。

這些發(fā)現(xiàn)證明了,PEER模型在利用大量專家方面的有效性。

圖片

最后,作者還比較了有和沒有批歸一化(BN)的isoFLOP曲線。

如下圖4所示,使用BN的PEER模型通常能達到更低的困惑度。雖然差異不是很顯著,但在isoFLOP最有區(qū)域附近最為明顯。

圖片

作者介紹

圖片

Owen He是Google DeepMind的研究科學家,專注于持續(xù)學習和基礎模型。

在加入DeepMind之前,Owen是在格羅寧根大學和不來梅雅各布大學(康斯特大學)攻讀博士學位,導師是 Herbert Jaeger。

在此期間,Owen訪問過Mila、馬克斯·普朗克研究所、伯爾尼大學和蘇黎世聯(lián)邦理工學院,并在Google DeepMind進行過實習。

他曾組織過ICML 2021持續(xù)學習研討會,目前擔任Conference on Lifelong Learning Agents的出版主席。

圖片

責任編輯:張燕妮 來源: 新智元
相關推薦

2024-09-02 14:30:00

數(shù)據(jù)訓練

2025-02-25 18:41:39

2025-03-11 00:35:00

DeepSeektoC業(yè)務

2024-01-10 16:01:28

2025-02-17 03:00:00

LLMsMoELLM

2024-11-11 13:24:02

2024-07-10 12:32:48

2024-08-06 08:16:05

2017-04-26 21:01:48

能源黑科技

2024-05-14 09:06:42

谷歌模型

2025-01-08 08:55:32

2010-03-15 15:01:37

2024-05-06 07:58:23

MoE模型系統(tǒng)

2017-08-25 15:56:54

Linuxproc文件系統(tǒng)CPU利用率

2023-04-04 09:22:50

LinuxCPU命令

2024-07-26 11:40:33

2024-02-06 10:38:10

昆侖萬維大模型
點贊
收藏

51CTO技術棧公眾號