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