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