返回首頁

GitHub Repo

Transformers 提出 HSDP 與專家平行整合,調整 MoE 梯度同步

Transformers 於 11 月 3 日出現開發草案,讓混合分片資料平行與專家平行共同運作,並調整專家梯度的跨副本同步及縮放。提案仍依賴另一個開發分支,尚未合併或完成審查。

Marcus Qwertyus · Public domain · Image source
zh-Hant

Hugging Face Transformers 成員於 11 月 3 日提出 PR #50293,嘗試讓混合分片資料平行(HSDP)與專家平行共同運作。草案移除 dp_replicate_size > 1 且 ep_size > 1 時拒絕執行的檢查,同時調整專家參數的分片與梯度處理。截至查核時,提案仍為 Draft,合併目標是 hsdp 開發分支,並依賴另一份提案,不能視為正式版本已支援。來源:開發提案

這項工作的背景是多種平行策略如何共享裝置群組。PyTorch 官方教學將 HSDP 描述為二維配置:在主機內使用 FSDP 分片,跨主機則採資料平行複製。DeviceMesh 負責管理各維度的通訊群組,也能切出子網格,供不同平行策略使用。對需要同時安排一般模型層與專家層的訓練程式而言,裝置配置必須與梯度同步範圍一致。來源:PyTorch 教學

依提交說明,當資料平行副本數大於一,負責 token 分派的專家會改用 (dp_replicate, efsdp) 二維網格分片;一般稠密模組則使用 (dp_replicate, fsdp)。專家梯度也會跨副本執行 all-reduce,並除以 dp_size。作者指出,增加副本後參與計算的批次數也隨之增加,因此需要相應縮放,並稱這與 torchtitan 的做法一致。來源:提交說明

從設計推論,這讓 MoE 訓練有機會組合專家分工與資料副本擴展;實際吞吐、記憶體需求和數值一致性仍須量測。公開提案尚未呈現效能基準,頁面亦顯示沒有審查。工程團隊接下來應追蹤基底分支是否合併,並驗證不同副本數、專家平行度與梯度累積設定下的結果,尤其是縮放是否維持預期的有效批次語義。來源:提案狀態

來源

  1. [`distributed`] Support HSDP with expert parallelism — PR #50293
  2. Getting Started with DeviceMesh