## Memo ## Memo with LLM ### 論文情報 - **タイトル**: Understanding Stragglers in Large Model Training Using What-if Analysis - **著者と所属**: - Jinkun Lin, Zhanghan Wang, Aurojit Panda, Jinyang Li(New York University) - Ziheng Jiang, Zuquan Song, Sida Zhao, Menghan Yu, Chenyuan Wang, Wei Jia, Zherui Liu, Shuguang Wang, Haibin Lin, Xin Liu(ByteDance Seed) - Zuocheng Shi(Zhejiang University) - Xiang Shi(ByteDance) - **カンファレンス**: 19th USENIX Symposium on Operating Systems Design and Implementation (OSDI '25) - **発表年**: 2025年7月、Boston, MA, USA(pp. 483–498) ### 論文概要 LLM学習クラスタにおけるストラグラー(遅延ワーカー)の実態を、ByteDanceの5か月分のトレース(3,079ジョブ)を用いて包括的に調査した研究である。ストラグラーが存在しないシナリオをシミュレートする**What-if分析**を核心手法として採用し、ストラグラーの頻度・パターン・根本原因を体系的に解明している。この分析から得られた知見は、ストラグラー監視システム **SMon** として実際のクラスタに展開されている。 ### 詳細解説 #### 問題設定 **入力**: 分散LLM学習ジョブの実行トレース(各オペレーションのタイムスタンプ・種別・ランク情報を含む) **出力**: ストラグラーがジョブ完了時間に与える影響量(スローダウン比)と根本原因の帰属 **前提条件**: - データ並列(DP)・パイプライン並列(PP)・テンソル並列(TP)を組み合わせた分散学習環境 - 同期的な学習ループ(全ワーカーが各ステップでバリアを共有) - ハードウェアは均質(DGXライク、NVLink/PCIe、3層CLOSネットワーク) **課題の本質**: LLM学習は頻繁なマシン間同期を必要とするため、1台の遅いワーカーが全体のスループットを低下させる。しかし従来の障害検出(ハードウェア異常の特定)では不十分であり、複雑な要因に起因するストラグラーは検出・対処が困難である。 #### 提案手法 ##### アーキテクチャ: What-if分析パイプライン ストラグラーが存在しない理想的なシナリオをシミュレートし、実際の実行時間と比較することでストラグラーの影響を定量化する。 **3つの主要コンポーネント:** 1. **オペレーション時間推定**: トレース内の各オペレーションに「理想的な実行時間」を割り当てる - 計算オペレーション: 同一DP/PPランク内の同一オペレーションの平均値 - 通信オペレーション: ブロッキング時間を除いた「転送時間」のみ(中央値) 2. **依存関係モデル**: 並列実行の複雑な依存グラフを以下のストリームで表現 - 計算ストリーム(forward/backward compute) - DP通信ストリーム(params-sync、grads-sync) - PP通信ストリーム4本(forward-send/recv、backward-send/recv) 3. **シミュレーション**: 依存関係グラフに沿い、理想的な時間を使って実行タイムラインを再構築 ##### アルゴリズム/手法の詳細 **スローダウン比 S**: $S = T / T_{\text{ideal}}$ $T$: 実際のジョブ完了時間、$T_{\text{ideal}}$: シミュレーション上の理想的な完了時間 **リソース浪費率**: $\text{waste} = (T - T_{\text{ideal}}) / T = 1 - 1/S$ **オペレーション種別ごとのスローダウン** $S_t$: 特定オペレーション種別のみ理想化した場合のスローダウン比(他は実際値を使用) **ワーカー別帰属指標 $M_W$**: 最も遅い3%のワーカーを理想化した場合の性能回復量 / 全ワーカーを理想化した場合の性能回復量 **パイプラインステージ帰属指標 $M_S$**: 最後のPPステージのみ理想化した場合の性能回復量 / 全ワーカーを理想化した場合の性能回復量 ##### 実装上の工夫 - 通信オペレーションの「転送時間」と「ブロッキング時間」を分離することで、ネットワーク自体の遅延とワーカー待ちによる遅延を区別する - DPランク間・PPランク間の集合通信(AllReduce等)をシミュレーション内でピアとの同期として正確にモデル化 #### 新規性 **既存手法の課題**: - 従来のストラグラー対策はMapReduceなど非同期ワークロードを前提としており、投機的実行やタスク再実行が有効だった - LLM学習は密な同期を必要とするため、これらの手法は適用困難 - クリティカルパス分析は均質並列ワークロードでは全ワーカーがクリティカルパスに存在するため意味をなさない - ハードウェア障害検出のみに頼ったアプローチでは、ソフトウェア起因のストラグラーを見逃す **本研究の解決策**: - What-if分析によりストラグラーの影響量をジョブ単位・ステップ単位・オペレーション種別単位で定量化 - 5か月間・3,079ジョブの大規模実トレースに基づき、根本原因を統計的に帰属 - SMon という実用的な監視システムへの昇華 #### 実験設定 **実験環境**: - DGXライクサーバー: 8 GPU/サーバー、NVLink/PCIe相互接続 - ネットワーク: 3層CLOSトポロジー(オーバープロビジョニング)、高帯域幅 - ジョブ分離: 専有GPU割り当て、均質ハードウェア **データセット**: - **期間**: 2024年1月〜5月(5か月) - **ツール**: NDTimeline(ByteDance内製プロファイリングツール) - **サンプリング**: 学習ステップの10%を採取 - **総ジョブ数**: 3,079ジョブ - ≥256 GPU使用: 31.7% - ≥512 GPU使用: 18.3% - ≥5,000 GPU使用: 3.6% - **カバレッジ**: クラスタGPU時間の約50% - **モデル種別**: Dense・MoE(短・長コンテキスト) **フィルタリング後**: 38.2%のジョブ・56.4%のGPU時間をカバーする有効トレースを解析 **評価指標**: スローダウン比 $S$、リソース浪費率、各帰属指標 $M_W$、$M_S$ #### 実験結果 ##### 定量的評価 **ストラグラーの蔓延度(Figure 3)**: - **42.5%のジョブ**が≥10%のスローダウンを経験 - **約1%のジョブ**が≥45%のGPU時間を浪費 - **集計浪費量**: 全GPU時間の10.4%がストラグラーにより損失 **時間的パターン(Figure 4)**: - ストラグラージョブ内でのステップ単位スローダウンは一貫して持続(中央値の正規化スローダウン=1.0、90パーセンタイル=1.06) - 一時的でなく持続的な原因が支配的であり、10%サンプリングが有効であることを示唆 **オペレーション種別帰属(Figure 5)**: - **計算オペレーションのスローダウン**がリソース浪費の約80%を占める - 通信オペレーションのスローダウンは影響軽微(専用クラスタの高帯域幅が理由) **ジョブサイズ相関**: ジョブ規模(GPU数)とストラグラー深刻度に明確な正相関なし ##### 根本原因分析 **ハードウェア/ソフトウェア障害($M_W$、Figure 6)**: - 最も遅い3%のワーカーが<50%のスローダウンを引き起こすのは、ストラグラージョブの**98.3%** - 問題ワーカーが主因となるジョブはわずか**1.7%** **パイプラインステージ分割不均衡($M_S$、Figure 7)**: - **39.3%のジョブ**で最終PP段階が≥50%のスローダウンを引き起こす - 損失層がTransformer層の**9倍**の計算量を必要とすることが原因 - 実験: 9層ジョブに手動チューニングを適用しても1.55倍の負荷削減にとどまる **シーケンス長不均衡(Figure 8-12)**: - **21.4%のジョブ**が影響を受け、平均スローダウン1.34 - Self-attentionの計算量がO(∑s_i²)であるため、シーケンス長のばらつきが計算時間のばらつきに直結 - Figure 9: マイクロバッチ計算時間と∑s_i²の線形相関を実証 - 長コンテキストジョブで深刻度が急増(Figure 12) - **提案緩和策**: 貪欲法でシーケンスを再分配し∑s_i²を均等化→プロトタイプで**23.9%のスループット改善** **Python Garbage Collection(Figure 13)**: - Pythonランタイムのstop-the-world GC一時停止(100msオーダー)がforward-computeカーネルをブロック - 学習進行とともにポーズ時間が増加(メモリリーク疑い) - **展開済み緩和策**: GCを計画的に実施(全ワーカーで同期的に実行) - 128 DPランクジョブで500ステップごとにGCを実施→**12.6%改善** - ただしジョブ単位チューニングが必要でデフォルト有効化されていない **その他(Section 5.5)**: - CUDAメモリフラグメンテーション: 稀だが深刻(cudaFree/cudaMallocコールの増加) - falseカーネル依存: Reduce-scatterカーネルが無関係なカーネルをブロック → `CUDA_DEVICE_MAX_CONNECTIONS`チューニングで緩和 ##### 実用システム: SMon What-if分析パイプラインをオンライン監視システムとして実装: - NDTimelineプロファイルを自動解析 - ワーカースローダウンをヒートマップで可視化(Figure 14) - ヒートマップパターンから根本原因を自動推定 - (a) ワーカー障害: 特定ランクに持続的なスローダウン - (b) ステージ不均衡: 最終PPステージ全体にスローダウン - (c) シーケンス長不均衡: ランダムなDPランクに毎ステップ変動するスローダウン - 展開初月で3件のファールティマシン、1件のシーケンス長不均衡、1件のステージ分割不均衡を検出・対処 #### 考察 (Discussion) ##### 結果の解釈 ストラグラーの主因が通信でなく計算であることは、ByteDanceクラスタの高帯域幅ネットワーク(オーバープロビジョニング)が通信ボトルネックを事実上除去していることを示す。一方でPythonランタイム・アルゴリズム的不均衡(ステージ分割・シーケンス長)といったソフトウェア起因の問題が依然として支配的である。 ##### 優位性の根拠 What-if分析はシミュレーションベースであるため、実際にジョブを再実行することなく反事実シナリオを評価できる。これにより大規模な実トレースへの適用が可能になり、5か月・3,000ジョブ以上のデータを統計的に処理できる。 ##### 限界と例外 - トレースのサンプリング(10%のステップ)により、非常に短命なストラグラーは検出できない可能性がある - What-if分析はオペレーション間の独立性を一定程度仮定しており、複数要因が複雑に絡み合うケースでは過少/過大評価が生じうる - GC緩和策のように、解決策がジョブ固有のパラメータチューニングを必要とするケースでは、全ジョブへの自動適用が困難 #### 強み (Strengths) - 実際の大規模本番クラスタ(ByteDance、最大5,000+ GPU)からの5か月間の実トレースに基づく高い実証的妥当性 - What-if分析という新規手法により、ストラグラーの影響を「根本原因ごとに帰属・定量化」できる点 - SMon として実システムに展開し、初月に実際の障害事例を検出した実用性 - シーケンス長不均衡への緩和策(23.9%改善)という具体的な解決策を提示 #### 弱点・課題 (Weaknesses / Limitations) - GC緩和策はジョブごとのパラメータチューニングが必要であり、スケーラブルな自動化が未達成 - ステージ分割不均衡への根本的解決(層単位の再分割、vocabulary sizeとの兼ね合い)は未解決のまま - ByteDanceの特定クラスタ環境(均質ハードウェア、高帯域ネットワーク)への依存があり、ヘテロジニアス環境や混雑ネットワーク下での結論の外挿性は不明 - トレース収集のオーバーヘッドやサンプリング戦略の詳細が一部未開示 ## Abstract 大規模言語モデル(LLM)の学習は、今日最も要求の高い分散計算のひとつであり、しばしば数千のGPUを必要とし、マシン間での頻繁な同期を伴う。このようなワークロードパターンは、少数の遅いワーカーによって学習が停滞するストラグラーに対して脆弱である。ByteDanceでは、ストラグラーは必ずしもハードウェア障害によって引き起こされるわけではなく、複数の複雑な要因から生じうることを発見している。本研究は、ByteDanceのLLM学習クラスタから収集した5か月分のトレースを用いて、LLM学習におけるストラグラー問題を包括的に調査することを目的とする。中核的な方法論は、ストラグラーが存在しないシナリオをシミュレートし、実際のケースと対比するWhat-if分析である。この方法を用いて、次の問いを検討する:(1)ストラグラーがどの程度の頻度で学習ジョブに影響を与え、ジョブのパフォーマンスにどのような影響を与えるか;(2)ストラグラーは時間的または空間的なパターンを示すか;(3)ストラグラーの潜在的な根本原因は何か。