intelligent-machine-learning/dlrover

DLRover: An Automatic Distributed Deep Learning System

何を解決するか

DLRoverは、大規模AIモデルの分散ディープラーニングトレーニングにおけるエンジニアリングの複雑さに対処します。特に、大規模クラスタ(K8s/Ray)上でトレーニングを行う際の不安定性、ダウンタイム、リソースの非効率性を解消し、開発者がハードウェアアクセラレーションや分散ランタイムの管理ではなく、モデルアーキテクチャに集中できるようにします。

仕組み

DLRoverはトレーニングジョブの自動運用・保守レイヤーを提供します。以下の主要なメカニズムを採用しています:

  • フェイルセーフ(障害耐性):障害を自動的に診断し、ソフトウェアエラーの場合は特定プロセスを再起動、ハードウェアエラーの場合は失敗したノードを再起動することで、ジョブ全体を停止せずに復旧します。
  • フラッシュチェックポイント:メモリ内チェックポイントを使用して、モデル状態を数秒で保存・ロードし、SSDやNASストレージと比較してI/Oにかかる時間を大幅に削減します。
  • 自動スケーリング:ノードのワークロードとスループットを監視し、リソースを動的に増減させ、ノードの遅延やパラメータサーバーの負荷不均衡といったボトルネックを緩和します。
  • 動的データシャーディング:データセットを小さなシャードに分割し、失敗したワーカーから失われたシャードを復元し、より高速なワーカーにシャードを再割り当てすることで、遅延ワーカーの影響を低減します。

対象ユーザー

PyTorchやTensorFlowを使用してKubernetesまたはRay上で大規模AIモデル(例:LLM)を分散クラスタでトレーニングするモデル開発者やMLエンジニア。

主な特徴

  • 高いグッドプット:数千のGPU上でGLM-65Bのトレーニングのグッドプットを69%から95%に向上。
  • 迅速な復旧:共有メモリを介してフラッシュチェックポイントにより、障害からの復旧を数秒で実現。
  • 広範なフレームワーク対応:PyTorch(DDP、FSDP、DeepSpeed、Megatron-LM)およびTensorFlowとの統合を提供。
  • インフラストラクチャの柔軟性:KubernetesおよびRayアーキテクチャの両方をサポート。
  • オンライン学習:KafkaやPulsarなどのメッセージキューを介してリアルタイムストリーミングデータを統合可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト