KubeCon China 2024、Kubernetes上でMLジョブのフォルトリカバリーを実装したKcoverのセッションを紹介
KubeCon China 2024から、中国のクラウドプロバイダーDaoCloudのエンジニアが、機械学習ジョブの障害対策のためのオープンソースソフトウェアKcoverを解説したセッションを紹介する。DaoCloudは2014年に創業し、上海に本社を置く中国のパブリッククラウドプロバイダーだ。クラウドネイティブなオープンソースソフトウェアに対しては大きな貢献を行っていると、自社のホームページで訴求していることからもわかるように、このカンファレンスでも多くのセッションでスピーカーを登壇させていた。
GPUクラスターではさまざまな要因でエラーが発生する
セッションを担当したのは、Fanshi Zhang氏とKebe Liu氏、ポディウムに立って解説をしているのがFanshi Zhang氏で、その右に立っているのがKebe Liu氏だ。セッションのタイトルは「Sit Back and Relax with Fault Awareness and Robust Instant Recovery for Large Scale AI Workloads」というもので、分散実行される機械学習のジョブの障害検知とリカバリーを行うツールKcoverを紹介する内容だ。
●動画:Sit Back and Relax with Fault Awareness and Robust Instant Recovery for Large Scale AI Workloads
最初に機械学習におけるトレーニングプロセスについて解説し、ジョブがGPUに分散されて実行されることを説明。その中でさまざまなエラーが発生することは避けられないと語った。
そのエラーについて例を挙げて説明した。ここではGPUのハッスルエラーメッセージを例に説明を行っている。
特に複数のGPUと接続して通信を行うNVIDIAの通信ライブラリーNCCL(NVIDIA Collective Communication Library)についても実際のエラーメッセージを見せて、エラーは避けられないことを強調した。
また当然だが、PyTorchにおいてもエラーが発生することを紹介。単にGPUを複数使って分散学習を行うと言っても、多くの要因でエラーが発生することを説明した。
またエラーについて「Irreversible(回復不能)」という形容詞を使って説明している点について説明を行った。
ここでは分散学習のジョブはKubernetesの文脈で言えば単なるデプロイメントというよりもステートフルセット、つまり状態を持ち長期にCPU/GPUを占有してしまうジョブであること、複数のノードが協調して実行するためにはノード間のトポロジーや接続の状態、データ転送に使うバンド幅などを計算した上でどのノードでどのジョブが実行されるのかを決定する必要があり、コストが高いことなどを解説した。
そして最初に挙げたようにさまざまなハードウェアやソフトウェアコンポーネントにおいてエラーが発生する状況は、Kubernetesなどのクラウドネイティブなシステムでは前提条件となっているが、相違点として分散処理のためのアルゴリズムがPyTorchやNCCLの中に組み込まれていること、Kubernetes Operatorではエラーの検知からリカバリーなどの動作が実装されていないこと、GPUに関連するハードウェア、ドライバー、ライブラリーなどにおける原因解析が不十分であることなどを挙げて、分散学習の運用はそれほど楽ではないことを強調した。これはDaoCloud自身がd.runというGPUサーバーをパブリッククラウドサービスのひとつとして提供している経験から来ている生の感想だろう。
またエラーを検出してその原因を解析したとしても、エラーが発生したハードウェア以外のノードでジョブを実行するためには、トレーニングデータの状態を保存するCheckpointsを利用して再開する必要があると説明。しかしCheckpointsファイルは非常に巨大なサイズ(例えばLlama2では80GBを超える場合も)になってしまうことを例に挙げ、分散学習においてエラーへの対応は容易ではないと説明した。
それらを考慮して実際に分散学習の処理時間が膨大になってしまうことを数式で解説。ここでは処理時間はジョブの実行時間だけではなく、チェックポイントファイルの保存や読み込みに必要な時間をノード数やGPUの数で乗算したものになるとして、単なる処理時間だけでは収まらないことを示した。
エラーから回復するための処理時間を減らすためには診断の時間を減らし、回復にかかる時間を減らし、チェックポイントファイルの処理の高速化するしかないと説明した。
そのために多くの研究がなされ、公開されている論文なども存在することを説明。ここではMetaが公開している24,000台のGPUクラスターでエラー処理にかかる時間を大幅に削減した事例を紹介。これはMetaが発表した下記のLlama3の公式ブログに書かれている内容を引用している。
●参考:Introducing Meta Llama 3: The most capable openly available LLM to date
他にもKubernetesのSIGで開発されているJobSetやANT Groupが開発しているDLRoverなどを紹介。DaoCloud以外にもGPUクラスターのエラー処理に悩みを抱えているユーザーがいることを示していると言えるだろう。
Kcoverの解説
そこからプレゼンテーションをKebe Liu氏に譲ってKcoverを解説する内容となった。
Kcoverはこれまで説明してきた分散学習におけるエラー検知、ノードの安全なシャットダウン、ノードのジョブの回復、定期的なノードのヘルスチェック、マイグレーションを行うために開発されたツールである。開発途上であり、まだ部分的な機能しか実装されていないことが「we solved the problems, partially」という一文に表現されていると言える。
Kcoverのアーキテクチャーを解説するスライドではCollectorとRecovery Managerというモジュールが解説された。
具体的な機能について解説するスライドではエラー収集にラベルを使うこと、さまざまなエラーと終了のコードを収集した後にジョブのシャットダウンを安全に行い、リカバリーが始まることなどを説明した。NVIDIA製のさまざまなテストツールなどを組み込むことで、定期的なヘルスチェックを行うことなども説明された。
インストールやラベルの設定などについても説明を行った。Kubernetesの作法に従った動作スタイルを踏襲していることがわかる。
最後に再度Fanshi Zhang氏がプレゼンテーションを行い、今後の予定、コミュニティとの協調について説明を行った。
しかし実際にKcoverのGitHubページを参照してみればわかるが、コントリビュータは回のセッションの登壇者2名だけがリストされているのが見てとれる。つまり、DaoCloudのGPUクラスター運用のためのソフトウェアという感が強い。実際にはDaoCloud社内にGitリポジトリーが存在して開発され、DaoCloudに依存しない仕様のコードだけがGitHubに公開されているという状態なのではないだろうか。
今回のKubeCon Chinaでは多くのこれまで聞いたことのないオープンソースソフトウェアが紹介されていたこと、中国ではGitHubよりもGiteeがリポジトリーサービスとしては台頭していることなどを考えると、中国以外では流通していないオープンソースソフトウェアが多く存在することは明らかだろう。
●Kcoverの公式GitHubページ:https://github.com/BaizeAI/kcover
香港の会場では元Juniper NetworksのVPだったRandy Bias氏が参加しており、久しぶりに対面したが、Bias氏も初めて聞く中国製のオープンソースソフトウェアの多さに驚いていた。「中国のオープンソースは自国内で独自に進化しているけど規模も大きいから、ガラパゴス島というよりはガラパゴス大陸だね」とコメントしたところ「気に入った。何かに使わせてもらうよ」と笑っていた。ちなみにBias氏の現在の仕事はMirantisの「VP Open Source Strategy and Technology」だという。
2018年に行ったRandy Bias氏のインタビューは以下から参照されたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KubeCon China 2024、GPUノードのテストツールKWOKを解説するセッションを紹介
- KubeCon China 2024、GPUの故障を検知するOSSを解説するセッションを紹介
- CloudNative Days Tokyo 2023から、NVIDIA H100を80基使ったKubernetesベースの機械学習プラットフォームを解説
- 生成AI向け機械学習クラスター構築のレシピ 北海道石狩編
- KubeCon EU 2022からバッチシステムをKubernetesで実装するVolcanoを紹介
- GPUとOpenStackのホットな関係が紹介された日本仮想化技術(株)の技術セミナー
- CloudNative Days Tokyo 2023から、WasmのクラウドネイティブやAI推論での利用を解説
- AI_dev、PyTorch Lightningの開発者による生成型AIの開発を加速させるツール群Lightning Studioのセッションを紹介
- Red Hat Summit 2024開催。キーノートから見えてきた生成AIへの熱い期待
- GTC 2019ではFacebook、Google、Walmartなどによる人工知能関連のセッションが満載