偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

「混合專家模型」可視化指南:A Visual Guide to MoE 原創(chuàng) 精華

發(fā)布于 2024-11-15 10:43
瀏覽
0收藏


編者按: 對(duì)大語言模型進(jìn)行擴(kuò)展的過程中,如何在保持高性能的同時(shí)有效控制計(jì)算資源消耗?混合專家模型(MoE)作為一種新興的架構(gòu)設(shè)計(jì)方案正在得到越來越多的關(guān)注,但它究竟是如何工作的?為什么越來越多的大語言模型都在采用這種架構(gòu)?

這篇文章通過50多張精心繪制的示意圖,系統(tǒng)拆解了MoE的核心原理。從最基礎(chǔ)的專家網(wǎng)絡(luò)、路由機(jī)制,到負(fù)載均衡、容量控制等進(jìn)階話題,每個(gè)概念都配有直觀的可視化講解。作者還介紹了如何將MoE應(yīng)用于視覺模型,例如Vision-MoE和Soft-MoE。

作者 | Maarten Grootendorst

編譯 | 岳揚(yáng)

在查看最新推出的大語言模型(LLMs)時(shí),你可能會(huì)注意到標(biāo)題中頻繁出現(xiàn)的“MoE”字樣。這個(gè)“MoE”究竟是什么,它為何會(huì)成為眾多 LLMs 的標(biāo)配?

在這份可視化指南中,我們將借助超過 50 張圖表來詳細(xì)了解這一關(guān)鍵組件,逐步深入混合專家模型(Mixture of Experts, MoE)的工作原理!

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

在這份可視化指南里,我們將逐一剖析 MoE 的核心要素:專家網(wǎng)絡(luò)(Experts)和路由器(Router),并展示它們?cè)诔R姷拇笳Z言模型(LLM)架構(gòu)中是如何發(fā)揮作用的。

01 什么是混合專家模型?

混合專家模型(MoE)技術(shù)通過使用眾多不同的子模型(即“專家網(wǎng)絡(luò)”)來提升大語言模型(LLMs)的性能。

MoE 的兩大核心組成部分如下:

  • 專家網(wǎng)絡(luò)- 當(dāng)前,每個(gè)前饋神經(jīng)網(wǎng)絡(luò)層(FFNN)都配備有一組“專家網(wǎng)絡(luò)”,可以根據(jù)需要選擇其中的子集。這些“專家網(wǎng)絡(luò)”通常就是 FFNN 本身。
  • 路由器或門控網(wǎng)絡(luò)- 它負(fù)責(zé)決定哪些 tokens 應(yīng)該被傳遞給哪些專家網(wǎng)絡(luò)。

在集成了 MoE 的 LLM 的每一個(gè)模型層中,我們都能找到(具有一定專業(yè)性的)專家網(wǎng)絡(luò):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

需要注意的是,“專家網(wǎng)絡(luò)”并非專注于某個(gè)特定領(lǐng)域(如“心理學(xué)”或“生物學(xué)”)的專家,它們更多的是在單詞層面上學(xué)習(xí)句法信息:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

更準(zhǔn)確地說,它們的專長(zhǎng)在于在特定的上下文中處理特定的詞匯單元。

路由器(門控網(wǎng)絡(luò))會(huì)為每個(gè)輸入挑選出最合適的專家網(wǎng)絡(luò):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

每個(gè)專家網(wǎng)絡(luò)并非一個(gè)完整的 LLM,而是 LLM 架構(gòu)中的一個(gè)組成部分。

02 專家網(wǎng)絡(luò)

為了深入了解專家網(wǎng)絡(luò)的含義及其運(yùn)作機(jī)制,我們先來考察混合專家模型(Mixture of Experts,MoE)試圖優(yōu)化的結(jié)構(gòu) —— 密集層(dense layers)。

2.1 密集層(Dense Layers)

