Abstract
在大型語言模型時(shí)代,Mixture-of-Expert (MoE) 是一種很有前途的架構(gòu),用于在擴(kuò)展模型參數(shù)時(shí)管理計(jì)算成本。然而,像GShard這樣傳統(tǒng)MoE架構(gòu)從N個專家激活topk個,在確保專家專業(yè)化方面面臨挑戰(zhàn),即每個專家都獲得不重疊和聚焦的知識。作為改進(jìn),提出了 DeepSeekMoE 架構(gòu),以實(shí)現(xiàn)最終的專家專業(yè)化。它涉及兩個主要策略:(1)將專家精細(xì)分割為mN個,并從中激活mk個,從而允許更靈活地組合激活的專家;(2) 隔離出1個共享專家,旨在捕獲常識并減少路由專家的冗余。從具有 2B 、16B,145B參數(shù)的適度規(guī)模開始,我們證明 DeepSeekMoE 2B 的性能
1 Introduction
最近的研究和實(shí)驗(yàn)表明,在有足夠可用的訓(xùn)練數(shù)據(jù)的情況下,使用增加參數(shù)和計(jì)算預(yù)算來擴(kuò)展語言模型可以產(chǎn)生非常強(qiáng)大的模型,但是計(jì)算成本太高了,MoE可以降低計(jì)算成本并達(dá)到同樣的效果。
傳統(tǒng)的MoE也存在一些問題,存在知識混合和知識冗余的問題,限制了專家的專業(yè)性。
傳統(tǒng)的 MoE 架構(gòu)用 MoE 層取代了 Transformer 中的FFN。每個 MoE 層由多個專家組成,每個專家在結(jié)構(gòu)上與標(biāo)準(zhǔn) FFN 相同,并且為每個token分配給一到兩名專家(分配專家給的是token不是sequense)。這種架構(gòu)表現(xiàn)出兩個潛在的問題:(1)知識混合性:現(xiàn)有的架構(gòu)實(shí)現(xiàn)部署有限數(shù)量的專家(例如,8 或 16 人),因此分配給特定專家的代幣可能會涵蓋不同的知識。(2)知識冗余:分配給不同專家的代幣可能需要常識。
提出了DeepSeekMoE架構(gòu),使專家更專業(yè):1)Fine-Grained Expert Segmentation:在保持參數(shù)數(shù)量不變的同時(shí),通過拆分 FFN 中間隱藏維度,將專家細(xì)分為更細(xì)粒度。2)Shared Expert Isolation:我們將某些專家隔離為共享專家,這些專家始終被激活,旨在捕獲和鞏固不同背景下的常識。通過將常識壓縮到這些共享專家中,將減少其他路由專家之間的冗余。
DeepSeekMoE的創(chuàng)新點(diǎn)如下:
- 架構(gòu)創(chuàng)新。一種創(chuàng)新的 MoE 架構(gòu),旨在實(shí)現(xiàn)最終的專家專業(yè)化,它采用了細(xì)粒度專家分割和共享專家隔離兩種主要策略。
- 經(jīng)驗(yàn)驗(yàn)證。進(jìn)行了廣泛的實(shí)驗(yàn),以實(shí)證驗(yàn)證 DeepSeekMoE 架構(gòu)的有效性。
- 可擴(kuò)展性。放大了 DeepSeekMoE 來訓(xùn)練 16B 模型,并表明只需大約 40% 的計(jì)算,DeepSeekMoE 16B 就實(shí)現(xiàn)了與 DeepSeek 7B 和 LLaMA2 7B 相當(dāng)?shù)男阅堋?/li>
- MoE對齊。我們成功地對 DeepSeekMoE 16B 進(jìn)行了SFT,以創(chuàng)建對齊的聊天模型,展示了 DeepSeekMoE 16B 的適應(yīng)性和多功能性。
? 公開發(fā)布。發(fā)布了 DeepSeekMoE 16B 的模型檢查點(diǎn)。值得注意的是,該模型可以部署在具有 40GB 內(nèi)存的單個 GPU 上,無需量化。
2 Preliminaries: Mixture-of-Experts for Transformers
通用MoE架構(gòu)
3 DeepSeekMoE Architecture

