為DeepSeek MoE模型帶來「免費午餐」加速,專家鏈可大幅提升LLM的信息處理能力
我們都知道,DeepSeek-R1 的訓(xùn)練過程使用了一種名為專家混合模型(Mixture-of-Experts, MoE)的技術(shù),而當(dāng)前的 MoE 技術(shù)依然還有顯著的優(yōu)化空間。
近日,美國西北大學(xué)計算機科學(xué)博士生王子涵(Zihan Wang)等人在這個方向上取得了突破,提出了一種名為專家鏈(CoE)的技術(shù)。實驗表明,CoE 在性能、擴展策略、資源效率和專家使用效率等多個方面都顯著超越先前的 MoE 模型。
目前,核心研究者王子涵已經(jīng)撰寫并發(fā)布 CoE 的中英文博客并已經(jīng)在 GitHub 開源相關(guān)代碼,他也在博客中表示研究論文將在近期發(fā)布。以下為相關(guān)鏈接:
- 代碼:https://github.com/ZihanWang314/coe
- 中文報告:https://sandy-server-87f.notion.site/1ab9bb750b79801bbfebf01ae9a77b3f
- 英文報告:https://sandy-server-87f.notion.site/Chain-of-Experts-Unlocking-the-Communication-Power-of-MoEs-1ab9bb750b7980048d43e6aab3537cea
機器之心授權(quán)轉(zhuǎn)載了其中文報告。
作者簡介:王子涵,美國西北大學(xué)計算機科學(xué)博士一年級學(xué)生,導(dǎo)師為 Manling Li。他本科畢業(yè)于中國人民大學(xué)高瓴人工智能學(xué)院,并曾參與過 DeepSeek-V2 模型的開發(fā)工作。
引言
我們提出專家鏈 (Chain-of-Experts,CoE) 架構(gòu),一種通過在單層內(nèi)實現(xiàn)專家間串行通信的創(chuàng)新方法,從根本上改變稀疏神經(jīng)網(wǎng)絡(luò)的信息處理方式。
MoE 設(shè)計中存在專家間獨立處理以及顯存需求高的問題。與先前 MoE 獨立處理每個 token 不同,CoE 引入迭代機制使專家能夠 "溝通",在其他專家的輸出之上處理 token。
實驗證明 CoE 在多個方面顯著超越先前 MoE 模型。性能顯著提升,CoE 兩次迭代在 Math 任務(wù)上將驗證 loss 從 1.20 降至 1.12;擴展策略優(yōu)勢,CoE 中擴展兩次迭代性能相當(dāng)于將專家選擇數(shù)量擴大 3 倍,并優(yōu)于擴展模型層數(shù);資源效率優(yōu)化,相似表現(xiàn)下減少了 17.6-42% 的內(nèi)存需求;專家組合自由度提升了 823 倍;專家使用效率增強,促進了專家間的直接通信和更好的專家分化。這些優(yōu)勢構(gòu)成了一種罕見的 "免費午餐" 效應(yīng),為大規(guī)模語言模型的高效擴展開辟了新途徑。
Chain-of-Experts:釋放 MoE 專家的溝通潛能
大型語言模型(LLMs)不斷推動人工智能可能性的邊界,但高效擴展這些模型仍然是一個重大挑戰(zhàn)。專家混合(Mixture of Experts,MoE)模型作為一種有前景的方法出現(xiàn),通過每個 token 僅激活部分參數(shù)來解決這一挑戰(zhàn),理論上實現(xiàn)更高效的擴展。然而,MoE 模型存在以下局限性:
- 獨立標(biāo)記處理:MoE 模型通常并行獨立處理 token,專家之間沒有溝通。
- 內(nèi)存效率低下:由于具有稀疏激活模式,MoE 整體參數(shù)數(shù)量較大,需要大量內(nèi)存資源。
Chain-of-Experts (CoE) 介紹
我們的研究引入了 Chain-of-Experts (CoE),這是一種改變稀疏神經(jīng)網(wǎng)絡(luò)處理信息方式的新方法。
Chain-of-Experts 的形式化表述
CoE 的關(guān)鍵創(chuàng)新在于建立溝通性處理機制,超越了先前 MoE 模型中的獨立標(biāo)準(zhǔn)處理。我們?nèi)绾螌崿F(xiàn)這一點?通過在單個層的迭代中將 MoE 輸出反饋為多次迭代的輸入。
1、先前 MoE 的輸出表示
在先前的 MoE 層中,不考慮共享專家,輸出可以表示為:
其中 x 是輸入, 是門控值(路由函數(shù)分配給專家
的權(quán)重),K 是每個 token 選擇的專家數(shù)量,N 是每層專家總數(shù),
是專家 i 的路由參數(shù)。
考慮共享專家時,路由函數(shù)計算不變,MoE 的輸出變?yōu)?/span>
其中 M 是共享專家的總數(shù),是共享專家。
2、CoE 的迭代處理機制
在 CoE 中,我們引入迭代處理機制,可以形式化表示為:
其中 是第 t 次迭代的中間表示,
是第 t 次迭代中專家 i 的門控值,C 是迭代的總次數(shù),
是第 i 個專家,
是殘差連接指示變量,當(dāng)使用內(nèi)殘差時
,否則為0。
考慮到共享專家,可以形式化表示為:
3、門控機制詳細說明
參考 DeepSeek-V2 的實現(xiàn),我們定義門控機制為:
其中,我們?yōu)槊看蔚褂锚毩㈤T控,采用不同的路由函數(shù),K/C 是每次迭代選擇的專家數(shù)量(以保持總計算量不變), 是第 t 次迭代中專家 i 的路由參數(shù)。
方法分析
1、CoE 的優(yōu)勢
這種迭代式專家處理方法具有兩個關(guān)鍵優(yōu)勢:
- 每次迭代的專家選擇由前一次迭代的輸出決定,形成專家間的依賴關(guān)系和更動態(tài)的路由機制
- 串行信息可以在迭代過程中累積,實現(xiàn)專家間的直接通信
通過這種方式,CoE 能夠在保持計算效率的同時,顯著提高模型的表現(xiàn),特別是在復(fù)雜的場景中(如實驗采用的數(shù)學(xué)任務(wù))。
2.路由函數(shù)如何影響決策過程
在 CoE 模型中,路由函數(shù)對決策過程的影響是多層次的:
- 動態(tài)專家選擇:在每次迭代 t 中,
基于前一次迭代的輸出
來決定當(dāng)前迭代中哪些專家應(yīng)該被激活以及它們的權(quán)重。
- 信息流控制:路由函數(shù)控制了信息如何在專家網(wǎng)絡(luò)中流動,通過在每次迭代中重新評估路由決策,確保信息能夠流向最相關(guān)的專家。
- 適應(yīng)性處理:隨著迭代的進行,路由函數(shù)可以調(diào)整其路由策略,根據(jù)先前迭代的處理結(jié)果來優(yōu)化后續(xù)專家的選擇。
實驗結(jié)果與發(fā)現(xiàn)
我們采取 DeepSeekV2 結(jié)構(gòu),在 500M 級別 MoE 下使用 32K Tok 的 batch size 訓(xùn)練 1000 步,完成了一系列實驗來驗證 CoE 的有效性。單次訓(xùn)練使用一張 H100 約為 30 分鐘,使用一張 4090 約為 2 小時。更多實驗細節(jié)見后。
我們的實驗方法命名為,例如 CoE-2 (4/64) 代表使用 CoE,循環(huán)次數(shù)為 2,每次選取 4 個專家,每層一共有 64 個專家。我們在所有實驗中設(shè)置共享專家的數(shù)量為 1,在迭代次數(shù)為 2 的情況下,這會提高 5% 左右的計算需求。
效果優(yōu)勢
1、 在算力預(yù)算與顯存預(yù)算相似時,CoE 效果明顯更優(yōu)。
在 Math 任務(wù)上進行預(yù)訓(xùn)練 (步數(shù) 1000),CoE-2 (4/64) 的效果明顯優(yōu)于 MoE (8/64),在相似的算力和內(nèi)存要求下,將 loss 從 1.20 下降至 1.12,且有更陡峭的下降趨勢。
我們進一步在 “dense”(專家 8 選 8)模型上也測試了 CoE,證明了串行處理在 Sparse MoE 上相比 Dense 模型更有效,CoE 是 (Fine-Grained) Sparse MoE 的專屬方法。如圖所示,采取 2 次序列化處理對 Dense 模型性能沒有顯著益處。
資源效率
1、在計算量和效果相似的情況下,CoE 可以減小對顯存的要求。
例如,CoE-2 (4/48) 的效果與 MoE (8/64) 相近,但使用更少的總專家數(shù)量。
如下圖所示,loss match 的情況下減小了 17.6% 的顯存需求。
(注,我們記錄了 GPU memory allocated,與 micro_bsz=1 的時候理論最小顯存相關(guān),實際上因為實驗中使用了較大的 batch size,使用的顯存會更大)
2、在預(yù)算相似的情況下,CoE 是更好的計算擴展方式。
我們對比了 CoE 和其他計算擴展方法:拓展模型層數(shù)與拓展專家選擇個數(shù)。
a) 拓展迭代次數(shù) (CoE) > 拓展模型層數(shù)
CoE-2 (8/64),4 層 vs MoE (8/64),8 層 / 12 層,8 層 MoE 和 CoE 效果幾乎相同,但是對 Memory 要求高 72%,即 CoE 相對節(jié)省了 42% memory。
b) 拓展迭代次數(shù) (CoE)> 拓展專家選擇個數(shù)
CoE-2 (8/64),4 層 vs MoE (16/64) 或 MoE (24/64),4 層,Memory 和 Compute 要求一致,CoE 效果更好。
3、架構(gòu)設(shè)計的關(guān)鍵發(fā)現(xiàn)
a. 獨立門控機制
獨立門控機制可以提升模型性能,能從一定程度上解釋專家的分化,表明同一專家在不同迭代階段處理不同類型的信息。
我們實現(xiàn)了共享門控的 CoE 變種,使用共享的 而非
,具體而言:
發(fā)現(xiàn)效果差于 CoE,甚至差于沒有拓展規(guī)模的 MoE,如下圖所示,體現(xiàn)獨立門控機制的重要性。
b. 殘差連接
內(nèi)殘差連接 (inner residual) 比外殘差連接 (outer residual) 更有效,這表明每組專家對 token 的串行處理實際上是在提高模型的有效深度,每個專家的處理都在更好地學(xué)習(xí)殘差。
我們實現(xiàn)了外殘差連接的變種,將 設(shè)置為 0,層內(nèi)迭代處理結(jié)束后再連接殘差,具體而言:
發(fā)現(xiàn)效果差于 CoE 且與 MoE 相當(dāng),如下圖所示,體現(xiàn)內(nèi)殘差連接的重要性。
理論觀察:免費午餐效應(yīng)
最顯著的是,CoE 或許提供了我們稱之為 "免費午餐" 加速。通過重構(gòu)信息在模型中的流動方式,與以往 MoE 方法相比,我們以更少的計算開銷實現(xiàn)了更好的結(jié)果。我們認為這種效果可能來自于三個因素:
1. 專家選擇的自由度提高。,選擇的可能性變多
2. CoE 統(tǒng)一了串行處理 (sequential processing) 和專家通信 (expert communication) 兩個概念:
- 不同專家之間可以串行處理,提高了 Transformer 的有效深度。兩次前向傳播送到不同專家時,增強了專家的串行特征 — 處理同一個 token 的路由專家數(shù)相同,但是是串行地處理。
- 一個專家在迭代過程中有機會處理一個 token 多次,可能有助于促進專家的分化:一個專家與其他專家合作處理后,可以在后續(xù)迭代對 token 進行補充處理。
實驗細節(jié)
1、數(shù)據(jù)集
實驗使用的數(shù)據(jù)集為 MetaMathQA (鏈接:https://huggingface.co/datasets/meta-math/MetaMathQA ),該數(shù)據(jù)為從 GSM8K 和 MATH 數(shù)據(jù)集中增強而來,不含網(wǎng)絡(luò)獲取的通用數(shù)據(jù)。
2、模型配置
我們基于 DeepSeek-V2-Lite 架構(gòu),設(shè)置總參數(shù)為 544MB(不含 embedding)的模型,實現(xiàn)了 CoE 方法,主要配置參數(shù)如下:
- 基礎(chǔ)模型參數(shù):隱藏層大?。?024,隱藏層數(shù)量:4,注意力頭數(shù):8
- MoE 相關(guān)參數(shù):路由專家總數(shù):63,共享專家數(shù)量:1,每個 token 選擇的專家數(shù)量:8 (routed) + 1 (Shared),MoE 中間層大?。?04,MoE 層頻率:1 (每層都是 MoE 層)
- CoE 特有參數(shù):迭代次數(shù):2,殘差連接方式:內(nèi)部連接,獨立門控機制:開啟 (每次迭代使用不同的路由函數(shù))
3、訓(xùn)練設(shè)置
- 批量大小 (batch size):64,序列長度:512,訓(xùn)練步數(shù):1000,優(yōu)化器:AdamW,學(xué)習(xí)率:3e-4,學(xué)習(xí)率調(diào)度:10% Warmup,betas: [0.9, 0.95] weight_decay: 0.01 warmup_steps_ratio: 0.1 clip_grad: 1.0。
4、系統(tǒng)設(shè)置
訓(xùn)練采取改版后的 veRL 架構(gòu)(微調(diào)了原版實現(xiàn)),代碼參考 https://github.com/ZihanWang314/coe,實驗都在多個單張 H100 的服務(wù)器上進行。每組實驗在 1 小時以內(nèi)完成。
結(jié)論
Chain-of-Experts 代表了高效、高性能語言模型發(fā)展的重要一步。通過在稀疏神經(jīng)網(wǎng)絡(luò)中實現(xiàn)溝通處理,CoE 解決了當(dāng)前 MoE 架構(gòu)中的基本限制,同時以更少的計算需求提供優(yōu)越的性能。
這項研究為高效擴展語言模型開辟了新途徑,可能使先進的人工智能能力更加普惠和可持續(xù)。
未來工作
1. 擴展法則研究:提高模型尺寸、預(yù)訓(xùn)練步數(shù)、批量大小,測試不同數(shù)據(jù)集等。目前使用數(shù)學(xué)數(shù)據(jù)集是因為其推理復(fù)雜性具有挑戰(zhàn)性,但計劃在通用數(shù)據(jù)集上進行測試。
2. 進一步評估:
- 測試模型的實際任務(wù)表現(xiàn)而非僅限于評估損失
- 擴展循環(huán)次數(shù):目前只測試了循環(huán)次數(shù) = 2,探索 3、4 次等是否有效
- 進一步評估共享專家對 CoE 的作用
3. 架構(gòu)創(chuàng)新:
- 基于循環(huán)告訴我們一個專家可以使用多次的原理,探索是否可以實現(xiàn)所有層共享專家的 MoE Transformer,并分層選擇專家
- 例如,DeepSeekV2Lite 有 27 層,每層 64 個專家,目前每層選 6 個路由專家有約 7×10? 種組合,而如果每一層過 MoE 時,都從全部 27×64 個專家中選擇,一共將有 3×101? 種可能的組合
局限性
- 雖然理論上 TFLOPs 保持一致,但實際訓(xùn)練時間會略微增加,因為單次迭代選擇更少專家減小了矩陣乘法并行度。未來工作可能需要進行底層適配。
- 該方法需要從頭預(yù)訓(xùn)練而不能簡單地適配現(xiàn)有模型,限制了大眾研究者的應(yīng)用。
- 模型更大時,多節(jié)點 EP 通信開銷也需要納入考慮;當(dāng)前架構(gòu)基于 DeepSeekV2,與 V3 的模型架構(gòu)兼容,但 V3 中實現(xiàn)的 MTP、FP8 等訓(xùn)練架構(gòu)尚未測試,兼容性未知。
這篇博客文章基于我們關(guān)于 Chain-of-Experts (CoE) 的研究論文。有關(guān)更多技術(shù)細節(jié)和實驗結(jié)果,請關(guān)注我們即將發(fā)布的完整論文。
貢獻者
Zihan Wang*
Rui Pan*
Lu Yin*
Manling Li*
Shiwei Liu*
* 共同作者。ZW 和 SL 發(fā)起了項目。LY 探索了 MoE 內(nèi)層處理機制。ZW 提出了串行專家和 CoE 概念,實現(xiàn)了代碼并進行了實驗。SL 提出了獨立門控機制。RP 探索了層間重要性并貢獻了數(shù)據(jù)集。ML 進行了實驗指導(dǎo)并提供了云計算服務(wù)。ZW 和 ML 準(zhǔn)備了報告和可視化材料。