混合專家模型(Mixture of Experts,MoE)的概念源自大語言模型(LLMs)的一個(gè)基本組件,也就是前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network,F(xiàn)FNN)。

我們需要知道,在標(biāo)準(zhǔn)的僅包含解碼器的 Transformer 架構(gòu)中,前饋神經(jīng)網(wǎng)絡(luò)通常應(yīng)用于層歸一化(layer normalization)之后:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

前饋神經(jīng)網(wǎng)絡(luò)利用注意力機(jī)制生成的上下文信息,進(jìn)一步處理以捕捉數(shù)據(jù)中的復(fù)雜關(guān)系。

但是,前饋神經(jīng)網(wǎng)絡(luò)的規(guī)模增長(zhǎng)速度很快。為了掌握這些復(fù)雜的關(guān)系,它往往需要對(duì)輸入信息進(jìn)行擴(kuò)展處理:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

2.2 稀疏層(Sparse Layers)

在傳統(tǒng)的 Transformer 中,F(xiàn)FNN 被稱作密集模型(dense model),因?yàn)樗乃袇?shù)(包括權(quán)重和偏置項(xiàng))都會(huì)被激活。沒有任何參數(shù)被閑置,每一個(gè)都參與到輸出的計(jì)算中。

如果我們仔細(xì)觀察密集模型,會(huì)發(fā)現(xiàn)輸入數(shù)據(jù)在某種程度上激活了所有參數(shù):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

與此相對(duì)的是,稀疏模型(sparse models)只激活了其參數(shù)總數(shù)的一部分,這與混合專家模型(Mixture of Experts)密切相關(guān)。

打個(gè)比方,我們可以把密集模型分解成若干小塊(即所謂的“專家網(wǎng)絡(luò)”),重新訓(xùn)練它們,并且在任何特定時(shí)刻只激活一部分“專家網(wǎng)絡(luò)”:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這種方法的核心理念是,每個(gè)“專家網(wǎng)絡(luò)”在訓(xùn)練過程中會(huì)學(xué)習(xí)到不同的信息。而在推理階段,只有那些與當(dāng)前任務(wù)最相關(guān)的“專家網(wǎng)絡(luò)”會(huì)被調(diào)用。

這樣在面對(duì)問題時(shí),我們可以挑選出最適合處理該任務(wù)的“專家網(wǎng)絡(luò)”:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

2.3 專家網(wǎng)絡(luò)學(xué)習(xí)了什么?

正如我們之前所見,專家網(wǎng)絡(luò)所學(xué)習(xí)的信息比泛泛地學(xué)習(xí)整個(gè)領(lǐng)域的所有信息更為精細(xì)1。因此,將它們稱為“專家”有時(shí)會(huì)被認(rèn)為是一種誤導(dǎo)。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

在 ST-MoE 論文中提到的編碼器模型的專業(yè)化

相比之下,解碼器模型中的專家網(wǎng)絡(luò)并沒有展現(xiàn)出同樣的專業(yè)化。但這并不意味著所有專家網(wǎng)絡(luò)都是等同的。

在 Mixtral 8x7B 論文[1]中提供了一個(gè)很好的案例,其中每個(gè) token 都根據(jù)首次選擇的專家網(wǎng)絡(luò)進(jìn)行了著色。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這張圖片也表明,專家網(wǎng)絡(luò)通常更關(guān)注句法結(jié)構(gòu),而不是特定領(lǐng)域的內(nèi)容。

因此,盡管解碼器中的專家網(wǎng)絡(luò)沒有顯示出特定的專業(yè)領(lǐng)域,但它們似乎確實(shí)會(huì)一致地用于處理某些特定類型的 tokens 。

2.4 專家網(wǎng)絡(luò)架構(gòu)

雖然將專家網(wǎng)絡(luò)可視化成被分解的密集模型中的隱藏層確實(shí)很有幫助,但實(shí)際上,他們本身往往就是一個(gè)完整的前饋神經(jīng)網(wǎng)絡(luò)(FFNN):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