3.1 Fine-Grained Expert Segmentation
為了追求目標(biāo),在保持專家參數(shù)數(shù)量和計(jì)算成本一致的同時(shí),以更細(xì)粒度的細(xì)分專家。具體來說,在圖(a)所示的典型 MoE 架構(gòu)之上,每個專家 FFN 分割成 m 個較小的專家,方法是將 FFN 中間隱藏維度減小到其原始大小的 1/m 倍。由于每個專家變得更小,作為回應(yīng),我們還將激活的專家數(shù)量增加到m倍以保持相同的計(jì)算成本,如圖(b)所示。
3.2. Shared Expert Isolation
使用傳統(tǒng)的路由策略,分配給不同專家的token可能需要一些常識或信息。因此,多個專家可能會匯聚在獲取各自參數(shù)的共享知識時(shí),從而導(dǎo)致專家參數(shù)的冗余。但是,如果有共享專家致力于在不同環(huán)境中捕獲和整合共同知識,則其他路由專家之間的參數(shù)冗余將得到緩解。這種冗余的減少將有助于使用更專業(yè)的專家來建立更具參數(shù)效率的模型。
為了實(shí)現(xiàn)該目標(biāo),除了細(xì)粒度的專家細(xì)分策略外,我們還進(jìn)一步隔離了Ks專家作為共享專家。無論路由器模塊如何,每個token都將確定性地分配給這些共享專家。為了保持恒定的計(jì)算成本,其他路由專家中激活的專家數(shù)量將減少Ks個,如圖(c)所示
3.3. Load Balance Consideration
自動學(xué)習(xí)的路由策略可能會遇到負(fù)載不平衡的問題,這體現(xiàn)了兩個明顯的缺陷。首先,存在路由崩潰的風(fēng)險(xiǎn),即模型總是只選擇少數(shù)專家,從而阻止其他專家進(jìn)行充分的訓(xùn)練。其次,如果專家分布在多個設(shè)備上,負(fù)載不平衡會加劇計(jì)算瓶頸。
Expert-Level Balance Loss。為了降低路由崩潰的風(fēng)險(xiǎn),我們還采用了專家級平衡損失。損失的計(jì)算如下:

Device-Level Balance Loss。除了專家級平衡損失外,我們還引入了設(shè)備級平衡損失。當(dāng)旨在緩解計(jì)算瓶頸時(shí),沒有必要在專家級別強(qiáng)制執(zhí)行嚴(yán)格的平衡約束,因?yàn)閷ω?fù)載平衡的過度約束會損害模型性能。相反,我們的主要目標(biāo)是確保跨設(shè)備進(jìn)行平衡計(jì)算。如果我們將所有路由的專家劃分為組 {E1, E2, ..., ED},并將每個組部署在單個設(shè)備上,則設(shè)備級平衡損失的計(jì)算方法如下

在實(shí)踐中,我們設(shè)置了一個較小的專家級平衡因子來降低路由崩潰的風(fēng)險(xiǎn),同時(shí)設(shè)置一個較大的設(shè)備級平衡因子以促進(jìn)跨設(shè)備的平衡計(jì)算。
6 Alignment for DeepSeekMoE 16B
先前的研究表明,MoE 模型通常不會從微調(diào)中獲得顯著收益。然而,Shen 等人提出的研究結(jié)果表明,MoE 模型確實(shí)可以從指令調(diào)優(yōu)中受益。為了評估 DeepSeekMoE 16B 是否能夠從微調(diào)中受益,我們進(jìn)行了監(jiān)督微調(diào),構(gòu)建了基于 DeepSeekMoE 16B 的聊天模型。實(shí)驗(yàn)結(jié)果表明,DeepSeekMoE Chat 16B 也實(shí)現(xiàn)了與 LLaMA2 SFT 7B 和 DeepSeek Chat 7B 相當(dāng)?shù)男阅堋?/p>