AI 程式開發工具公司 Cursor 公開混合專家模型(Mixture-of-Experts,MoE)訓練核心 Mixture-of-Kittens(MoK),目標是改善專家模型分散於多顆 GPU 時所產生的資料傳輸與同步瓶頸。Cursor 表示,MoK 已應用於旗下程式開發模型 Composer 的訓練,內部測試顯示,在 512 顆 GPU、橫跨數座 GB300 NVL72 機櫃的環境中,單顆 GPU 每秒處理的 token 數由 760.9 提升至 1,070.2,整體訓練吞吐量約增加 41%。
MoE 模型的瓶頸從運算轉向通訊
混合專家模型會把輸入資料分配給多個專家子模型,讓每個 token 僅交由少數專家處理,而不是讓所有專家同時參與運算。這種架構可在維持較大模型容量的同時,降低單次輸入所需的實際運算量。
然而,當專家子模型分散在不同 GPU 上時,系統必須頻繁將 token 傳送至相應的專家,並在運算完成後取回結果。Cursor 指出,依工作負載與訓練設定不同,Composer 的混合專家層可能占整體訓練時間一半以上,資料傳輸與同步等待所耗用的時間甚至可能接近實際運算時間。
MoK 將派送、傳輸與運算整合
MoK 的核心作法,是把資料派送、跨 GPU 傳輸、專家子模型運算,以及結果合併等工作集中到單一大型 GPU 核心程式中執行。Cursor 表示,此設計可減少反覆啟動不同程式,以及各階段之間等待同步所造成的額外成本。
在資料傳輸流程上,MoK 讓需要資料的 GPU 主動讀取內容,完成專家運算後,再把結果送回來源 GPU。相較於需要多顆 GPU 彼此確認傳輸狀態的方式,這種設計可降低協調資料傳輸所需的成本。
以環狀緩衝區降低 CPU 等待
由於每次送往不同專家子模型的資料量並不固定,傳統方法可能需要先由中央處理器確認資料數量,再配置相應記憶體。這個流程可能使資料傳輸與 GPU 運算互相等待。
MoK 改用固定大小的環狀緩衝區。資料處理完成後,系統便立即重複使用相關空間,使資料傳輸與 GPU 運算能夠持續交錯進行,藉此減少等待中央處理器處理記憶體配置的時間。
支援 BF16 與 MXFP8,強調可重現性
除了效能設計,Cursor 也讓 MoK 固定每次浮點運算的執行順序,使相同輸入能產生完全一致的結果。這項特性有助於研究人員比較不同模型訓練方法,降低因運算順序差異而造成結果變動的影響。
MoK 支援 BF16 與 MXFP8 兩種運算精度,主要針對 DeepSeek-V3 類型的混合專家模型架構。Cursor 已公開 MoK 程式碼及單一混合專家層的效能測試程式碼,並表示將持續維護該專案。
GB300 NVL72 測試結果
在 GB300 NVL72 系統進行的單一混合專家層測試中,Cursor 表示,MoK 使用 MXFP8 精度時,正向傳播吞吐量最高達到公開可取得最快基準方案的 2.37 倍;反向傳播吞吐量最高則達到 1.78 倍。
| 測試項目 | 結果 |
|---|---|
| Composer 訓練環境 | 512 顆 GPU,橫跨數座 GB300 NVL72 機櫃 |
| 單顆 GPU 每秒 token 數 | 由 760.9 提升至 1,070.2 |
| 整體訓練吞吐量 | 提升約 41% |
| MXFP8 正向傳播吞吐量 | 最高為公開最快基準方案的 2.37 倍 |
| MXFP8 反向傳播吞吐量 | 最高為公開最快基準方案的 1.78 倍 |
上述數據來自 Cursor 在特定 GB300 NVL72 與 Composer 訓練設定下的測試,實際效能仍可能受到模型架構、GPU 規模、資料分布、運算精度及工作負載等因素影響。MoK 的公開程式碼與測試工具,則為後續檢視其在不同硬體與模型配置中的表現提供基礎。