大語言模型(LLM)通常包含多個(gè)解碼器塊,這意味著一段文本在最終生成之前,會(huì)經(jīng)過一系列專家網(wǎng)絡(luò)的處理:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

每個(gè) tokens 可能由不同的專家網(wǎng)絡(luò)處理,這就形成了多樣化的處理“路徑”:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

如果我們重新構(gòu)想解碼器塊的構(gòu)造,會(huì)發(fā)現(xiàn)它現(xiàn)在集成了更多的前饋神經(jīng)網(wǎng)絡(luò)(每個(gè)專家網(wǎng)絡(luò)對(duì)應(yīng)一個(gè)):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

因此,解碼器塊在推理階段能夠調(diào)用多個(gè)前饋神經(jīng)網(wǎng)絡(luò)(每個(gè)都被視為一個(gè)“專家網(wǎng)絡(luò)”)來完成任務(wù)。

03 路由機(jī)制

現(xiàn)在已經(jīng)有了一組專家網(wǎng)絡(luò),模型如何知道使用哪些專家網(wǎng)絡(luò)呢?

就在專家網(wǎng)絡(luò)之前,會(huì)添加一個(gè)路由器(也稱為門控網(wǎng)絡(luò)),它會(huì)被訓(xùn)練來為給定的 token 選擇專家網(wǎng)絡(luò)。

3.1 路由器

路由器(或稱門控網(wǎng)絡(luò))本身也是一個(gè)前饋神經(jīng)網(wǎng)絡(luò)(FFNN),其作用是基于特定的輸入來挑選合適的專家網(wǎng)絡(luò)。它會(huì)輸出一系列概率值,用以確定最匹配的專家網(wǎng)絡(luò):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

專家層(expert layer)將所選專家網(wǎng)絡(luò)的輸出結(jié)果與門控值(即選擇概率)相乘后返回。

路由器與被選中的少數(shù)專家網(wǎng)絡(luò)共同組成了 MoE 層:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

MoE 層有兩種類型,一種是稀疏混合專家(sparse mixture of experts),另一種是密集混合專家(dense mixture of experts)。

這兩種模式都通過路由器來挑選專家網(wǎng)絡(luò),不同的是,稀疏 MoE 只挑選部分專家網(wǎng)絡(luò),而密集 MoE 則會(huì)選擇所有專家網(wǎng)絡(luò),但每個(gè)專家網(wǎng)絡(luò)的參與程度可能不同。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

打個(gè)比方,面對(duì)一組 tokens ,MoE 會(huì)將其分配給所有專家網(wǎng)絡(luò)處理,而稀疏 MoE 則只挑選少數(shù)幾個(gè)專家網(wǎng)絡(luò)來處理。

在現(xiàn)有的 LLMs 中,提到的 “MoE” 通常指的是稀疏 MoE,因?yàn)樗皇褂貌糠謱<揖W(wǎng)絡(luò),大大降低了計(jì)算成本,對(duì)于 LLMs 來說,這一點(diǎn)至關(guān)重要。

3.2 專家網(wǎng)絡(luò)的選擇

門控網(wǎng)絡(luò)可以說是任何 MoE 最重要的組成部分,因?yàn)樗粌H決定推理過程中選擇哪些專家網(wǎng)絡(luò),還決定訓(xùn)練過程中的選擇。

最基本的形式是:我們將輸入(x)乘以路由器權(quán)重矩陣(W):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

然后,我們對(duì)輸出應(yīng)用 SoftMax 操作,為每個(gè)專家網(wǎng)絡(luò)創(chuàng)建一個(gè)概率分布G(x):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

路由器利用該概率分布來為給定輸入選擇最匹配的專家網(wǎng)絡(luò)。

最后,我們將每個(gè)路由器的輸出與每個(gè)選定專家網(wǎng)絡(luò)的輸出相乘,并將結(jié)果相加。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

