Platform for AI (PAI) の Deep Learning Containers (DLC) は、分散方式でトレーニングタスクを実行するために使用されます。DataWorks は PAI DLC ノードを提供します。このタイプのノードを使用して、既存の DLC タスクを読み込み、スケジューリング依存関係を設定して、DLC タスクの定期的なスケジューリングを実装できます。
前提条件
DataWorks が PAI にアクセスする権限を持っている。
認証ページ でワンクリックで認証を完了できます。 認証に基づいて作成されるサービスリンクロールの詳細については、ロール 1: AliyunServiceRoleForDataworksEngine をご参照ください。[aliyundataworksfullaccess] ポリシーがアタッチされている Alibaba Cloud アカウントまたは RAM ユーザーのみが、ワンクリック認証を実行できます。
ワークフローが作成されている。
DataStudio では、ワークフローに基づいて異なる開発エンジンで開発操作が実行されます。ノードを作成する前に、ワークフローを作成する必要があります。 詳細については、ワークフローの作成 をご参照ください。
注意事項
PAI DLC ノードが実行されるたびに、PAI の DLC プラットフォームに新しい DLC タスクが生成されます。 DataWorks を使用して PAI DLC ノードを定期的にスケジュールする場合、同じ名前の複数のタスクが PAI で生成されないようにするために、DataWorks で DLC タスクを開発する際に、ビジネス要件に基づいて適切なスケジューリングサイクルを設定することをお勧めします。 また、タスク名に datetime 変数を追加し、時間ベースのスケジューリングパラメータを変数に値として割り当てることもお勧めします。 これにより、タスク名に日付と時刻を追加できます。 詳細については、このトピックの 手順 2: PAI DLC タスクの開発 セクションをご参照ください。
共有リソースグループを使用して PAI DLC タスクを実行するようにスケジュールすることはできません。
このトピックで説明されている操作は、中国 (上海) リージョンで実行されます。 DataWorks コンソールに表示される手順に基づいて、他のリージョンで操作を実行できます。
手順 1: PAI DLC ノードを作成する
DataStudio ページに移動します。
DataWorks コンソール にログオンします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションペインで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
DataStudio ページで、目的のワークフローを見つけ、ワークフロー名を右クリックし、 を選択します。
[ノードの作成] ダイアログボックスで、[名前] パラメータを設定し、[確認] をクリックします。 その後、ノードを使用してタスクを開発し、タスクスケジューリングプロパティを設定できます。
手順 2: PAI DLC タスクを開発する
タスクコードの開発: 簡単な例
PAI DLC ノードの設定タブで、次のいずれかの方法を使用して DLC タスクコードを記述できます。
既存の DLC タスクに基づいてタスクコードを記述する。
タスク名で PAI に作成された DLC タスクを読み込むことができます。 タスクを読み込むと、DLC ノードエディターは PAI のタスクの設定に基づいてノードコードを生成します。 その後、コードに基づいてタスク設定を変更できます。
説明タスクの読み込みまたは作成に必要な権限がない場合は、画面の指示に従って必要な権限を取得してください。
タスクがない場合は、PAI コンソールでタスクを作成します。 PAI で DLC タスクを作成するには、さまざまな方法が用意されています。 ビジネス要件に基づいて方法を選択できます。 詳細については、トレーニングジョブの送信、Python 用 SDK を使用したジョブの送信、および CLI を使用したジョブの送信 をご参照ください。
DLC タスクコードを直接記述する。
DataWorks の PAI DLC ノードのコードエディターで、ビジネス要件に基づいてタスクコードを記述します。
タスクコードを記述して実行すると、タスクコードに基づいて PAI に新しい DLC タスクが生成されます。 タスクコードの例:
dlc submit xgboostjob \ // DLC タスクを送信します。
--name=wsytest_pai04_XGBoost \ // DLC タスクの名前。 DataWorks の変数名またはノード名を使用することをお勧めします。
--command='echo '\''${Variable}'\'';' \ // DLC タスクで実行するコマンド。
--workspace_id=80593 \ // DLC タスクを実行するワークスペース。
--priority=1 \ // タスクの優先順位。 有効な値: 1 ~ 9。 値 1 は最低の優先順位を指定します。 値 9 は最高の優先順位を指定します。
--workers=1 \ // タスクを実行するノードの数。 ノード数が 1 より大きい場合、タスクは分散タスクであり、複数のノードで同時に実行できます。
--worker_image=registry.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:2.3-cpu-py36-ubuntu18.04 \ // DLC タスクにランタイム環境を提供するために使用されるノードイメージ。
--worker_spec=ecs.g6.xlarge // コンピュートノードのインスタンスタイプ。
SQL コードの開発: スケジューリングパラメータを使用する
DataWorks は、周期的なスケジューリングシナリオでスケジューリングパラメータの設定に基づいて、ノードのコードで値が動的に置き換えられる [スケジューリングパラメータ] を提供します。${Variable} 形式でノードコードに変数を定義し、[プロパティ] タブの [スケジューリングパラメータ] セクションで変数に値を割り当てることができます。 サポートされているスケジューリングパラメータの形式については、スケジューリングパラメータでサポートされている形式 をご参照ください。
スケジューリングパラメータのコード例:
--command='echo '\''${Variable}'\'';' \ // 特定のスケジューリングパラメータを変数に割り当てることができます。
手順 3: タスクスケジューリングプロパティを設定する
作成したノードでタスクを定期的に実行する場合は、ノード設定タブの右側のナビゲーションペインにある [プロパティ] をクリックして、ビジネス要件に基づいてノードのスケジューリング情報を設定します。 詳細については、概要 をご参照ください。
タスクをコミットする前に、[再実行] パラメータと [親ノード] パラメータを [プロパティ] タブで設定する必要があります。
手順 4: タスクのデバッグ コード
次の操作を実行して、タスクがビジネス要件に基づいて期待どおりに設定されているかどうかを確認できます。
オプション。 リソースグループを選択し、カスタムパラメータを変数に割り当てます。
ノードの設定タブの上部ツールバーにある
アイコンをクリックします。 [パラメータ] ダイアログボックスで、デバッグおよびタスクコードの実行に使用するスケジューリング用のリソースグループを選択します。タスクコードでスケジューリングパラメータを使用する場合は、デバッグのために、スケジューリングパラメータを変数に値として割り当てることができます。 スケジューリングパラメータの値割り当てロジックの詳細については、実行、パラメータ付き実行、開発環境でのスモークテストの実行モードにおけるスケジューリングパラメータの値割り当てロジックの違いは何ですか? をご参照ください。
SQL ステートメントを保存して実行します。
上部ツールバーで、
アイコンをクリックして SQL ステートメントを保存します。 次に、
アイコンをクリックして SQL ステートメントを実行します。オプション。 スモークテストを実行します。
タスクをコミットするとき、またはタスクをコミットした後に、タスクが期待どおりに実行されるかどうかを確認するために、開発環境でタスクのスモークテストを実行できます。 詳細については、スモークテストの実行 をご参照ください。
手順 5: タスクをコミットしてデプロイする
ノードのタスクが設定されたら、タスクをコミットしてデプロイする必要があります。 タスクをコミットしてデプロイすると、システムはスケジューリング設定に基づいてタスクを定期的に実行します。
上部ツールバーの
アイコンをクリックしてタスクを保存します。上部ツールバーの
アイコンをクリックしてタスクをコミットします。[送信] ダイアログボックスで、[変更の説明] パラメータを設定します。 次に、タスクをコミットした後に、ビジネス要件に基づいてタスクコードを確認するかどうかを決定します。
説明タスクをコミットする前に、[再実行] パラメータと [親ノード] パラメータを [プロパティ] タブで設定する必要があります。
コードレビュー機能を使用して、タスクのコード品質を確保し、無効なタスクコードによって引き起こされるタスク実行エラーを防ぐことができます。 コードレビュー機能を有効にすると、コミットされたタスクコードは、タスクコードがコードレビューに合格した後にのみデプロイできます。 詳細については、コードレビュー をご参照ください。
標準モードのワークスペースを使用する場合は、タスクをコミットした後に、実稼働環境にタスクをデプロイする必要があります。 ノードのタスクをデプロイするには、ノードの設定タブの右上隅にある [デプロイ] をクリックします。 詳細については、ノードのデプロイ をご参照ください。
次のステップ
タスクをコミットしてデプロイすると、タスクはスケジューリング設定に基づいて定期的に実行されます。 対応するノードの設定タブの右上隅にある [オペレーションセンター] をクリックしてオペレーションセンターに移動し、タスクのスケジューリングステータスを表示できます。 詳細については、自動トリガーノードの表示と管理 をご参照ください。