大模型面經(jīng)——MoE混合專家模型總結(jié) 原創(chuàng)
?本篇將介紹MoE(Mixture of Experts,混合專家模型)相關(guān)面試題。
以下是一個(gè)快捷目錄:
一、MoE介紹
二、MoE出現(xiàn)的背景
三、有哪些MoE模型
四、介紹稀疏 MoE 層
五、介紹門控網(wǎng)絡(luò)或路由
六、為什么門控網(wǎng)絡(luò)要引入噪聲呢
七、如何均衡專家間的負(fù)載
八、“專家”指什么
九、專家的數(shù)量對預(yù)訓(xùn)練有何影響?
十、什么是topK門控
十一、MoE模型的主要特點(diǎn)
十二、MoE和稠密模型的對比
十三、MoE的優(yōu)勢
十四、MoE的挑戰(zhàn)
十五、微調(diào)MoE的方法
十六、MoE的并行計(jì)算
回答
一、MoE介紹
"Mixture of Experts"(MoE)是一種機(jī)器學(xué)習(xí)模型,特別是在深度學(xué)習(xí)領(lǐng)域中,它屬于集成學(xué)習(xí)的一種形式。MoE模型由多個(gè)專家(experts)和一個(gè)門控網(wǎng)絡(luò)(gating network)組成。每個(gè)專家負(fù)責(zé)處理輸入數(shù)據(jù)的不同部分或不同特征,而門控網(wǎng)絡(luò)則負(fù)責(zé)決定每個(gè)輸入應(yīng)該由哪個(gè)專家來處理。
例如,在下圖中,“More”這個(gè) token 被發(fā)送到第二個(gè)專家,而“Parameters”這個(gè) token 被發(fā)送到第一個(gè)專家。
二、MoE出現(xiàn)的背景
本質(zhì)上來說就是一種高效的 scaling 技術(shù),用較少的 compute 實(shí)現(xiàn)更大的模型規(guī)模,從而獲得更好的性能。
三、有哪些MoE模型
Switch Transformers、Mixtral、GShard、DBRX、Jamba DeepSeekMoE 等等。
以Mixtral為例
Mixtral 是一個(gè)稀疏的專家混合網(wǎng)絡(luò)。它是一個(gè)decoder-only的模型,其中前饋塊從一組 8 個(gè)不同的參數(shù)組中選擇。在每一層,對于每個(gè)令牌,路由器網(wǎng)絡(luò)選擇其中兩個(gè)組(“專家”)來處理令牌并附加地組合他們的輸出。
混合專家層
這種技術(shù)在控制成本和延遲的同時(shí)增加了模型的參數(shù)數(shù)量,因?yàn)槟P椭皇褂妹總€(gè)令牌總參數(shù)集的一小部分。具體來說,Mixtral 總共有 46.7B 個(gè)參數(shù),但每個(gè)令牌只使用 12.9B 個(gè)參數(shù)。因此,它以與 12.9B 型號相同的速度和相同的成本處理輸入和生成輸出。
Mixtral 基于從開放 Web 中提取的數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練——同時(shí)培訓(xùn)專家和路由器。
四、介紹稀疏 MoE 層
稀疏 MoE 層一般用來替代傳統(tǒng) Transformer 模型中的前饋網(wǎng)絡(luò) (FFN) 層。MoE 層包含若干“專家”(例如 8 個(gè)),每個(gè)專家本身是一個(gè)獨(dú)立的神經(jīng)網(wǎng)絡(luò)。在實(shí)際應(yīng)用中,這些專家通常是前饋網(wǎng)絡(luò) (FFN),但它們也可以是更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),甚至可以是 MoE 層本身,從而形成層級式的 MoE 結(jié)構(gòu)。
五、介紹門控網(wǎng)絡(luò)或路由
門控網(wǎng)絡(luò)接收輸入數(shù)據(jù)并執(zhí)行一系列學(xué)習(xí)的非線性變換。這一過程產(chǎn)生了一組權(quán)重,這些權(quán)重表示了每個(gè)專家對當(dāng)前輸入的貢獻(xiàn)程度。通常,這些權(quán)重經(jīng)過softmax等函數(shù)的處理,以確保它們相加為1,形成了一個(gè)概率分布。這樣的分布表示了在給定輸入情境下每個(gè)專家被激活的概率。一個(gè)典型的門控函數(shù)通常是一個(gè)帶有 softmax 函數(shù)的簡單的網(wǎng)絡(luò)。
六、為什么門控網(wǎng)絡(luò)要引入噪聲呢
為了專家間的負(fù)載均衡。也即防止一句話中的大部分token都只有一個(gè)專家來處理,剩下的七個(gè)專家(假設(shè)一共八個(gè)專家)“無所事事”。
七、如何均衡專家間的負(fù)載
引入噪聲、引入輔助損失(鼓勵(lì)給予所有專家相同的重要性)、引入隨機(jī)路由、設(shè)置一個(gè)專家能處理的token數(shù)量上限
八、“專家”指什么
一個(gè)“專家”通常是前饋網(wǎng)絡(luò) (FFN)。數(shù)據(jù)經(jīng)過門控網(wǎng)絡(luò)選擇后進(jìn)入每個(gè)專家模型,每個(gè)專家根據(jù)其設(shè)計(jì)和參數(shù)對輸入進(jìn)行處理。每個(gè)專家產(chǎn)生的輸出是對輸入數(shù)據(jù)的一種表示,這些表示將在后續(xù)的步驟中進(jìn)行加權(quán)聚合。或者通過單個(gè)專家模型進(jìn)行處理。
九、專家的數(shù)量對預(yù)訓(xùn)練有何影響?
增加更多專家可以提升處理樣本的效率和加速模型的運(yùn)算速度,但這些優(yōu)勢隨著專家數(shù)量的增加而遞減 (尤其是當(dāng)專家數(shù)量達(dá)到 256 或 512 之后更為明顯)。同時(shí),這也意味著在推理過程中,需要更多的顯存來加載整個(gè)模型。值得注意的是,Switch Transformers 的研究表明,其在大規(guī)模模型中的特性在小規(guī)模模型下也同樣適用,即便是每層僅包含 2、4 或 8 個(gè)專家。
十、什么是topK門控
選擇前k個(gè)專家。為什么不僅選擇最頂尖的專家呢?最初的假設(shè)是,需要將輸入路由到不止一個(gè)專家,以便門控學(xué)會如何進(jìn)行有效的路由選擇,因此至少需要選擇兩個(gè)專家。
十一、MoE模型的主要特點(diǎn):
- 靈活性:每個(gè)專家可以是不同類型的模型,例如全連接層、卷積層或者遞歸神經(jīng)網(wǎng)絡(luò)。
- 可擴(kuò)展性:通過增加專家的數(shù)量,模型可以處理更復(fù)雜的任務(wù)。
- 并行處理:不同的專家可以并行處理數(shù)據(jù),這有助于提高模型的計(jì)算效率。
- 動態(tài)權(quán)重分配:門控網(wǎng)絡(luò)根據(jù)輸入數(shù)據(jù)的特點(diǎn)動態(tài)地為每個(gè)專家分配權(quán)重,這樣模型可以更加靈活地適應(yīng)不同的數(shù)據(jù)。
- 容錯(cuò)性:即使某些專家表現(xiàn)不佳,其他專家的表現(xiàn)也可以彌補(bǔ),從而提高整體模型的魯棒性。
十二、moe和稠密模型的對比
1、預(yù)訓(xùn)練
相同計(jì)算資源,MoE 模型理論上可以比密集模型更快達(dá)到相同的性能水平。
2、推理
moe:高顯存,高吞吐量;
稠密模型:低顯存,低吞吐量
十三、moe的優(yōu)勢
1、訓(xùn)練優(yōu)勢:預(yù)訓(xùn)練速度更快;
2、推理優(yōu)勢:推理速度更快
十四、moe的挑戰(zhàn)
1、訓(xùn)練挑戰(zhàn):微調(diào)階段,泛化能力不足,容易過擬合
2、推理挑戰(zhàn):對顯存的要求更高
十五、微調(diào)moe的方法
1、凍結(jié)所有非專家層的權(quán)重,專門只訓(xùn)練專家層
2、只凍結(jié)moe層參數(shù),訓(xùn)練其它層的參數(shù)
十六、moe的并行計(jì)算
圖片來源:b站 算法豬立業(yè)
參考資料
??https://blog.csdn.net/2201_75499313/article/details/136412787??
??https://www.zhihu.com/question/634844209/answer/3467132890??
??https://zhuanlan.zhihu.com/p/674698482??
?
文轉(zhuǎn)載自公眾號瓦力算法學(xué)研所,作者:喜歡瓦力的卷卷
