# ResiHP: Taming LLM Training Failures with Dynamic Hybrid Parallelism > [!abstract] 概要 > ハイブリッド並列は、数万基の GPU にわたる大規模 LLM 学習を支えている。このような規模では、個々のデバイスのハードウェア障害がデバイス間の性能の偏りを引き起こし、学習全体の効率を下げる。既存の耐障害システムは、データセットの系列長のばらつきと、ハイブリッド並列下でのデバイス性能の偏りを見落としている。その結果、(1) 系列長のばらつきに起因する反復時間の揺らぎが誤ったフェイルスロー検知を引き起こしうること、(2) 障害がハイブリッド並列の個々の次元に対する個別の適応で緩和されるため、不必要な検知オーバーヘッドと非効率な耐障害学習が生じることが問題となる。これに応えて、本論文は ResiHP を提案する。ResiHP は、ハイブリッド並列学習に対して、頑健な障害検知ときめ細かな適応を可能にする耐障害システムである。第一に、障害を正確に特定する Detector を開発する。特に、ワークロードを考慮した実行時間予測器を用いることで、障害を反復時間の揺らぎから切り分け、オンライン検知に十分な軽量さを保つ。第二に、障害下での学習効率を高めるために、並列群のサイズ、モデル分割、ワークロードのスケジューリング方針を動的に適応させる Scheduler を設計する。実験では、256 基の GPU クラスタにおける多様な障害シナリオで、ResiHP が最先端の耐障害学習システムに比べて学習スループットを 1.04〜4.39 倍向上させることを示す。 ## 論文情報 - タイトル: ResiHP: Taming LLM Training Failures with Dynamic Hybrid Parallelism - 著者・所属: [[Tenghui Ma]]・[[Jihu Guo]](共同筆頭。[[Fudan University]]・[[Shanghai AI Laboratory]])、[[Wei Gao]](責任著者。[[Hong Kong University of Science and Technology]])、[[Sitian Lu]]([[Shanghai Jiao Tong University]]・[[Shanghai AI Laboratory]])、[[Zhisheng Ye]](独立研究者)、[[Hanjing Wang]]([[Shanghai AI Laboratory]])、[[Dahua Lin]]([[The Chinese University of Hong Kong]]) - 媒体: The 35th International Symposium on High-Performance Parallel and Distributed Computing(HPDC '26)、2026 年 7 月 13〜16 日、米国クリーブランド。14 ページ - DOI: 10.1145/3806645.3807815(arXiv 版は本文に無い) - 一次資料: 本文 PDF(ACM、CC BY 4.0) ## 概要 数万基規模のハイブリッド並列学習では、フェイルストップとフェイルスローの両方がデバイス性能の偏りを生み、TP・PP・DP を順に伝わって増幅される。ResiHP は、系列長由来の反復時間の揺らぎを予測器で取り除く Detector と、TP・PP・DP を段階的に適応させる Scheduler からなる。256 基の A100 で、Greyhound・Adaptra・ReCycle・Oobleck に対してスループットを 1.04〜4.39 倍にする。 ## 問題設定 大規模 LLM 学習では、ハードウェア障害は統計的に避けられない。障害は、デバイスが突然止まるフェイルストップ(GPU の HBM エラーなど)と、動き続けるが性能が落ちるフェイルスローの 2 種に大別される。本論文は両者に共通する帰結を**デバイス性能の偏り**(障害に起因する、実効的な計算・通信速度のデバイス間の不均一)と定義する。ストラグラーは偏りの実行レベルの症状であり、偏り以外(ワークロードの不均衡など)でも起こるため別概念とする。 - 両種は根本原因を共有し、絡み合っている。メモリやネットワークの問題は性能劣化としてフェイルスローに現れ、エラーの閾値超過やタイムアウトを経てフェイルストップへ悪化しうる(Table 1)。 - 障害はまず TP 内に現れる。TP 内の rank は層ごとに同期するため、1 つの rank の停止や低速が TP 群全体を止め、PP では劣化・欠落した段としてバブルを生み、DP ではグローバル同期で他のレプリカを止める。 Table 1. フェイルストップとフェイルスローの根本原因の整理。 | 区分 | 主な根本原因 | 報告された影響 | |---|---|---| | フェイルストップ | ハードウェア: メモリエラー(OOM・ECC)、ネットワークエラー(RoCE・NVLink・NIC)、ノード障害、SSD エラー。ソフトウェア: データ競合、誤ったエラー処理、無限ブロックやループ | 178,000 GPU 時間の浪費、学習時間の約 10% の浪費 | | フェイルスロー | ハードウェア: メモリ圧迫、ネットワーク劣化、CPU 競合、電源の不安定、熱インタフェースの異常。ソフトウェア: データ破損、内部チェッカのバグ | 平均ジョブ完了時間の 34.59% 増、GPU 使用率が最大 45% 低下 | ### 障害の増幅 LLaMA 2-13B を (TP,DP,PP)=(4,2,4) の 32 基で学習し、1 基の速度を半分にするフェイルスローを注入すると、その 1 基が TP 群内の 3 基、パイプライン全体で 12 基、DP 同期で残り 16 基を遅らせる。追加のアイドル GPU 時間は障害時間に対して TP で 4.75 倍、PP で 19.13 倍、DP で 25.43 倍に増える。局所的な障害が階層を伝わって 32 基のジョブ全体に及ぶため、介入は TP から PP・DP へ広がる前に行うべきだとする。 ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig02-failure-amplification.png]] *Figure 2. LLaMA 2-13B のフェイルスロー注入に伴う TP・PP・DP での障害の増幅。* ### 反復時間の揺らぎ 反復時間はデバイス性能だけでなく入力の系列長にも依存する。系列パッキングで入力長をそろえても、セルフアテンションは系列長の 2 乗で増えるため、4K トークンの連続系列のアテンション計算量は 1K トークン 4 本のパッキング入力の約 4 倍になる。この差がマイクロバッチの実行時間を変え、パイプラインの整列を崩してバブルを生み、反復時間の揺らぎとなる。それがデバイス性能の偏りと誤認される。 ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig01-seqlen-iter-fluctuation.png]] *Figure 1. 系列長のばらつきが反復時間の揺らぎに与える影響。* ### 既存手法の限界 - **高オーバーヘッドの検知**: 最先端のフェイルスロー検知(Greyhound)は反復時間の変化点を手掛かりに、その後の検証で低速デバイスを確認する。反復時間の変化がワークロード由来か性能劣化由来かを区別できず、長系列学習で偽陽性と不要な検証が増える。 - **TP 群内の資源浪費**: 既存系は TP 群内の 1 基だけが故障しても群全体を外し、健全なデバイスを捨てる。 - **移送後の DP 間不均衡**: ReCycle はフェイルストップを PP レベルのワークロード移送で許容するが、DP 間の不均衡が大きくなる。 - **再分配後の DP 内不均衡**: Greyhound は DP 群間でバッチを再分配して反復時間を均すが、DP 内の PP 群間に不均衡が生じる。TP・PP・DP を横断した調整が要る。 ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig03-individual-adaptation-imbalance.png]] *Figure 3. ハイブリッド並列の個別次元の適応が招くワークロードの不均衡と資源の浪費。* ## 提案手法 ResiHP は Scheduler と Detector の 2 部からなる。ジョブ投入時に Scheduler が学習設定から初期の実行計画を作り、GPU プールに配備する。学習中はワーカーがハートビートと実行時プロファイルを Detector へ流し、Detector が確定した障害を障害報告として Scheduler へ送る。Scheduler は現在のトポロジと生き残った資源から段階的な適応方針を生成し、並列次元を再構成して学習を再開する。実装は約 9k 行の Python で、Megatron-LM に近い社内の学習フレームワーク上に載る。 ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig04-overview.png]] *Figure 4. ResiHP の全体構成。* ### Detector - **フェイルストップ**: 2 段のハートビートを用いる。ノード内では各ワーカーが学習進捗つきの生存信号を出し、ノードローカルのモニタが連続した欠落でフェイルストップを判定する。ノード間では中央のコーディネータがモニタの状態だけを集約するため、監視のオーバーヘッドはデバイス数でなくノード数に比例する。実装は CPU エージェントと中央コントローラの永続的な TCP 接続で、ソケットの切断を検知して通知を配る。 - **フェイルスロー**: Greyhound と同様に反復時間の時系列で変化点を検知し、検証段階で確認する。ただし変化点が見つかった時点で、現在のワークロードとパイプライン構成での健全時の反復時間を解析的に推定する。実測が予測を 25% を超えて上回るときだけ検証を起動し、そうでなければ良性の揺らぎとして時系列から点を除き、検証を省く。 - **マイクロバッチ時間予測**: トークン予算 N のパッキング済みマイクロバッチで、MLP は N に比例し一定とみなす。アテンションはブロック対角マスクにより文書長 l_i の 2 乗和に比例する。したがって実行時間を T_MB ≈ αN + βΣl_i² と近似し、α・β は初期のウォームアップで測る。 - **反復時間予測**: パイプライン計画を DAG(頂点は F・B・W のチャンク、辺はデータ依存と資源依存)で表す。各頂点の開始時刻を先行頂点の完了と通信時間の最大値として位相順に求め、最終頂点の完了時刻(クリティカルパス長)を健全時の反復時間とする。 ### Scheduler TP・PP・DP の順に段階的に適応する。 1. **TP 内の選択的なデバイス除外(§6.1)**: 障害のある TP 群 G から、フェイルストップのデバイスを除いた集合 G′ に対し、メモリ上限で決まる k_min から |G′| までの 2 のべき乗を候補 TP 度とする(アテンションヘッド数の割り切れ・通信群のレイアウト・カーネルの効率のため)。各 k で、正規化スループット p_i(健全時のピークに対する比)の上位 k 台を貪欲に選び、k·min p_i(TP は最も遅いメンバに律速され、TP 度が大きいほど総計算量は増える)が最大の部分群を採る。余ったデバイスはノード内のスタンバイとして保持し、後のノード内障害に再利用する。結果は異種 TP 度の群になる。 2. **層再分割による PP の不均衡解消(§6.2)**: TP 適応後にストラグラーとなった PP 段の層数を減らし、残りの段へ均等に再配分する。例として 4 層ずつ (4,4,4) の 3 段が、フェイルスローのある中段を 2 層に減らした (5,2,5) になる。 3. **進捗認識のワークロード移送による DP の均衡(§6.3)**: TP・PP 適応後も残る DP 間の偏りを、PP 段単位でマイクロバッチを DP 群間へ移して解消する。全 DP 群の完了時間の最大値(反復時間)を最小化する問題として定式化する。制約は、各マイクロバッチの各段がちょうど 1 回実行されること、移送元・先の間でアクティベーションと勾配を交換して依存を保つこと、移送先の段のメモリ使用量が容量以下であることの 3 つである。記号は Table 2 に整理される。混合整数計画はオンラインでは高価なため、解析的なパイプラインシミュレータを使う進捗認識のヒューリスティックで解く。段 i・DP 群 d の進捗 P は完了した Forward の数(局所と移送分を含む)で、各段で最も遅い群と速い群を選び、遅い群がフェイルストップ、または進捗差が閾値 δ を超えるときに、遅い群の次の未処理マイクロバッチの当該段を、メモリに収まる限り速い群へ移す。 ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig05-layer-repartition.png]] *Figure 5. 層再分割による PP の不均衡の緩和。* ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig06-progress-aware-migration.png]] *Figure 6. (a) ReCycle のスケジュールと (b) ResiHP のワークロード移送。* ### 実装上の工夫 - **異種 TP 度間の P2P 通信**: 隣接する PP 段の間では同一 TP 群の GPU が同じテンソルを送受信するため、Megatron-LM の scatter/gather 最適化を使うが、これは送受信の TP 度が同一であることを要する。動的な TP 再構成で TP 度が異なる相手同士になるため、送信側がテンソルを N 個(N は 2 者のうち大きい TP 度)の等分に分けて InfiniBand で対応する GPU へ送り、受信側がノード内の NVLink/NVSwitch で all-gather して復元する規則を加え、同一テンソルのノード間送信を 1 回に抑える。 - **状態の復旧**: 障害を検知したら通信群を再構築する。フェイルストップの DP レプリカを除いて健全なレプリカは継続し、反復の完了後にパラメータとオプティマイザ状態を同期する。同じ段の全レプリカが落ちた場合は、学習を止めて直近に完了した反復の永続状態から復元する。層再分割ではパラメータとオプティマイザ状態を層ごと移し、TP 度が変わるときは対象 TP 配置へ再シャーディングする。学習の意味論は変えない。 - **通信群の再構築とスケジュール実行**: torch.distributed で古い通信群を破棄し、フェイルストップの rank を除いて再構築する。Scheduler は Forward・Backward・Send・Recv などのプリミティブ列を出し、ワーカー側の軽量なインタプリタが実行する。 - **可搬性**: Detector と Scheduler の考え方は、通信群と実行スケジュールを制御できるハイブリッド並列フレームワークに移せる。通信子の再構築とプリミティブの発行は、フレームワーク固有である。 ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig07-p2p-scatter-gather.png]] *Figure 7. 動的な TP 再構成後の冗長な P2P 転送の削減。* ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig08-state-recovery.png]] *Figure 8. 再構成時のオプティマイザとパラメータの復旧。* ## 新規性 - フェイルストップとフェイルスローを一体として扱い、TP・PP・DP を横断して段階的に適応する点。ReCycle は PP、Oobleck と Greyhound は DP、Adaptra は PP のスケジューリングと、それぞれ 1 次元だけを調整する。 - 系列長由来の反復時間の揺らぎを、マイクロバッチ時間予測と DAG シミュレータによる健全時の反復時間予測で取り除き、フェイルスロー検知の偽陽性と検証オーバーヘッドを減らす点。 - TP 群を丸ごと外さず、障害デバイスだけを外して TP 度を選び直す選択的除外と、それに伴う異種 TP 度間の P2P 通信規則。 ## 実験設定 - テストベッド: 32 ノード。各ノードに A100 を 8 基(NVSwitch 接続)、ノード間は 200 Gbps HDR InfiniBand。CUDA 12.2、NCCL 2.20.1。 - モデルと並列設定(Table 3): LLaMA 2 は 7B が (4,2,2) で 16 基、13B が (4,2,4) で 32 基、30B が (4,2,8) で 64 基、70B が (4,4,16) で 256 基。Qwen 2.5 は 7B・14B・32B を対応する規模に割り当てる(Table 3)。 - 障害注入: フェイルストップはワーカーを手動で停止する。計算のフェイルスローは nvidia-smi で SM 周波数を固定する。通信のフェイルスローは側路の通信ジョブで帯域を奪う。重さは弱(W)・中(M)・強(S)で、無対策のスループット低下がそれぞれ約 35%・55%・70%。 - 比較対象: Greyhound、Adaptra、ReCycle、Oobleck。混在障害では、Greyhound のフェイルスロー検知・緩和を組み込んで ReCycle と Oobleck を強化した版(以下「強化版」)も用いる。 - 指標: マイクロバッチ・反復時間予測の MAPE、検知精度と平均偽警報数、エンドツーエンドのスループット(samples/s)。集計値は複数回の平均で、誤差棒は 95% 信頼区間。 ## 実験結果 - **Table 4〜Table 6 の位置づけ**: Table 4 はフェイルストップ下のスループット、Table 5 は予測精度、Table 6 は検知の偽警報数とオーバーヘッドを示す。 - **予測精度(Table 5)**: マイクロバッチ時間予測の MAPE は 1.19〜1.58%、反復時間予測は 2.81〜5.06%。系列長 8K〜32K、1F1B と ZBH のスケジュールで確認した。 - **検知精度とオーバーヘッド(Table 6、ResiHP 対 Greyhound)**: 平均偽警報数は 0〜0.3 回に対し 3.7〜8.7 回。偽警報 1 回のオーバーヘッドは 34〜49 ms に対し 2.24〜3.72 s(本文は 1.24〜1.72 s と記す)。フェイルスロー検知精度は 0.98〜1.00 で、本文はフェイルスロー 99.0% 超、フェイルストップ 99.6% とする。 - **フェイルストップ下のスループット(Table 4)**: 障害頻度を 2 時間・1 時間・30 分に 1 回とする。ReCycle は 2 時間の時点で最大 49.4%、Oobleck は 1 時間で最大 44.2% 低下し、30 分では両者とも TP 群を丸ごと捨てるか、ある段の全 DP レプリカを失って学習を中断する。ResiHP は 30 分でも継続し(例: LLaMA 2-7B は 2h・1h・30m で 7.55・6.48・5.46 samples/s、無障害は 8.22)、比較可能な 2 時間・1 時間の設定では ReCycle に 1.22〜1.82 倍、Oobleck に 1.07〜1.51 倍。 - **フェイルスロー下(Figure 9)**: 無対策のスループットに対して 1.32〜3.31 倍、Adaptra に 1.18〜2.30 倍、Greyhound に 1.22〜1.46 倍。 - **混在障害(Figure 10)**: ReCycle に 1.48〜4.39 倍、強化版 ReCycle に 1.22〜4.32 倍、強化版 Oobleck に 1.04〜3.57 倍。強化版 ReCycle は素の ReCycle からほとんど改善しない。フェイルスローで劣化したデバイスに、落ちた DP ピアの仕事まで移送され、深刻なストラグラーになるためである。 - **アブレーション(Figure 11)**: 選択的デバイス除外の寄与が最も大きい。層再分割は DP レプリカに一様に適用するため柔軟性が低く寄与が小さい。ワークロード移送は進捗に応じて細かく均す。増幅の抑制も、Figure 2の設定でフェイルスロー地点 0.64 倍、TP 2.03 倍、PP 8.72 倍、DP 11.14 倍に下がる。 - **収束(Figure 12)**: LLaMA 2-7B を 2,500 反復学習し、無障害と障害注入下の ResiHP で損失曲線が重なる。3 回目のフェイルストップで一時的な損失のスパイクが出るが直ちに回復する。 - **オーバーヘッド(Figure 13)**: Detector は 1 反復あたり 1.2〜1.5% 増。Scheduler の計画生成は 32B で 1.44 s(反復の半分未満)。通信群の再構築は全モデルで 2 s 未満。層の移送は転送量に比例し、償却できる。ウォームアップの計測は一度きりで含めない。 - **大規模(Figure 14)**: LLaMA 2-70B、256 基(4,4,16)で、障害と再参加が繰り返される動的シナリオ。全障害を 2〜3 反復で検知し、フェイルストップとフェイルスローが同時に起きたときはフェイルストップを優先して復旧し、Scheduler の再構成後に残るフェイルスローの検知を再開する。強化版 ReCycle・強化版 Oobleck に対し平均スループットで 1.39 倍・1.11 倍。 ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig09-failslow-throughput.png]] *Figure 9. フェイルスローの重さごとの Scheduler の効果。* ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig10-mixed-failures.png]] *Figure 10. 混在障害での Scheduler の効果。* ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig11-ablation.png]] *Figure 11. 混在障害の処理での構成要素別の寄与。* ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig12-loss-curve.png]] *Figure 12. LLaMA 2-7B の学習損失(無障害と ResiHP)。* ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig13-overhead.png]] *Figure 13. ResiHP のオーバーヘッド(左: Qwen 2.5 系、右: 層移送)。* ![[_attachments/ResiHP--Taming-LLM-Training-Failures-with-Dynamic-Hybrid-Parallelism/fig14-256gpu-trace.png]] *Figure 14. 256 基の A100 での学習の評価。* ## 考察 - Detector が扱えるのは、生存信号か時間に痕跡を残す障害(フェイルストップと持続的なフェイルスロー)に限る。どちらの信号も持たないものは対象外である。関連する silent data corruption(SDC)は生存性も実行時間も変えないため別の信号が要る。損失のスパイクやパラメータのドリフトを使う検知器を足せば、ResiHP の適応機構を隔離に再利用できると著者は述べ、将来課題とする。 - データの不均一性(可変長系列)は、動的スケジューリングや適応的並列化などの既存研究が負荷不均衡を緩和する。それらは障害検知のための反復時間の系列を安定させることまでは目的にせず、残る揺らぎが偽警報を起こしうる。 - 並列計画の自動探索(Varuna など)は ResiHP と併用でき、学習効率をさらに高められる。 ## 強み / 弱点・課題 - 強み: 障害を TP・PP・DP の増幅経路に沿って早い段で抑える設計が、選択的除外という最大の寄与に裏づけられている。フェイルストップを 30 分間隔で繰り返しても学習を継続でき、既存系は中断する。検知は予測器による事前フィルタで軽量に保たれ、Detector の常時オーバーヘッドは 1.5% 以下である。 - 弱点・課題: 実験は A100 の 256 基までで、1 万基級での性能は示されない。障害は決定的に注入され、実運用の障害分布や再参加の頻度は再現されない。ベースラインの強化版は Greyhound の検知・緩和を後付けした構成で、各系の本来の設計とは異なる。2 のべき乗の TP 度に限るため、余りのデバイスはスタンバイに留まる。SDC など信号のない障害は対象外である。 - Table 6のオーバーヘッド欄と本文で Greyhound の偽警報 1 回あたりの値が異なる(表: 2.24〜3.72 s、本文: 1.24〜1.72 s)。本ページは両方を併記した。