返回首頁

GitHub Repo

Transformers 回報 Qwen3-MoE 損失縮放問題,多卡訓練可能放大路由輔助權重

10 月 19 日的 Transformers 追蹤回報指出,特定 Trainer 設定可能讓 Qwen3-MoE 的路由輔助損失隨資料平行程序數放大。專案成員已回應分析,但現有實測來自固定舊版本,尚無已合併修補或正式修復版本。

Andrew Wippler from Lancaster, USA · CC BY 2.0 · Image source
zh-Hant

Transformers 社群於 10 月 19 日重新提交 Qwen3-MoE 分散式訓練問題,並檢查當日主分支程式碼,指出 Trainer 仍可能把路由輔助損失連同主要損失一起放大。這是原議題遭自動關閉後的追蹤,當日新增的是原始碼檢查與專案成員回應,並非最新版本的 GPU 重測。議題與討論

問題涉及啟用 average_tokens_across_devices=True、傳入全域 token 數量的訓練路徑。回報分析指出,模型先合併 token 損失與加權輔助損失,Trainer 再對整體乘上資料平行程序數;這會讓原本只為 token 正規化設計的補償,同時改變輔助項權重。專案成員 Rocketknight1 已回應相關縮放邏輯,並請 Trainer 維護者參與。技術分析

這項係數會影響專家使用的平衡。官方文件說明,router_aux_loss_coef 用來懲罰不均勻的專家路由,output_router_logits 則控制路由資訊及輔助損失輸出。因此,若有效權重隨程序數改變,工程師把相同邏輯批次搬到更多 GPU 時,可能同時改變訓練目標;這是依回報機制推導的風險,尚無完整模型品質評估。Qwen3MoE 文件

回報附有隨機初始化小模型的單卡、雙卡比較,以及將兩種損失分開縮放的參考修正。原始結果使用 Transformers 5.15.0、FP32 與固定合成資料,不能直接代表現行版本或所有 MoE 訓練。現有修補提案仍待審查;使用者應留意合併狀態、正式版本,以及梯度累積等配置是否納入驗證,並在擴大訓練規模前比較路由梯度與各損失分量。修補提案

來源

  1. Qwen3-MoE router auxiliary loss is multiplied by the DDP world size in Trainer
  2. Qwen3MoE 官方模型文件
  3. Preserve MoE router auxiliary loss weighting in Trainer DDP