現(xiàn)在將整個(gè)流程組合起來,探索輸入是如何流經(jīng)路由器和專家網(wǎng)絡(luò)的:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

3.3 路由過程的復(fù)雜性

然而,這種簡(jiǎn)單的功能往往使得路由器傾向于選擇相同的專家網(wǎng)絡(luò),因?yàn)槟承<揖W(wǎng)絡(luò)的學(xué)習(xí)速度可能比其他專家網(wǎng)絡(luò)要快:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這樣不僅會(huì)造成專家網(wǎng)絡(luò)選擇的不均衡,還可能導(dǎo)致部分專家網(wǎng)絡(luò)幾乎得不到訓(xùn)練。這種現(xiàn)象在訓(xùn)練和推理階段都會(huì)引發(fā)問題。

為了解決這個(gè)問題,我們希望在訓(xùn)練和推理過程中,所有專家網(wǎng)絡(luò)都能得到平等的重視,我們稱之為“專家網(wǎng)絡(luò)負(fù)載均衡”。這樣做一定程度上是為了避免模型對(duì)某些專家網(wǎng)絡(luò)產(chǎn)生過度的依賴,從而避免過擬合。

04 負(fù)載均衡

為了平衡專家網(wǎng)絡(luò)的重要性,我們需要重點(diǎn)關(guān)注路由器,因?yàn)樗菦Q定在特定時(shí)間選擇哪些專家網(wǎng)絡(luò)的主要組成部分。

4.1 KeepTopK

對(duì)路由器進(jìn)行負(fù)載平衡的一種方法是一個(gè)名為 KeepTopK[2]2 的簡(jiǎn)易擴(kuò)展策略。通過引入可訓(xùn)練的高斯噪聲,避免了總是重復(fù)選擇同一批專家網(wǎng)絡(luò)的情況:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

接下來,除了我們希望激活的前 k 個(gè)專家網(wǎng)絡(luò)(比如 2 個(gè))之外,其他專家網(wǎng)絡(luò)的權(quán)重將被調(diào)整至負(fù)無窮大:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這樣做之后,這些權(quán)重在 SoftMax 函數(shù)作用下的輸出概率將會(huì)是 0:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

盡管還存在許多有潛力的替代策略,但許多大語言模型(LLMs)仍然采用 KeepTopK 策略。需要注意的是,即使不添加額外的噪聲,KeepTopK 策略同樣可以使用。

4.1.1 Token 選擇策略

KeepTopK 策略能夠?qū)⒚總€(gè) token 分配給若干選定的專家網(wǎng)絡(luò)。這種技術(shù)被稱為 Token Choice3,它允許每個(gè) token 可以被路由至一個(gè)專家網(wǎng)絡(luò)(單專家網(wǎng)絡(luò)路由,即 top-1):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

或者同時(shí)發(fā)送至多個(gè)專家網(wǎng)絡(luò)(多專家網(wǎng)絡(luò)路由,即 top-k):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這種方法的一個(gè)主要優(yōu)點(diǎn)在于,它能夠?qū)Ω鱾€(gè)專家的貢獻(xiàn)進(jìn)行評(píng)估權(quán)衡,并將其整合起來。

4.1.2 輔助損失(Auxiliary Loss)

為了在訓(xùn)練過程中實(shí)現(xiàn)專家網(wǎng)絡(luò)的均衡分配,我們?cè)诰W(wǎng)絡(luò)的常規(guī)損失基礎(chǔ)上增加了輔助損失(也稱作負(fù)載平衡損失)。

這一措施增加了一個(gè)約束條件,旨在強(qiáng)制確保每個(gè)專家網(wǎng)絡(luò)都擁有同等的重要性。

輔助損失的第一部分是對(duì)整個(gè)批次中每個(gè)專家網(wǎng)絡(luò)的路由器值(router values)進(jìn)行求和:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這樣我們就得到了每個(gè)專家網(wǎng)絡(luò)的重要性得分(importance scores),它代表了在不考慮輸入的情況下,給定專家網(wǎng)絡(luò)被選中的可能性。

