「混合專家模型」可視化指南:A Visual Guide to MoE 原創(chuàng) 精華
編者按: 對大語言模型進行擴展的過程中,如何在保持高性能的同時有效控制計算資源消耗?混合專家模型(MoE)作為一種新興的架構(gòu)設(shè)計方案正在得到越來越多的關(guān)注,但它究竟是如何工作的?為什么越來越多的大語言模型都在采用這種架構(gòu)?
這篇文章通過50多張精心繪制的示意圖,系統(tǒng)拆解了MoE的核心原理。從最基礎(chǔ)的專家網(wǎng)絡(luò)、路由機制,到負載均衡、容量控制等進階話題,每個概念都配有直觀的可視化講解。作者還介紹了如何將MoE應(yīng)用于視覺模型,例如Vision-MoE和Soft-MoE。
作者 | Maarten Grootendorst
編譯 | 岳揚
在查看最新推出的大語言模型(LLMs)時,你可能會注意到標題中頻繁出現(xiàn)的“MoE”字樣。這個“MoE”究竟是什么,它為何會成為眾多 LLMs 的標配?
在這份可視化指南中,我們將借助超過 50 張圖表來詳細了解這一關(guān)鍵組件,逐步深入混合專家模型(Mixture of Experts, MoE)的工作原理!
在這份可視化指南里,我們將逐一剖析 MoE 的核心要素:專家網(wǎng)絡(luò)(Experts)和路由器(Router),并展示它們在常見的大語言模型(LLM)架構(gòu)中是如何發(fā)揮作用的。
01 什么是混合專家模型?
混合專家模型(MoE)技術(shù)通過使用眾多不同的子模型(即“專家網(wǎng)絡(luò)”)來提升大語言模型(LLMs)的性能。
MoE 的兩大核心組成部分如下:
- 專家網(wǎng)絡(luò)- 當(dāng)前,每個前饋神經(jīng)網(wǎng)絡(luò)層(FFNN)都配備有一組“專家網(wǎng)絡(luò)”,可以根據(jù)需要選擇其中的子集。這些“專家網(wǎng)絡(luò)”通常就是 FFNN 本身。
- 路由器或門控網(wǎng)絡(luò)- 它負責(zé)決定哪些 tokens 應(yīng)該被傳遞給哪些專家網(wǎng)絡(luò)。
在集成了 MoE 的 LLM 的每一個模型層中,我們都能找到(具有一定專業(yè)性的)專家網(wǎng)絡(luò):
需要注意的是,“專家網(wǎng)絡(luò)”并非專注于某個特定領(lǐng)域(如“心理學(xué)”或“生物學(xué)”)的專家,它們更多的是在單詞層面上學(xué)習(xí)句法信息:
更準確地說,它們的專長在于在特定的上下文中處理特定的詞匯單元。
路由器(門控網(wǎng)絡(luò))會為每個輸入挑選出最合適的專家網(wǎng)絡(luò):
每個專家網(wǎng)絡(luò)并非一個完整的 LLM,而是 LLM 架構(gòu)中的一個組成部分。
02 專家網(wǎng)絡(luò)
為了深入了解專家網(wǎng)絡(luò)的含義及其運作機制,我們先來考察混合專家模型(Mixture of Experts,MoE)試圖優(yōu)化的結(jié)構(gòu) —— 密集層(dense layers)。
2.1 密集層(Dense Layers)
混合專家模型(Mixture of Experts,MoE)的概念源自大語言模型(LLMs)的一個基本組件,也就是前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network,F(xiàn)FNN)。
我們需要知道,在標準的僅包含解碼器的 Transformer 架構(gòu)中,前饋神經(jīng)網(wǎng)絡(luò)通常應(yīng)用于層歸一化(layer normalization)之后:
前饋神經(jīng)網(wǎng)絡(luò)利用注意力機制生成的上下文信息,進一步處理以捕捉數(shù)據(jù)中的復(fù)雜關(guān)系。
但是,前饋神經(jīng)網(wǎng)絡(luò)的規(guī)模增長速度很快。為了掌握這些復(fù)雜的關(guān)系,它往往需要對輸入信息進行擴展處理:
2.2 稀疏層(Sparse Layers)
在傳統(tǒng)的 Transformer 中,F(xiàn)FNN 被稱作密集模型(dense model),因為它的所有參數(shù)(包括權(quán)重和偏置項)都會被激活。沒有任何參數(shù)被閑置,每一個都參與到輸出的計算中。
如果我們仔細觀察密集模型,會發(fā)現(xiàn)輸入數(shù)據(jù)在某種程度上激活了所有參數(shù):
與此相對的是,稀疏模型(sparse models)只激活了其參數(shù)總數(shù)的一部分,這與混合專家模型(Mixture of Experts)密切相關(guān)。
打個比方,我們可以把密集模型分解成若干小塊(即所謂的“專家網(wǎng)絡(luò)”),重新訓(xùn)練它們,并且在任何特定時刻只激活一部分“專家網(wǎng)絡(luò)”:
這種方法的核心理念是,每個“專家網(wǎng)絡(luò)”在訓(xùn)練過程中會學(xué)習(xí)到不同的信息。而在推理階段,只有那些與當(dāng)前任務(wù)最相關(guān)的“專家網(wǎng)絡(luò)”會被調(diào)用。
這樣在面對問題時,我們可以挑選出最適合處理該任務(wù)的“專家網(wǎng)絡(luò)”:
2.3 專家網(wǎng)絡(luò)學(xué)習(xí)了什么?
正如我們之前所見,專家網(wǎng)絡(luò)所學(xué)習(xí)的信息比泛泛地學(xué)習(xí)整個領(lǐng)域的所有信息更為精細1。因此,將它們稱為“專家”有時會被認為是一種誤導(dǎo)。
在 ST-MoE 論文中提到的編碼器模型的專業(yè)化
相比之下,解碼器模型中的專家網(wǎng)絡(luò)并沒有展現(xiàn)出同樣的專業(yè)化。但這并不意味著所有專家網(wǎng)絡(luò)都是等同的。
在 Mixtral 8x7B 論文[1]中提供了一個很好的案例,其中每個 token 都根據(jù)首次選擇的專家網(wǎng)絡(luò)進行了著色。
這張圖片也表明,專家網(wǎng)絡(luò)通常更關(guān)注句法結(jié)構(gòu),而不是特定領(lǐng)域的內(nèi)容。
因此,盡管解碼器中的專家網(wǎng)絡(luò)沒有顯示出特定的專業(yè)領(lǐng)域,但它們似乎確實會一致地用于處理某些特定類型的 tokens 。
2.4 專家網(wǎng)絡(luò)架構(gòu)
雖然將專家網(wǎng)絡(luò)可視化成被分解的密集模型中的隱藏層確實很有幫助,但實際上,他們本身往往就是一個完整的前饋神經(jīng)網(wǎng)絡(luò)(FFNN):
大語言模型(LLM)通常包含多個解碼器塊,這意味著一段文本在最終生成之前,會經(jīng)過一系列專家網(wǎng)絡(luò)的處理:
每個 tokens 可能由不同的專家網(wǎng)絡(luò)處理,這就形成了多樣化的處理“路徑”:
如果我們重新構(gòu)想解碼器塊的構(gòu)造,會發(fā)現(xiàn)它現(xiàn)在集成了更多的前饋神經(jīng)網(wǎng)絡(luò)(每個專家網(wǎng)絡(luò)對應(yīng)一個):
因此,解碼器塊在推理階段能夠調(diào)用多個前饋神經(jīng)網(wǎng)絡(luò)(每個都被視為一個“專家網(wǎng)絡(luò)”)來完成任務(wù)。
03 路由機制
現(xiàn)在已經(jīng)有了一組專家網(wǎng)絡(luò),模型如何知道使用哪些專家網(wǎng)絡(luò)呢?
就在專家網(wǎng)絡(luò)之前,會添加一個路由器(也稱為門控網(wǎng)絡(luò)),它會被訓(xùn)練來為給定的 token 選擇專家網(wǎng)絡(luò)。
3.1 路由器
路由器(或稱門控網(wǎng)絡(luò))本身也是一個前饋神經(jīng)網(wǎng)絡(luò)(FFNN),其作用是基于特定的輸入來挑選合適的專家網(wǎng)絡(luò)。它會輸出一系列概率值,用以確定最匹配的專家網(wǎng)絡(luò):
專家層(expert layer)將所選專家網(wǎng)絡(luò)的輸出結(jié)果與門控值(即選擇概率)相乘后返回。
路由器與被選中的少數(shù)專家網(wǎng)絡(luò)共同組成了 MoE 層:
MoE 層有兩種類型,一種是稀疏混合專家(sparse mixture of experts),另一種是密集混合專家(dense mixture of experts)。
這兩種模式都通過路由器來挑選專家網(wǎng)絡(luò),不同的是,稀疏 MoE 只挑選部分專家網(wǎng)絡(luò),而密集 MoE 則會選擇所有專家網(wǎng)絡(luò),但每個專家網(wǎng)絡(luò)的參與程度可能不同。
打個比方,面對一組 tokens ,MoE 會將其分配給所有專家網(wǎng)絡(luò)處理,而稀疏 MoE 則只挑選少數(shù)幾個專家網(wǎng)絡(luò)來處理。
在現(xiàn)有的 LLMs 中,提到的 “MoE” 通常指的是稀疏 MoE,因為它只使用部分專家網(wǎng)絡(luò),大大降低了計算成本,對于 LLMs 來說,這一點至關(guān)重要。
3.2 專家網(wǎng)絡(luò)的選擇
門控網(wǎng)絡(luò)可以說是任何 MoE 最重要的組成部分,因為它不僅決定推理過程中選擇哪些專家網(wǎng)絡(luò),還決定訓(xùn)練過程中的選擇。
最基本的形式是:我們將輸入(x)乘以路由器權(quán)重矩陣(W):
然后,我們對輸出應(yīng)用 SoftMax 操作,為每個專家網(wǎng)絡(luò)創(chuàng)建一個概率分布G(x):
路由器利用該概率分布來為給定輸入選擇最匹配的專家網(wǎng)絡(luò)。
最后,我們將每個路由器的輸出與每個選定專家網(wǎng)絡(luò)的輸出相乘,并將結(jié)果相加。
現(xiàn)在將整個流程組合起來,探索輸入是如何流經(jīng)路由器和專家網(wǎng)絡(luò)的:
3.3 路由過程的復(fù)雜性
然而,這種簡單的功能往往使得路由器傾向于選擇相同的專家網(wǎng)絡(luò),因為某些專家網(wǎng)絡(luò)的學(xué)習(xí)速度可能比其他專家網(wǎng)絡(luò)要快:
這樣不僅會造成專家網(wǎng)絡(luò)選擇的不均衡,還可能導(dǎo)致部分專家網(wǎng)絡(luò)幾乎得不到訓(xùn)練。這種現(xiàn)象在訓(xùn)練和推理階段都會引發(fā)問題。
為了解決這個問題,我們希望在訓(xùn)練和推理過程中,所有專家網(wǎng)絡(luò)都能得到平等的重視,我們稱之為“專家網(wǎng)絡(luò)負載均衡”。這樣做一定程度上是為了避免模型對某些專家網(wǎng)絡(luò)產(chǎn)生過度的依賴,從而避免過擬合。
04 負載均衡
為了平衡專家網(wǎng)絡(luò)的重要性,我們需要重點關(guān)注路由器,因為它是決定在特定時間選擇哪些專家網(wǎng)絡(luò)的主要組成部分。
4.1 KeepTopK
對路由器進行負載平衡的一種方法是一個名為 KeepTopK[2]2 的簡易擴展策略。通過引入可訓(xùn)練的高斯噪聲,避免了總是重復(fù)選擇同一批專家網(wǎng)絡(luò)的情況:
接下來,除了我們希望激活的前 k 個專家網(wǎng)絡(luò)(比如 2 個)之外,其他專家網(wǎng)絡(luò)的權(quán)重將被調(diào)整至負無窮大:
這樣做之后,這些權(quán)重在 SoftMax 函數(shù)作用下的輸出概率將會是 0:
盡管還存在許多有潛力的替代策略,但許多大語言模型(LLMs)仍然采用 KeepTopK 策略。需要注意的是,即使不添加額外的噪聲,KeepTopK 策略同樣可以使用。
4.1.1 Token 選擇策略
KeepTopK 策略能夠?qū)⒚總€ token 分配給若干選定的專家網(wǎng)絡(luò)。這種技術(shù)被稱為 Token Choice3,它允許每個 token 可以被路由至一個專家網(wǎng)絡(luò)(單專家網(wǎng)絡(luò)路由,即 top-1):
或者同時發(fā)送至多個專家網(wǎng)絡(luò)(多專家網(wǎng)絡(luò)路由,即 top-k):
這種方法的一個主要優(yōu)點在于,它能夠?qū)Ω鱾€專家的貢獻進行評估權(quán)衡,并將其整合起來。
4.1.2 輔助損失(Auxiliary Loss)
為了在訓(xùn)練過程中實現(xiàn)專家網(wǎng)絡(luò)的均衡分配,我們在網(wǎng)絡(luò)的常規(guī)損失基礎(chǔ)上增加了輔助損失(也稱作負載平衡損失)。
這一措施增加了一個約束條件,旨在強制確保每個專家網(wǎng)絡(luò)都擁有同等的重要性。
輔助損失的第一部分是對整個批次中每個專家網(wǎng)絡(luò)的路由器值(router values)進行求和:
這樣我們就得到了每個專家網(wǎng)絡(luò)的重要性得分(importance scores),它代表了在不考慮輸入的情況下,給定專家網(wǎng)絡(luò)被選中的可能性。
通過這些重要性得分(importance scores),我們可以計算出變異系數(shù)(CV),它表示不同專家網(wǎng)絡(luò)之間重要性得分的差異程度。
比如,如果專家網(wǎng)絡(luò)之間的重要性得分差異顯著,CV 值就會偏高:
反之,如果所有專家網(wǎng)絡(luò)的重要性得分相近,CV 值就會偏低(這正是我們希望達到的效果):
利用 CV 值,我們可以在訓(xùn)練過程中調(diào)整輔助損失,力求最大限度地降低 CV 值(以此確保每個專家網(wǎng)絡(luò)都具有相同的重要性):
最終,這個輔助損失將作為一個獨立的 loss,參與訓(xùn)練優(yōu)化。
4.2 專家網(wǎng)絡(luò)容量
不平衡不僅體現(xiàn)在被選中的專家網(wǎng)絡(luò)上,還體現(xiàn)在分配給專家網(wǎng)絡(luò)的 token 分布上。
例如,如果輸入的 token 過多地被分配給某一個專家網(wǎng)絡(luò),而不是均勻分配,可能會導(dǎo)致某些專家網(wǎng)絡(luò)得不到充分的訓(xùn)練:
這里的關(guān)鍵不僅僅在于哪些專家網(wǎng)絡(luò)被使用,更在于它們被使用的程度。
為了解決這個問題,我們可以采用一種方法,即限制每個專家網(wǎng)絡(luò)能夠處理的 token 數(shù)量,我們稱之為專家網(wǎng)絡(luò)容量(Expert Capacity4)。當(dāng)一個專家網(wǎng)絡(luò)的處理能力達到上限時,新來的 token 將會被轉(zhuǎn)交給下一個專家網(wǎng)絡(luò):
如果所有相關(guān)專家網(wǎng)絡(luò)都已達到其處理容量,那么這些 tokens 將不會由任何專家網(wǎng)絡(luò)處理,而是直接傳遞到網(wǎng)絡(luò)的下一層。這種現(xiàn)象我們稱之為 token 溢出。
4.3 使用 Switch Transformer 簡化 MoE
在處理 MoE 模型訓(xùn)練不穩(wěn)定問題(例如負載平衡)的早期基于 Transformer 的模型中,Switch Transformer 是其中的一個。5它通過簡化架構(gòu)和訓(xùn)練流程,有效提升了訓(xùn)練的穩(wěn)定性。
4.3.1 Switching Layer
Switch Transformer 是一個 T5 模型(編碼器-解碼器結(jié)構(gòu)),它用 Switching Layer 替換了傳統(tǒng)的 FFNN 層。Switching Layer 是一個稀疏的 MoE 層,它為每個 token 選擇一個專家網(wǎng)絡(luò)(Top-1 路由)。
路由器在計算選擇哪個專家網(wǎng)絡(luò)時沒有使用特殊技巧,只是將輸入乘以專家網(wǎng)絡(luò)的權(quán)重后取softmax(與我們之前做的一樣)。
這種架構(gòu)(Top-1路由)假定路由器只需要一個專家網(wǎng)絡(luò)就能學(xué)會如何對輸入進行路由。這與我們之前看到的情況截然不同,之前我們認為 token 應(yīng)該被路由到多個專家網(wǎng)絡(luò)(Top-k 路由)以學(xué)習(xí)路由行為。
4.3.2 容量因子(Capacity Factor)
容量因子是一個重要的參數(shù),它決定了專家網(wǎng)絡(luò)可以處理多少個 token。Switch Transformer 在此基礎(chǔ)上進行了擴展,引入了一個直接影響專家網(wǎng)絡(luò)容量的容量因子。
專家網(wǎng)絡(luò)容量的組成部分非常簡單:
如果我們增加容量因子,則每個專家網(wǎng)絡(luò)將能夠處理更多的 token。
然而,如果容量因子過大,就會浪費計算資源。相反,如果容量因子太小,由于 token 溢出,模型性能將會下降。
4.3.3 輔助損失(Auxiliary Loss)
為了進一步防止 token 被丟棄,Switch Transformer 引入了一個簡化版的輔助損失(Auxiliary Loss)。
這個簡化版的輔助損失不再計算系數(shù)變化,而是根據(jù)每個專家網(wǎng)絡(luò)的路由器概率與分發(fā)的 token 數(shù)量進行加權(quán)比較:
由于我們的目標是讓 token 在 N 個專家網(wǎng)絡(luò)之間均勻路由,因此我們希望向量 P 和 f 的值都是 1/N。
α 是一個超參數(shù),我們可以在訓(xùn)練過程中用它來微調(diào)這個輔助損失的重要性。如果 α 值過高,會影響主要損失函數(shù);如果 α 值過低,則無法有效進行負載平衡。
05 視覺模型中的 MoE
MoE不僅僅是一種僅適用于語言模型的技術(shù)。視覺模型(如 ViT)使用基于 transformer 的架構(gòu),因此也有潛力使用 MoE。
簡單回顧一下,ViT(Vision-Transformer)是一種將圖像分割成 patches 的架構(gòu),這些 patch 的處理方式與 token 類似。6
這些 patchs(或 tokens)隨后會被投影到嵌入向量中(并加上位置嵌入向量),然后被送入常規(guī)的編碼器中:
一旦這些 patches 進入編碼器,它們就像 tokens 一樣被處理,這使得這種架構(gòu)非常適合用于MoE。
5.1 Vision-MoE
Vision-MoE(V-MoE)是第一次在圖像模型中實現(xiàn) MoE 的嘗試。7它采用了我們之前看到的ViT,并將編碼器中的密集 FFNN 層替換為稀疏 MoE。
這使得 ViT 模型(通常模型規(guī)模小于語言模型),可以通過添加專家網(wǎng)絡(luò)來進行大規(guī)模擴展。
為了減少硬件限制,每個專家網(wǎng)絡(luò)都設(shè)置了較小的預(yù)定義容量,因為圖像通常包含許多 patch 。然而,低容量往往導(dǎo)致 patch 被丟棄(類似于 token 溢出)。
為了保持較低的專家網(wǎng)絡(luò)容量,網(wǎng)絡(luò)會為每個 patch 分配重要性分數(shù),并優(yōu)先處理這些得分較高的 patches,這樣使得溢出的 patches 一般就不那么重要了。這種方法被稱為批量優(yōu)先級路由(Batch Priority Routing)。
因此,即使 token 的數(shù)量減少,我們?nèi)匀粦?yīng)該看到重要的 patch 被成功路由。
優(yōu)先級路由(priority routing)可以集中處理最重要的 patches,從而減少處理的 patch 數(shù)量。
5.2 從稀疏 MoE 到軟 MoE
在 V-MoE 中,優(yōu)先級評分器(priority scorer)能夠幫助區(qū)分重要和不重要的 patch。然而,patch 被分配給每個專家網(wǎng)絡(luò)后,未被處理的 patch 中的信息就會丟失。
Soft-MoE 的目標是通過混合 patch 來從離散的 patch(token)分配轉(zhuǎn)變?yōu)檐浄峙洹?
在第一步中,我們將輸入 x(patch 嵌入)與一個可學(xué)習(xí)的矩陣 Φ 相乘。這將生成路由器信息(router information),告訴我們某個 token 與給定專家網(wǎng)絡(luò)的相關(guān)程度。
然后,通過對路由器信息矩陣(按列)進行 softmax 操作,從而更新每個 patch 的嵌入向量。
更新后的 patch 嵌入本質(zhì)上是所有 patch 嵌入的加權(quán)平均。
從視覺上看,就好像所有的 patch 都被混合在一起。然后,這些合并后的 patch 會被發(fā)送給每個專家網(wǎng)絡(luò)。生成輸出后,它們再次與路由器矩陣相乘。
路由器矩陣在 token 層面上影響輸入,在專家網(wǎng)絡(luò)層面上影響輸出。
因此,我們得到的是經(jīng)過處理的“軟” patch / token,而不是離散的輸入。
06 Mixtral 8x7B 的激活與稀疏參數(shù)對比
MoE 的一大亮點在于其計算需求。由于在給定時間內(nèi)只會使用部分專家網(wǎng)絡(luò),我們可以訪問的參數(shù)比我們正在使用的參數(shù)要多。
盡管給定的 MoE 有更多的參數(shù)需要加載(稀疏參數(shù)),但由于在推理過程中只使用部分專家網(wǎng)絡(luò)(活躍參數(shù)),因此實際激活的參數(shù)數(shù)量較少。
換句話說,我們?nèi)匀恍枰獙⒄麄€模型(包括所有專家網(wǎng)絡(luò))加載到設(shè)備上(稀疏參數(shù)),但是當(dāng)我們進行推理時,只需要使用部分參數(shù)(活躍參數(shù))。MoE 模型在加載所有專家網(wǎng)絡(luò)時需要更多的 VRAM,但在推理過程中運行得更快。
讓我們以 Mixtral 8x7B 為例,來探討稀疏參數(shù)與活躍參數(shù)的數(shù)量差異。9
在這里,我們可以看到每個專家網(wǎng)絡(luò)的參數(shù)量是 5.6B,而不是7B(有 8 個專家網(wǎng)絡(luò))。
我們將不得不加載 8x5.6B(46.7B)的參數(shù)(以及所有共享參數(shù)),但在推理過程中我們只需要使用 2x5.6B(12.8B)的參數(shù)。
07 Conclusion
我們的混合專家模型(MoE)學(xué)習(xí)之旅到此結(jié)束!希望這篇文章能讓你更好地理解這種有趣技術(shù)的潛力?,F(xiàn)在,幾乎所有的模型系列都至少包含一個 MoE 變體,感覺它已經(jīng)成為了主流。
想要查看更多與大語言模型(LLMs)相關(guān)的可視化內(nèi)容,請查看作者編寫的大語言模型書籍!
書籍相關(guān)網(wǎng)站[3]。你可以在亞馬遜[4]上訂購這本書。所有代碼都已上傳至GitHub[5]。
Resources
如果你想要更深入地了解 MoE,我建議你學(xué)習(xí)以下內(nèi)容:
- 這兩篇論文[6][7]是關(guān)于 MoE最新創(chuàng)新技術(shù)的概述。
- 這篇關(guān)于 expert choice routing[8] 的論文已經(jīng)引起了業(yè)界的一些關(guān)注。
- 一篇很棒的博客文章[9],梳理了一些關(guān)于 MoE 的主要論文(及其發(fā)現(xiàn))。
- 這篇博客文章[10] 講述了 MoE 的發(fā)展時間線。
1.Zoph, Barret, et al. "St-moe: Designing stable and transferable sparse expert models. arXiv 2022." arXiv preprint arXiv:2202.08906.
2.Shazeer, Noam, et al. "Outrageously large neural networks: The sparsely-gated mixture-of-experts layer." arXiv preprint arXiv:1701.06538 (2017).
3.Shazeer, Noam, et al. "Outrageously large neural networks: The sparsely-gated mixture-of-experts layer." arXiv preprint arXiv:1701.06538 (2017).
4.Lepikhin, Dmitry, et al. "Gshard: Scaling giant models with conditional computation and automatic sharding." arXiv preprint arXiv:2006.16668 (2020).
5.Fedus, William, Barret Zoph, and Noam Shazeer. "Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity." Journal of Machine Learning Research 23.120 (2022): 1-39.
6.Dosovitskiy, Alexey. "An image is worth 16x16 words: Transformers for image recognition at scale." arXiv preprint arXiv:2010.11929 (2020).
7.Riquelme, Carlos, et al. "Scaling vision with sparse mixture of experts." Advances in Neural Information Processing Systems 34 (2021): 8583-8595.
8.Puigcerver, Joan, et al. "From sparse to soft mixtures of experts." arXiv preprint arXiv:2308.00951 (2023).
9.Jiang, Albert Q., et al. "Mixtral of experts." arXiv preprint arXiv:2401.04088 (2024).
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the authors
Maarten Grootendorst
Data Scientist | Psychologist | Writer | Open Source Developer (BERTopic, PolyFuzz, KeyBERT) | At the intersection of Artificial Intelligence and Psychology
END
本期互動內(nèi)容 ??
?如果讓你用一個生活中的比喻來解釋 MoE 的工作原理,你會怎么比喻?歡迎在評論區(qū)分享你的想法!
??文中鏈接??
[1]??https://arxiv.org/pdf/2401.04088??
[2]??https://arxiv.org/pdf/1701.06538??
[3]??https://www.llm-book.com/??
[4]??https://www.amazon.com/Hands-Large-Language-Models-Understanding/dp/1098150961??
[5]??https://github.com/handsOnLLM/Hands-On-Large-Language-Models??
[6]??https://arxiv.org/pdf/2209.01667??
[7]??https://arxiv.org/pdf/2407.06204??
[8]??https://arxiv.org/pdf/2202.09368??
[9]??https://cameronrwolfe.substack.com/p/conditional-computation-the-birth??
[10]??https://brunomaga.github.io/Mixture-of-Experts??
原文鏈接:
??https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-mixture-of-experts??
