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