通過這些重要性得分(importance scores),我們可以計(jì)算出變異系數(shù)(CV),它表示不同專家網(wǎng)絡(luò)之間重要性得分的差異程度。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

比如,如果專家網(wǎng)絡(luò)之間的重要性得分差異顯著,CV 值就會(huì)偏高:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

反之,如果所有專家網(wǎng)絡(luò)的重要性得分相近,CV 值就會(huì)偏低(這正是我們希望達(dá)到的效果):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

利用 CV 值,我們可以在訓(xùn)練過程中調(diào)整輔助損失,力求最大限度地降低 CV 值(以此確保每個(gè)專家網(wǎng)絡(luò)都具有相同的重要性):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

最終,這個(gè)輔助損失將作為一個(gè)獨(dú)立的 loss,參與訓(xùn)練優(yōu)化。

4.2 專家網(wǎng)絡(luò)容量

不平衡不僅體現(xiàn)在被選中的專家網(wǎng)絡(luò)上,還體現(xiàn)在分配給專家網(wǎng)絡(luò)的 token 分布上。

例如,如果輸入的 token 過多地被分配給某一個(gè)專家網(wǎng)絡(luò),而不是均勻分配,可能會(huì)導(dǎo)致某些專家網(wǎng)絡(luò)得不到充分的訓(xùn)練:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這里的關(guān)鍵不僅僅在于哪些專家網(wǎng)絡(luò)被使用,更在于它們被使用的程度。

為了解決這個(gè)問題,我們可以采用一種方法,即限制每個(gè)專家網(wǎng)絡(luò)能夠處理的 token 數(shù)量,我們稱之為專家網(wǎng)絡(luò)容量(Expert Capacity4)。當(dāng)一個(gè)專家網(wǎng)絡(luò)的處理能力達(dá)到上限時(shí),新來的 token 將會(huì)被轉(zhuǎn)交給下一個(gè)專家網(wǎng)絡(luò):

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

如果所有相關(guān)專家網(wǎng)絡(luò)都已達(dá)到其處理容量,那么這些 tokens 將不會(huì)由任何專家網(wǎng)絡(luò)處理,而是直接傳遞到網(wǎng)絡(luò)的下一層。這種現(xiàn)象我們稱之為 token 溢出。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

4.3 使用 Switch Transformer 簡(jiǎn)化 MoE

在處理 MoE 模型訓(xùn)練不穩(wěn)定問題(例如負(fù)載平衡)的早期基于 Transformer 的模型中,Switch Transformer 是其中的一個(gè)。5它通過簡(jiǎn)化架構(gòu)和訓(xùn)練流程,有效提升了訓(xùn)練的穩(wěn)定性。

4.3.1 Switching Layer

Switch Transformer 是一個(gè) T5 模型(編碼器-解碼器結(jié)構(gòu)),它用 Switching Layer 替換了傳統(tǒng)的 FFNN 層。Switching Layer 是一個(gè)稀疏的 MoE 層,它為每個(gè) token 選擇一個(gè)專家網(wǎng)絡(luò)(Top-1 路由)。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

路由器在計(jì)算選擇哪個(gè)專家網(wǎng)絡(luò)時(shí)沒有使用特殊技巧,只是將輸入乘以專家網(wǎng)絡(luò)的權(quán)重后取softmax(與我們之前做的一樣)。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這種架構(gòu)(Top-1路由)假定路由器只需要一個(gè)專家網(wǎng)絡(luò)就能學(xué)會(huì)如何對(duì)輸入進(jìn)行路由。這與我們之前看到的情況截然不同,之前我們認(rèn)為 token 應(yīng)該被路由到多個(gè)專家網(wǎng)絡(luò)(Top-k 路由)以學(xué)習(xí)路由行為。

4.3.2 容量因子(Capacity Factor)

