Deep Learning Containers (DLC) は、Lingjun AI Computing Service や GPU を含む複数のフレームワークとコンピューティングリソースをサポートする、Kubernetes ベースのトレーニングプラットフォームです。
メリット
-
多様なコンピューティングリソース:
Lingjun AI Computing Service 上のさまざまなインスタンスタイプや、Elastic Compute Service (ECS)、Elastic Container Instance (ECI)、神龍ベアメタルインスタンス、Lingjun ベアメタルインスタンスなどの汎用コンピューティングリソースをサポートします。ヘテロジニアスコンピューティング能力のハイブリッドスケジューリングが利用可能です。
-
複数の分散ジョブタイプ:
Megatron、DeepSpeed、PyTorch、TensorFlow、Slurm、Ray、MPI、XGBoost など、10 種類以上のトレーニングフレームワークを、個別のクラスターを構築することなくサポートします。DLC は、ビルド済みの公式イメージを提供し、カスタム実行環境をサポートしており、コンソール、SDK、または CLI からジョブを受け付けます。
-
フォールトトレランス:
大規模モデルトレーニングのために、DLC はフォールトトレランスエンジンの AIMaster、チェックポイントフレームワークの EasyCKPT、ヘルスチェック機能の SanityCheck、およびノードの自己修復を提供します。これらの機能は、障害を自動的に検出して回復し、コンピューティング能力の損失を削減します。
-
トレーニングの高速化:
組み込みの高速化フレームワークは、データ並列処理、パイプライン並列処理、演算子分割、ネストされた並列戦略を通じて、分散トレーニングの効率を向上させます。このフレームワークはまた、並列戦略の自動探索、多次元メモリー最適化、トポロジーを意識したスケジューリング、および勾配グループの融合と圧縮を備えた最適化された通信ライブラリも提供します。
リソースタイプ
DLC トレーニングジョブを送信する際は、次のいずれかのリソースタイプを選択します:
-
Lingjun AI Computing Service:大規模モデルトレーニングや、自動運転、科学研究などの超大規模ディープラーニングタスク向けに設計されたコンピューティングリソースです。
-
汎用コンピューティングリソース:標準的なトレーニングニーズに適しています。さまざまな規模や種類の機械学習タスクをサポートします。
Lingjun AI Computing Service と汎用コンピューティングリソースは、次の方法で利用できます:
-
リソースクォータ:Lingjun AI Computing Service または汎用コンピューティングリソースのサブスクリプションを事前に購入することで、柔軟なリソース管理が可能になります。
-
パブリックリソース:トレーニングジョブを送信する際に、リソースを事前に購入することなく、オンデマンドで Lingjun AI Computing Service または汎用コンピューティングリソースを使用します。従量課金ベースで請求されます。
-
プリエンプティブルリソース:Lingjun AI Computing Service は、より低コストで AI コンピューティング能力を取得するためのプリエンプティブルリソースを提供します。
ユースケース
-
データの前処理
オフラインでの並列データ前処理のために実行環境をカスタマイズし、データエンジニアリングを簡素化します。
-
大規模な分散トレーニング
さまざまなオープンソースの深層学習フレームワークを使用して、大規模なオフライン分散トレーニングを実行します。DLC は、数千ノードでの同時トレーニングをサポートします。
-
オフライン推論
DLC 上でオフライン推論ジョブを実行し、アイドル状態の GPU リソースの利用率を向上させます。
ワークフロー
モデルトレーニング中に、DLC を使用して大規模な分散トレーニングジョブを起動します。ワークフローは次のとおりです:
-
事前準備
トレーニングジョブを送信する前に、コンピューティングリソース、イメージ、データセット、およびコードリポジトリを準備します。詳細な手順については、「事前準備」をご参照ください。
-
トレーニングジョブの作成
コンソール、SDK、または CLI からトレーニングジョブを送信します。パラメーターの詳細については、「トレーニングジョブの作成」をご参照ください。
DLC ジョブを送信する際に、次の高度な機能を設定します:
-
自動フォールトトレランス:AIMaster インスタンスを起動してジョブを監視し、障害から自動的に回復します。
-
ヘルスチェック:トレーニング前にリソースに対して SanityCheck を実行し、障害のあるノードを自動的に隔離して、ジョブの起動失敗を減らします。
-
EasyCKPT:データ損失なしで大規模な PyTorch モデルを保存および回復し、チェックポイントからのトレーニング再開をサポートします。
-
RDMA 設定:Lingjun AI Computing Service リソースに RDMA ネットワークを設定し、分散トレーニングにおけるノード間通信を高速化します。
-
ストレージ設定:コード内で設定するか、ボリュームとしてマウントすることで、Object Storage Service (OSS)、Network Attached Storage (NAS)、Cloud Parallel File System (CPFS)、または MaxCompute 内のトレーニングデータにアクセスします。
-
SLS ログ転送:カスタム分析とモニタリングのために、DLC ジョブのログを指定された Log Service (SLS) の Logstore に転送します。
-
プリエンプティブルリソース:Lingjun AI Computing Service のプリエンプティブルリソースを使用して、より低コストで AI コンピューティング能力を取得します。
-
-
トレーニングジョブの表示と管理
ジョブを送信した後、「トレーニングジョブの詳細を表示」してステータスを監視します。ジョブの停止、複製、共有、削除などの操作も利用できます。詳細については、「トレーニングジョブの管理」をご参照ください。
-
トレーニングジョブのモニタリング
トレーニングジョブを送信した後、次の方法でモニタリングします:
-
データセットがバインドされたトレーニングジョブの場合、「トレーニングジョブ分析レポートを表示」します。
-
CloudMonitor または Application Real-Time Monitoring Service (ARMS) を使用して、ご利用の DLC ジョブのリソースステータスを表示したり、アラートルールを設定したりします。詳細については、「CloudMonitor または ARMS を使用したトレーニングジョブのモニタリング」をご参照ください。
-
PAI ワークスペースのイベントセンターでメッセージ通知ルールを作成し、DLC ジョブのステータスを監視します。詳細については、「メッセージ通知の設定」をご参照ください。
-
-
スケジュールされたトレーニングジョブの設定
更新されたデータやハイパーパラメーターを使用して継続的なトレーニングやモデルのチューニングを行うには、「オフラインスケジューリングを設定」して、DLC ジョブを定期的に送信します。
DLC 関連のその他のユースケースについては、「DLC チュートリアル」をご参照ください。
関連トピック
-
トレーニングジョブの作成:コンソール、SDK、または CLI からトレーニングジョブを送信し、主要なパラメーターを設定します。
-
DLC ユースケース:DLC を使用するための実践的な例です。