Easy Parallel Library (EPL) は、分散モデルトレーニングのための効率的で使いやすいフレームワークです。 EPL は、複数のトレーニング最適化技術を組み込み、並列化戦略を実装できるユーザーフレンドリな API 操作を提供します。 EPL を使用して、分散モデルトレーニングのコストを削減し、効率を向上させることができます。 このトピックでは、EPL を使用して Deep Learning Containers (DLC) での TensorFlow 分散モデルトレーニングを高速化する方法について説明します。
準備
このトピックで説明する操作を実行する前に、次の要件が満たされていることを確認してください。
DLC のサービスリンクロールに権限を付与していること。 詳細については、「クラウドサービスの依存関係と権限付与: DLC」をご参照ください。
公式イメージ、または次のコミュニティイメージのいずれかがデプロイされていること: NVIDIA TensorFlow 1.15 または TensorFlow-GPU 1.15。
公式イメージ (公式イメージ (PAI チームが提供する最適化されたイメージ)) を使用する場合、インストールせずに EPL を直接使用できます。
コミュニティイメージ (コミュニティイメージ (コミュニティが提供する標準イメージ)) を使用する場合、使用する前に EPL をインストールする必要があります。 EPL のインストール方法の詳細については、「EPL のインストール」をご参照ください。
説明DLC プラットフォームを使用する場合は、コミュニティイメージ
tensorflow-training:1.15-gpu-py36-cu100-ubuntu18.04を選択することをお勧めします。 DLC でコマンドを実行して EPL をインストールできます。
ステップ 1: コードビルドの構成
EPL を使用して TensorFlow 分散トレーニングコードを記述できます。 詳細については、「クイックスタート」をご参照ください。
また、EPL が提供するサンプルコードを使用して、TensorFlow 分散モデルトレーニングを開始することもできます。 この例では、ResNet50 トレーニングデータセットを使用してコードビルドを作成します。 コードビルドを使用して TensorFlow トレーニングジョブを送信できます。 モデルトレーニングが実行されるたびに、最新バージョンが自動的にクローンされます。 コードビルドを構成するには、次のステップを実行します。
コードビルドページに移動します。
PAI コンソールにログインします。
左側のナビゲーションウィンドウで、[Workspaces] をクリックします。 [Workspaces] ページで、管理するワークスペースの名前をクリックします。
左側のナビゲーションウィンドウで、 を選択して、コードビルドページに移動します。
[コード構成] ページで、[コードビルドの作成] をクリックします。
[コード構成の作成] ページで、パラメーターを構成し、[送信] をクリックします。
[Git URL] を
https://github.com/alibaba/EasyParallelLibrary.gitに、[ブランチ] を main に設定します。 その他のパラメーターの詳細については、「コード構成」をご参照ください。
ステップ 2: トレーニングジョブの開始
ジョブの作成ページに移動します。
PAI コンソールにログインし、上部のナビゲーションバーでリージョンを選択し、右側のセクションでワークスペースを選択してから、[DLC に移動] をクリックします。
分散トレーニング (DLC) ページで、[ジョブの作成] をクリックします。
[ジョブの作成] ページで、次の主要なパラメーターを構成します。 その他のパラメーターの詳細については、「トレーニングジョブの作成」をご参照ください。 次に、[OK] をクリックします。
[基本情報] セクションで、ジョブ名をカスタマイズします。
[環境情報] セクションで、次のパラメーターを構成します。
パラメーター
値の例
ノードイメージ
[公式イメージ] > [tensorflow-training:1.15-gpu-py36-cu100-ubuntu18.04] を選択します。
起動コマンド
apt update apt install libnccl2 libnccl-dev cd /root/code/EasyParallelLibrary/ pip install . cd examples/resnet bash scripts/train_dp.shコード構成
[オンライン構成] ドロップダウンリストから、ステップ 1 で構成したコードビルドを選択し、[ブランチ] を main に設定します。
[リソース情報] セクションで、次のパラメーターを構成します。
パラメーター
値の例
リソースソース
[パブリックリソース] を選択します。
フレームワーク
[TensorFlow] を選択します。
ジョブリソース
ワーカーノードに次のパラメーターを構成します。
ノード数: このパラメーターを 2 に設定します。 トレーニングジョブの要件に基づいて値を変更できます。
リソース仕様: GPU 仕様 ecs.gn6v-c8g1.2xlarge を選択します。
最大実行時間
このパラメーターを 2 に設定します。 単位: 時間。
[ジョブリソース構成] パラメーターを次のように構成します。
パラメーター
値の例
ノード数
このパラメーターを 2 に設定します。 トレーニングジョブの要件に基づいて値を変更できます。
ノード構成
[GPU インスタンス] タブで、[ecs.gn6v-c8g1.2xlarge] を選択します。
最大実行時間
2。 単位: 時間。
分散トレーニングジョブページで、管理するジョブの名前をクリックしてジョブ詳細ページに移動します。 ジョブの実行ステータスを表示します。 詳細については、「トレーニング詳細の表示」をご参照ください。
参考資料
EPL の詳細については、「EPL」をご参照ください。
DLC の詳細については、「分散トレーニング (DLC)」をご参照ください。