容量因子是一個(gè)重要的參數(shù),它決定了專家網(wǎng)絡(luò)可以處理多少個(gè) token。Switch Transformer 在此基礎(chǔ)上進(jìn)行了擴(kuò)展,引入了一個(gè)直接影響專家網(wǎng)絡(luò)容量的容量因子。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

專家網(wǎng)絡(luò)容量的組成部分非常簡(jiǎn)單:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

如果我們?cè)黾尤萘恳蜃?,則每個(gè)專家網(wǎng)絡(luò)將能夠處理更多的 token。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

然而,如果容量因子過大,就會(huì)浪費(fèi)計(jì)算資源。相反,如果容量因子太小,由于 token 溢出,模型性能將會(huì)下降。

4.3.3 輔助損失(Auxiliary Loss)

為了進(jìn)一步防止 token 被丟棄,Switch Transformer 引入了一個(gè)簡(jiǎn)化版的輔助損失(Auxiliary Loss)。

這個(gè)簡(jiǎn)化版的輔助損失不再計(jì)算系數(shù)變化,而是根據(jù)每個(gè)專家網(wǎng)絡(luò)的路由器概率與分發(fā)的 token 數(shù)量進(jìn)行加權(quán)比較:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

由于我們的目標(biāo)是讓 token 在 N 個(gè)專家網(wǎng)絡(luò)之間均勻路由,因此我們希望向量 P 和 f 的值都是 1/N。

α 是一個(gè)超參數(shù),我們可以在訓(xùn)練過程中用它來微調(diào)這個(gè)輔助損失的重要性。如果 α 值過高,會(huì)影響主要損失函數(shù);如果 α 值過低,則無法有效進(jìn)行負(fù)載平衡。

05 視覺模型中的 MoE

MoE不僅僅是一種僅適用于語言模型的技術(shù)。視覺模型(如 ViT)使用基于 transformer 的架構(gòu),因此也有潛力使用 MoE。

簡(jiǎn)單回顧一下,ViT(Vision-Transformer)是一種將圖像分割成 patches 的架構(gòu),這些 patch 的處理方式與 token 類似。6

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這些 patchs(或 tokens)隨后會(huì)被投影到嵌入向量中(并加上位置嵌入向量),然后被送入常規(guī)的編碼器中:

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

一旦這些 patches 進(jìn)入編碼器,它們就像 tokens 一樣被處理,這使得這種架構(gòu)非常適合用于MoE。

5.1 Vision-MoE

Vision-MoE(V-MoE)是第一次在圖像模型中實(shí)現(xiàn) MoE 的嘗試。7它采用了我們之前看到的ViT,并將編碼器中的密集 FFNN 層替換為稀疏 MoE。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

這使得 ViT 模型(通常模型規(guī)模小于語言模型),可以通過添加專家網(wǎng)絡(luò)來進(jìn)行大規(guī)模擴(kuò)展。

為了減少硬件限制,每個(gè)專家網(wǎng)絡(luò)都設(shè)置了較小的預(yù)定義容量,因?yàn)閳D像通常包含許多 patch 。然而,低容量往往導(dǎo)致 patch 被丟棄(類似于 token 溢出)。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

為了保持較低的專家網(wǎng)絡(luò)容量,網(wǎng)絡(luò)會(huì)為每個(gè) patch 分配重要性分?jǐn)?shù),并優(yōu)先處理這些得分較高的 patches,這樣使得溢出的 patches 一般就不那么重要了。這種方法被稱為批量?jī)?yōu)先級(jí)路由(Batch Priority Routing)。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

因此,即使 token 的數(shù)量減少,我們?nèi)匀粦?yīng)該看到重要的 patch 被成功路由。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

優(yōu)先級(jí)路由(priority routing)可以集中處理最重要的 patches,從而減少處理的 patch 數(shù)量。

5.2 從稀疏 MoE 到軟 MoE

