返回首頁

AI 基礎設施

NVIDIA 公布 MoE 訓練測試,八張 B200 最佳配置達基準 2.21 倍

BioNeMo 結合分組專家運算、專家平行與 MXFP8,提高特定訓練負載的吞吐量。最快配置同時改變精度與平行策略,收益仍須連同收斂品質評估。

Strubbl · CC BY-SA 4.0 · Image source
zh-Hant

NVIDIA 於 9 月 24 日公布 BioNeMo 混合專家(MoE)訓練流程與測速:八張 B200 執行 Mixtral-8x7B 時,最佳設定達每張 GPU 每秒 9,050 個 token,約為文中 Hugging Face 基準的 2.21 倍。這是官方針對特定訓練組合公布的吞吐量結果,尚未證明生物任務能以同比例縮短達到目標品質的時間。[官方測試](https://developer.nvidia.com/blog/efficient-moe-training-for-biological-foundation-models/)

比較表也揭示收益來源不能混算。基準採 BF16 與八卡完全分片資料平行,吞吐量為 4,096;保留相同精度與平行設定、改用 Transformer Engine 後為 4,447,約提高 8.6%。9,050 的設定同時換成專家平行與 MXFP8,因此 2.21 倍反映整套配置差異,無法單獨歸因於核心融合。[比較條件](https://developer.nvidia.com/blog/efficient-moe-training-for-biological-foundation-models/)

MoE 雖然每個 token 只選部分專家,仍可能因零碎核心啟動與跨卡交換拖慢訓練。BioNeMo 的模型實作以分組線性運算處理專家,再把專家權重沿專家維度切分到不同 GPU;資料平行與專家平行可組成二維配置。預設派送器透過 NCCL 交換 token,較進階路徑另需 DeepEP 與 GPU 間的 NVLink 存取。[模型文件](https://docs.nvidia.com/bionemo-recipes/latest/main/recipes/models/mixtral/)

MXFP8 以每 32 個數值共用一個縮放因子,改善八位元表示的數值範圍。數值採四位元指數、三位元尾數,縮放因子則以八位元儲存二的冪次。其轉置不能只重排位元:不同方向的區塊需要重新量化,Transformer Engine 因而從原始高精度輸入建立兩種方向的副本。這也說明八位元計算不代表整個訓練程序的記憶體用量直接減半。[精度與轉置說明](https://nvidia.github.io/TransformerEngine/examples/fp8_primer.html)

模型文件也允許逐層選擇精度,並提供權重格式轉換及輸出比較流程。研究者可先檢查轉換前後的結果,再逐步啟用低精度與跨卡功能,縮小數值偏差的排查範圍。[轉換與驗證](https://docs.nvidia.com/bionemo-recipes/latest/main/recipes/models/mixtral/)

公開程式庫將這些流程定位為可修改的參考實作;硬體支援也有邊界,MXFP8 表列支援計算能力 10.0、10.3,12.0 仍待加入。工程團隊重驗時應固定提交、套件、序列長度、批次與路由設定,並追蹤損失曲線、驗證品質及通訊占比。只有把吞吐量與達標所需步數一起量測,才能判斷低精度與專家分片是否降低完整訓練成本。[程式庫及支援表](https://github.com/NVIDIA-BioNeMo/bionemo-recipes)

來源

  1. Efficient MoE Training for Biological Foundation Models
  2. Mixtral Optimized with NVIDIA TransformerEngine
  3. Using FP8 and FP4 with Transformer Engine
  4. NVIDIA-BioNeMo/bionemo-recipes