ホームへ戻る

GitHub Repo

Transformers が Qwen3-MoE の損失スケーリング問題を報告、マルチ GPU 訓練でルーティング補助損失が拡大する可能性

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 がルーティング補助損失を主損失とともに拡大する可能性が依然としてあると指摘しました。これは元の issue が自動的にクローズされた後の追跡報告です。同日に追加されたのはソースコードの調査とプロジェクトメンバーの応答であり、最新バージョンを使った GPU での再テストではありません。issue と議論

この問題は、average_tokens_across_devices=True を有効にし、グローバルなトークン数を渡す訓練経路に関係します。報告の分析によると、モデルがトークン損失と重み付けされた補助損失を合算した後、Trainer が合計にデータ並列プロセス数を乗じます。そのため、もともとトークンの正規化を目的としていた補正が、補助項の重みも変えてしまいます。プロジェクトメンバーの Rocketknight1 はこのスケーリングの仕組みに応答し、Trainer のメンテナーにも参加を呼びかけました。技術分析

この係数は、エキスパートの利用バランスに影響します。公式ドキュメントでは、router_aux_loss_coef は不均一なエキスパートルーティングにペナルティを与えるためのもので、output_router_logits はルーティング情報と補助損失を出力するかどうかを制御すると説明されています。したがって、実効的な重みがプロセス数に応じて変わる場合、同じ論理バッチをより多くの GPU に分散することで、訓練目標も変わる可能性があります。これは報告された仕組みから導かれるリスクであり、モデル品質を包括的に評価した結果はまだありません。Qwen3MoE ドキュメント

報告には、ランダム初期化した小規模モデルでの単一 GPU と2 GPU の比較、および2種類の損失を個別にスケーリングする参考修正が含まれています。元の結果は 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