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などのメッセージキューを介してリアルタイムストリーミングデータを統合可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト