## Memo
## Memo with LLM
### 論文情報
- タイトル: SHIFT: An RDMA Failure-Resilient Layer for Distributed Training
- 著者: Shengkai Lin, Kairui Zhou, Yibo Wu, Hongtao Zhang, Qinwei Yang, Wei Zhang, Arvind Krishnamurthy, Shizhen Zhao
- カンファレンス/ジャーナル名: arXiv
- 発表年: 2025
### 論文概要
本論文は、大規模分散LLM学習におけるネットワーク異常による学習中断を防ぐため、[[RDMA]]層に耐障害性を組み込んだ「SHIFT」を提案している。SHIFTは、異常発生時に同一ホスト内の代替NICへRDMA通信をシームレスに切り替えることで、アプリケーションを停止させることなく次のチェックポイントまで学習を継続させることを可能にする。
### 詳細解説
#### 問題設定
大規模なLLM学習では、数千のGPUを使用するため、スイッチやNICの故障といったネットワーク異常が頻発し、Gangスケジューリングの性質上、1つの異常がジョブ全体の失敗につながるという課題がある。既存のチェックポイントやアプリケーション層での耐障害性手法(Torchelasticsなど)は、障害発生時に学習プロセスを再起動する必要があり、進捗の損失や再開コストが大きい。入力は大規模分散学習ジョブとネットワーク構成であり、出力はネットワーク異常下でも中断することなく継続される学習プロセスである。
#### 提案手法
SHIFTは、アプリケーション層ではなくRDMA層(ユーザ空間ドライバ)に耐障害機能を実装するミドルウェアである。具体的には以下の技術を用いている:
1. **Out-of-band KV Transfer**: アプリケーションに意識させずに、分散KVストアを用いてバックアップ用Queue Pair(QP)の接続情報を交換する。
2. **Inline Work Queue Rewind**: NIC切り替え時に、未完了のWork Queue Element(WQE)をバックアップNICへ再投稿(リワインド)し、通信の整合性を保つ。
3. **CQ Event-based Receiver Notification**: 送信側が切り替わった際、受信側も同期して対応できるよう、Completion Queue (CQ) イベントを用いて受信側のRECV WQE準備を調整する。
これらにより、PyTorch/NCCLなどの既存アプリケーションを変更することなく、NIC故障時にトラフィックを迂回させる。
#### 新規性
従来の耐障害性手法がアプリケーション層での再起動やロールバックを前提としていたのに対し、SHIFTはRDMA層という下位レイヤーで透過的に障害を隠蔽する点が新規である。これにより、チェックポイントまでの学習継続を保証し、進捗損失を「最小限」ではなく「ゼロ(チェックポイントまで)」にすることを目指している点、および既存のRDMAアプリケーション(NCCL等)に一切変更を加えず適用できる点が特筆される。
#### 実験設定
実験は、Intel Xeon Silver 4110 CPU、128GBメモリ、Mellanox ConnectX-6 100Gb NIC(2ポート)×2、NVIDIA P100 GPU×2を搭載したサーバー2台を用いて行われた。評価にはRDMAマイクロベンチマーク(`ib_send_bw`など)と、PyTorch/NCCLを用いたGPT-2(1.24億パラメータ)の分散学習を使用した。評価指標は、RDMA動詞(verbs)の実行オーバーヘッド、通信レイテンシ、および疑似障害発生時の学習スループットと継続性である。
#### 実験結果
マイクロベンチマークでは、SHIFTによるデータパスのオーバーヘッドは標準RDMAと比較して無視できるレベル(レイテンシの増加はほぼゼロ)であった。障害発生時のフォールバック時間は平均2.30ミリ秒と非常に高速である。実アプリケーション(GPT-2学習)の評価では、片方のNICを手動で無効化しても学習が中断せず継続することを確認した。バックアップNICがアイドル状態であれば性能低下なしで継続し、他のトラフィックで使用中であっても、学習を停止させることなく次のチェックポイントまで完走できることが示された。
## Abstract
本論文では、大規模な分散型大規模言語モデル([[LLM]])トレーニングにおいて、ネットワークの異常がタスク全体の失敗を引き起こすという問題に対処するために、Remote Direct Memory Access(RDMA)上に構築された耐障害性レイヤーであるSHIFTを紹介する。トレーニングを中断させる既存のアプリケーション層の耐障害性手法とは異なり、SHIFTはRDMA層に耐障害性を統合する。これにより、ネットワーク異常発生時に、同一ホスト内の異なるネットワークインターフェースコントローラ(NIC)間でRDMAトラフィックをシームレスにリダイレクトすることが可能になり、アプリケーションは次のチェックポイントまで実行を継続できるため、トレーニングの進捗損失を最小限に抑えることができる。SHIFTは、アプリケーションに依存せず、透過的で、低オーバーヘッドになるように設計されている。慎重に設計された障害状態マシンと制御フローを使用することで、[[NCCL]]を使用した[[PyTorch]]のような未修正のアプリケーションでも、RDMAレベルの耐障害性を備えた状態で実行できる。実験結果は、SHIFTがデータパスのオーバーヘッドを最小限に抑えつつ、ネットワーク障害下でのアプリケーションの継続性を保証することを示している。