在 V-MoE 中,優(yōu)先級(jí)評(píng)分器(priority scorer)能夠幫助區(qū)分重要和不重要的 patch。然而,patch 被分配給每個(gè)專家網(wǎng)絡(luò)后,未被處理的 patch 中的信息就會(huì)丟失。

Soft-MoE 的目標(biāo)是通過混合 patch 來從離散的 patch(token)分配轉(zhuǎn)變?yōu)檐浄峙洹?

在第一步中,我們將輸入 x(patch 嵌入)與一個(gè)可學(xué)習(xí)的矩陣 Φ 相乘。這將生成路由器信息(router information),告訴我們某個(gè) token 與給定專家網(wǎng)絡(luò)的相關(guān)程度。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

然后,通過對(duì)路由器信息矩陣(按列)進(jìn)行 softmax 操作,從而更新每個(gè) patch 的嵌入向量。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

更新后的 patch 嵌入本質(zhì)上是所有 patch 嵌入的加權(quán)平均。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

從視覺上看,就好像所有的 patch 都被混合在一起。然后,這些合并后的 patch 會(huì)被發(fā)送給每個(gè)專家網(wǎng)絡(luò)。生成輸出后,它們?cè)俅闻c路由器矩陣相乘。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

路由器矩陣在 token 層面上影響輸入,在專家網(wǎng)絡(luò)層面上影響輸出。

因此,我們得到的是經(jīng)過處理的“軟” patch / token,而不是離散的輸入。

06 Mixtral 8x7B 的激活與稀疏參數(shù)對(duì)比

MoE 的一大亮點(diǎn)在于其計(jì)算需求。由于在給定時(shí)間內(nèi)只會(huì)使用部分專家網(wǎng)絡(luò),我們可以訪問的參數(shù)比我們正在使用的參數(shù)要多。

盡管給定的 MoE 有更多的參數(shù)需要加載(稀疏參數(shù)),但由于在推理過程中只使用部分專家網(wǎng)絡(luò)(活躍參數(shù)),因此實(shí)際激活的參數(shù)數(shù)量較少。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

換句話說,我們?nèi)匀恍枰獙⒄麄€(gè)模型(包括所有專家網(wǎng)絡(luò))加載到設(shè)備上(稀疏參數(shù)),但是當(dāng)我們進(jìn)行推理時(shí),只需要使用部分參數(shù)(活躍參數(shù))。MoE 模型在加載所有專家網(wǎng)絡(luò)時(shí)需要更多的 VRAM,但在推理過程中運(yùn)行得更快。

讓我們以 Mixtral 8x7B 為例,來探討稀疏參數(shù)與活躍參數(shù)的數(shù)量差異。9

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

在這里,我們可以看到每個(gè)專家網(wǎng)絡(luò)的參數(shù)量是 5.6B,而不是7B(有 8 個(gè)專家網(wǎng)絡(luò))。

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

我們將不得不加載 8x5.6B(46.7B)的參數(shù)(以及所有共享參數(shù)),但在推理過程中我們只需要使用 2x5.6B(12.8B)的參數(shù)。

07 Conclusion

我們的混合專家模型(MoE)學(xué)習(xí)之旅到此結(jié)束!希望這篇文章能讓你更好地理解這種有趣技術(shù)的潛力。現(xiàn)在,幾乎所有的模型系列都至少包含一個(gè) MoE 變體,感覺它已經(jīng)成為了主流。

想要查看更多與大語言模型(LLMs)相關(guān)的可視化內(nèi)容,請(qǐng)查看作者編寫的大語言模型書籍!

「混合專家模型」可視化指南:A Visual Guide to MoE-AI.x社區(qū)

書籍相關(guān)網(wǎng)站[3]。你可以在亞馬遜[4]上訂購(gòu)這本書。所有代碼都已上傳至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ā)展時(shí)間線。

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

本期互動(dòng)內(nèi)容 ??

?如果讓你用一個(gè)生活中的比喻來解釋 MoE 的工作原理,你會(huì)怎么比喻?歡迎在評(píng)論區(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??

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