Platform for AI (PAI) の Deep Learning Containers (DLC) を使用した分散トレーニングは、柔軟で信頼性が高く、パフォーマンスに優れた機械学習トレーニング環境を提供します。DataWorks は PAI DLC ノードを提供しており、これを使用して DLC ジョブをロードし、スケジュール依存関係を設定して、ジョブをスケジュールどおりに実行できます。
前提条件
DataWorks に、PAI にアクセスするために必要な権限が付与されていること。
権限付与ページにアクセスして、ワンクリックで権限を付与できます。アクセスポリシーの詳細については、「AliyunServiceRoleForDataWorksEngine」をご参照ください。Alibaba Cloud アカウントまたは AliyunDataWorksFullAccess ポリシーを持つ Resource Access Management (RAM) ユーザーのみが、ワンクリック権限付与を実行できます。
プロジェクトフォルダが作成されていること。詳細については、「プロジェクトフォルダ」をご参照ください。
PAI DLC ノードが作成されていること。詳細については、「スケジュールワークフローのノード作成」をご参照ください。
操作手順
PAI DLC ノードの編集ページで、タスクを開発します。
タスクコードの開発
DLC ジョブコードは、次のいずれかの方法で作成できます。
既存の DLC ジョブに基づくタスクコードの作成
PAI で DLC ジョブを名前で検索してロードします。ジョブをロードすると、DLC ノードエディターは PAI でのジョブの構成に基づいてノードコードを生成します。その後、コードを編集できます。
説明ジョブをロードまたは作成する権限がない場合は、画面の指示に従って権限を付与してください。
利用可能なジョブがない場合は、PAI コンソールに移動して作成してください。PAI DLC ジョブはいくつかの方法で作成できます。詳細については、「トレーニングジョブの作成」、「トレーニングジョブの作成: Python SDK」、および「トレーニングジョブの作成: コマンドライン」をご参照ください。
DLC タスクコードの直接作成
DataWorks の PAI DLC ノードエディターで、タスクコードを直接作成できます。
ノードエディターでタスクコードを開発し、${variable_name} 形式を使用して変数を定義できます。その後、ページ右側の プロパティ の下にある スケジュールパラメーター セクションで、変数に値を割り当てることができます。これにより、スケジュールシナリオでコードにパラメーターを動的に渡すことができます。スケジュールパラメーターの詳細については、「スケジュールパラメーターのソースと式」をご参照ください。次のコードは一例です。
dlc submit pytorchjob \ # DLC を使用して PyTorch ジョブを送信します。 --name=test \ # DLC ジョブの名前。変数名または DataWorks ノード名を使用します。 --command='echo '\''hi'\''' \ # ジョブで実行されるコマンド。この例では、コマンドは echo 'hi' です。 --workspace_id=309801 \ # ジョブが実行されるワークスペース。 --priority=1 \ # ジョブの優先度。有効な値: 1~9。値 1 は最も低い優先度を示し、値 9 は最も高い優先度を示します。 --workers=1 \ # タスクノードの数。値が 1 より大きい場合、ジョブは分散タスクとなり、複数のノードで同時に実行できます。 --worker_image=<image> \ # ワーカーが実行するイメージのパス。 --image_repo_username=<username> \ # プライベートイメージの権限を付与します。 --image_repo_password=<password> \ # プライベートイメージの権限を付与します。 --data_source_uris=oss://oss-cn-shenzhen.aliyuncs.com/::/mnt/data/:{mountType:jindo} \ # Object Storage Service (OSS) データソースをコンテナー内の指定されたパスにマウントします。この例では、マウントタイプは jindo です。 --worker_spec=ecs.g6.xlarge # ノード構成。使用するコンピュートノードの仕様です。タスクコードを開発した後、ノードを設定して実行します。
実行設定 セクションで、リソースグループ を設定します。
データソースに接続できるスケジュールリソースグループを選択します。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ツールバーで 実行 をクリックして、ノードタスクを実行します。
ノードタスクをスケジュールどおりに実行するには、そのスケジュールプロパティを設定します。詳細については、「ノードのスケジュールプロパティの設定」をご参照ください。
ノードを設定した後、公開する必要があります。詳細については、「ノードまたはワークフローの公開」をご参照ください。
ノードが公開されると、オペレーションセンターで定期タスクの実行ステータスを確認できます。詳細については、「オペレーションセンターの概要」をご参照ください。