【DSW Gallery】How to use the command line tool to submit DLC tasks
概要
PAI-DLC (Deep Learning Containers) は、Alibaba Cloud Container Service for Kubernetes (ACK) を基盤とするディープラーニングトレーニングプラットフォームです。柔軟で安定した、使いやすく高性能なディープラーニングトレーニング環境を提供します。
PAI プラットフォームでは、PAI コンソールインターフェイスでのタスク提出に加え、包括的な SDK と OpenAPI を提供しており、コードベースのタスク提出を実現できます。これにより、PAI-DLC を日々のプロダクションでより柔軟に活用できます。
この記事では、PAI-DLC が提供する CLI を使用してトレーニングタスクを提出する方法を紹介します。
PAI-DLC のパブリックリソースグループまたはプライベートリソースグループのタスクをインターフェイスから提出する場合は、DLC コマンドラインツールのユーザーマニュアルを参照してください。
前提条件
• PAI-DLC を有効化し、権限付与を完了していること。詳細は、「クラウドプロダクトの依存関係と権限付与:DLC」を参照してください。
• サブスクリプションのトレーニングタスクを提出する場合は、リソースグループクラスターを準備してください (この記事では DLC 排他的リソースグループを使用します)。
• Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret を取得していること。詳細は、「AccessKey の取得」を参照してください。
Step 1:DLC CLI のインストール
DLC コマンドライン Mac amd64 版ダウンロードリンク
DLC コマンドライン Mac arm 版ダウンロードリンク
DLC コマンドライン Linux 版ダウンロードリンク
実際の使用では、DLC コマンドラインツールを /usr/local/bin に配置し、chmod で実行権限を付与した後、以下のコマンドで関連付けます。
export dlc=/usr/local/bin/dlc
AI ワークスペースの準備 (必須)
ワークスペースは PAI の最上位の概念であり、チームに統一されたコンピューティングリソース管理と権限管理の機能を提供します。AI 開発者にチーム協働をサポートするフルプロセスの開発ツールと AI アセット管理の機能を提供することを目的としています。
PAI プラットフォームを有効化すると、デフォルトのワークスペースが自動的に作成されます。
イメージの準備 (必須)
トレーニングタスクを実行するには、コンピューティングノードで使用するイメージを明示的に指定する必要があります。PAI-DLC では、さまざまな種類のイメージを使用できます。
• コミュニティイメージ:コミュニティが提供する標準イメージです。各イメージの詳細は、「コミュニティイメージのバージョン詳細」を参照してください。
• PAI プラットフォームイメージ:Alibaba Cloud PAI プロダクトが提供する各種公式イメージで、さまざまなリソースタイプ、Python バージョン、およびディープラーニングフレームワーク TensorFlow と PyTorch に対応しています。イメージ一覧は、「パブリックイメージ一覧」を参照してください。
• ユーザー定義イメージ:PAI に追加したカスタムイメージを使用できます。選択する前に、カスタムイメージを PAI に追加する必要があります。詳細は、「イメージの表示と追加」を参照してください。
• イメージアドレス:独自のカスタムイメージを使用できます。イメージアドレスを選択した後、パブリックネットワーク環境でアクセス可能な Docker Registry のイメージ URL を設定ボックスに入力する必要があります。
データセットの準備 (オプション)
高品質なデータセットは高精度なモデルの基盤であり、データ準備の核心的な目標です。PAI プラットフォームはデータセット管理モジュールを提供しており、各種データ (ローカルデータ、Alibaba Cloud 上のデータなど) をデータセットとして登録できます。また、OSS フォルダーをスキャンしてインデックスデータセットを生成し、モデルトレーニングの準備を整えることもできます。
コードソースの準備 (オプション)
モデルトレーニングタスクの提出などの操作する際、通常、独自のトレーニングコードを提供する必要があります。PAI はコード設定機能を提供しており、使用するコードリポジトリを AI アセットとして作成でき、複数のタスクから簡単に参照できます。
Step 2:トレーニングタスクの提出
上記でトレーニングに必要なリソースと設定が準備できました。次にタスクを提出します。インターフェイスの詳細については、API リファレンスを参照してください。
コマンドラインツールの設定
コマンドラインツールを使用する前に、ツールの設定が必要です。AccessKey ID、AccessKey Secret、および対応するリージョンの DLC サービスエンドポイントを入力します。
dlc config --access_id {.ak-id }
--access_key{.ak-secret}
--endpoint 'pai-dlc.{region-id}.aliyuncs.com' # region-id such as cn-beijing/cn-hangzhou
--region cn-hangzhou
サブスクリプションジョブの作成
排他的リソースグループ (サブスクリプションリソースグループとも呼ばれます) は PAI が提供する新機能で、現在テスト段階にあります。ご利用の場合は PAI チームにお問い合わせください。サブスクリプションリソースグループのリソースはユーザー専用であり、DLC タスクや DSW インスタンスを提出する際に、タスクまたはインスタンスのリソース量を指定できます。提出されたタスクがリソースグループの総容量を超えると、自動的にキューイングされます。ユーザーはキュー内のタスクの優先度を変更して、タスクの実行順序を制御できます。
リソースグループに提出されるジョブは、オールオアナッシング (Gang Scheduling とも呼ばれます) の原則に従います。つまり、ジョブに必要なすべてのワーカーがリソースを確保できた場合にのみ、実行がスケジュールされます。これにより、一部のワーカーだけがクラスターに送信されてリソースが無駄になることを回避します。
以下のサンプルコマンドは、ワークスペース 46099 に DLC サブスクリプションのトレーニングタスクを提出し、タスクをサブスクリプションリソースグループ rgo80s1uv05bplin にスケジュールする例です。
タスクステータスの表示とログの取得:
タスクのログを表示するには、タスクの job_id と pod_id を指定する必要があります。上記で提出したタスクを例に説明します。
dlc logs dlcylztabt7alg7p dlcylztabt7alg7p-worker-0 --max_events_num=20
従量課金マルチマシン分散トレーニングジョブの作成
従量課金は、DLC が最初にサポートしたビジネスモデルです。ユーザーはオンデマンドでリソースをプロビジョニングでき、タスク終了後にすべてのリソースが解放されます。
ここでは、TensorFlow のマルチマシン分散タスクを例に、DLC コマンドラインツールを使用したマルチマシン分散タスクの作成方法を紹介します。
TFJob では、ユーザーが成功ポリシーをカスタマイズできます。
--success_policy=ChiefWorker このモードでは、TF 分散マルチマシンタスクの Chief の Pod が成功すると、タスク全体が成功とみなされ、タスクが終了します。
--success_policy=AllWorkers (デフォルト) このモードでは、TF 分散マルチマシンタスクのすべてのワーカーが成功して初めて、タスク全体が成功とみなされます。
タスク YAML の表示
get job コマンドを使用します。
./dlc get job dlc1fifr7w6ycnp
タスクの停止
stop job コマンドを使用します。
./dlc stop job dlc1fif7r7w6ycnq
Step 3:トレーニングタスクの確認
上記の PAI-DLC タスクを提出した後、以下のコードでタスクのステータスをリアルタイムで確認できます。コマンドラインツールは多次元でタスクをクエリできます。詳細なパラメーターリストは、`dlc get job -h` で確認できます。ここでは、前述のタスクのサブスクリプションリソースグループ内の「Running」ステータスのタスクを表示する例を示します。
dlc get job --resource_id='rgo80s1uv05bplin' --status='Running'
PAI-DLC (Deep Learning Containers) は、Alibaba Cloud Container Service for Kubernetes (ACK) を基盤とするディープラーニングトレーニングプラットフォームです。柔軟で安定した、使いやすく高性能なディープラーニングトレーニング環境を提供します。
PAI プラットフォームでは、PAI コンソールインターフェイスでのタスク提出に加え、包括的な SDK と OpenAPI を提供しており、コードベースのタスク提出を実現できます。これにより、PAI-DLC を日々のプロダクションでより柔軟に活用できます。
この記事では、PAI-DLC が提供する CLI を使用してトレーニングタスクを提出する方法を紹介します。
PAI-DLC のパブリックリソースグループまたはプライベートリソースグループのタスクをインターフェイスから提出する場合は、DLC コマンドラインツールのユーザーマニュアルを参照してください。
前提条件
• PAI-DLC を有効化し、権限付与を完了していること。詳細は、「クラウドプロダクトの依存関係と権限付与:DLC」を参照してください。
• サブスクリプションのトレーニングタスクを提出する場合は、リソースグループクラスターを準備してください (この記事では DLC 排他的リソースグループを使用します)。
• Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret を取得していること。詳細は、「AccessKey の取得」を参照してください。
Step 1:DLC CLI のインストール
DLC コマンドライン Mac amd64 版ダウンロードリンク
DLC コマンドライン Mac arm 版ダウンロードリンク
DLC コマンドライン Linux 版ダウンロードリンク
実際の使用では、DLC コマンドラインツールを /usr/local/bin に配置し、chmod で実行権限を付与した後、以下のコマンドで関連付けます。
export dlc=/usr/local/bin/dlc
AI ワークスペースの準備 (必須)
ワークスペースは PAI の最上位の概念であり、チームに統一されたコンピューティングリソース管理と権限管理の機能を提供します。AI 開発者にチーム協働をサポートするフルプロセスの開発ツールと AI アセット管理の機能を提供することを目的としています。
PAI プラットフォームを有効化すると、デフォルトのワークスペースが自動的に作成されます。
イメージの準備 (必須)
トレーニングタスクを実行するには、コンピューティングノードで使用するイメージを明示的に指定する必要があります。PAI-DLC では、さまざまな種類のイメージを使用できます。
• コミュニティイメージ:コミュニティが提供する標準イメージです。各イメージの詳細は、「コミュニティイメージのバージョン詳細」を参照してください。
• PAI プラットフォームイメージ:Alibaba Cloud PAI プロダクトが提供する各種公式イメージで、さまざまなリソースタイプ、Python バージョン、およびディープラーニングフレームワーク TensorFlow と PyTorch に対応しています。イメージ一覧は、「パブリックイメージ一覧」を参照してください。
• ユーザー定義イメージ:PAI に追加したカスタムイメージを使用できます。選択する前に、カスタムイメージを PAI に追加する必要があります。詳細は、「イメージの表示と追加」を参照してください。
• イメージアドレス:独自のカスタムイメージを使用できます。イメージアドレスを選択した後、パブリックネットワーク環境でアクセス可能な Docker Registry のイメージ URL を設定ボックスに入力する必要があります。
データセットの準備 (オプション)
高品質なデータセットは高精度なモデルの基盤であり、データ準備の核心的な目標です。PAI プラットフォームはデータセット管理モジュールを提供しており、各種データ (ローカルデータ、Alibaba Cloud 上のデータなど) をデータセットとして登録できます。また、OSS フォルダーをスキャンしてインデックスデータセットを生成し、モデルトレーニングの準備を整えることもできます。
コードソースの準備 (オプション)
モデルトレーニングタスクの提出などの操作する際、通常、独自のトレーニングコードを提供する必要があります。PAI はコード設定機能を提供しており、使用するコードリポジトリを AI アセットとして作成でき、複数のタスクから簡単に参照できます。
Step 2:トレーニングタスクの提出
上記でトレーニングに必要なリソースと設定が準備できました。次にタスクを提出します。インターフェイスの詳細については、API リファレンスを参照してください。
コマンドラインツールの設定
コマンドラインツールを使用する前に、ツールの設定が必要です。AccessKey ID、AccessKey Secret、および対応するリージョンの DLC サービスエンドポイントを入力します。
dlc config --access_id {.ak-id }
--access_key{.ak-secret}
--endpoint 'pai-dlc.{region-id}.aliyuncs.com' # region-id such as cn-beijing/cn-hangzhou
--region cn-hangzhou
サブスクリプションジョブの作成
排他的リソースグループ (サブスクリプションリソースグループとも呼ばれます) は PAI が提供する新機能で、現在テスト段階にあります。ご利用の場合は PAI チームにお問い合わせください。サブスクリプションリソースグループのリソースはユーザー専用であり、DLC タスクや DSW インスタンスを提出する際に、タスクまたはインスタンスのリソース量を指定できます。提出されたタスクがリソースグループの総容量を超えると、自動的にキューイングされます。ユーザーはキュー内のタスクの優先度を変更して、タスクの実行順序を制御できます。
リソースグループに提出されるジョブは、オールオアナッシング (Gang Scheduling とも呼ばれます) の原則に従います。つまり、ジョブに必要なすべてのワーカーがリソースを確保できた場合にのみ、実行がスケジュールされます。これにより、一部のワーカーだけがクラスターに送信されてリソースが無駄になることを回避します。
以下のサンプルコマンドは、ワークスペース 46099 に DLC サブスクリプションのトレーニングタスクを提出し、タスクをサブスクリプションリソースグループ rgo80s1uv05bplin にスケジュールする例です。
タスクステータスの表示とログの取得:
タスクのログを表示するには、タスクの job_id と pod_id を指定する必要があります。上記で提出したタスクを例に説明します。
dlc logs dlcylztabt7alg7p dlcylztabt7alg7p-worker-0 --max_events_num=20
従量課金マルチマシン分散トレーニングジョブの作成
従量課金は、DLC が最初にサポートしたビジネスモデルです。ユーザーはオンデマンドでリソースをプロビジョニングでき、タスク終了後にすべてのリソースが解放されます。
ここでは、TensorFlow のマルチマシン分散タスクを例に、DLC コマンドラインツールを使用したマルチマシン分散タスクの作成方法を紹介します。
TFJob では、ユーザーが成功ポリシーをカスタマイズできます。
--success_policy=ChiefWorker このモードでは、TF 分散マルチマシンタスクの Chief の Pod が成功すると、タスク全体が成功とみなされ、タスクが終了します。
--success_policy=AllWorkers (デフォルト) このモードでは、TF 分散マルチマシンタスクのすべてのワーカーが成功して初めて、タスク全体が成功とみなされます。
タスク YAML の表示
get job コマンドを使用します。
./dlc get job dlc1fifr7w6ycnp
タスクの停止
stop job コマンドを使用します。
./dlc stop job dlc1fif7r7w6ycnq
Step 3:トレーニングタスクの確認
上記の PAI-DLC タスクを提出した後、以下のコードでタスクのステータスをリアルタイムで確認できます。コマンドラインツールは多次元でタスクをクエリできます。詳細なパラメーターリストは、`dlc get job -h` で確認できます。ここでは、前述のタスクのサブスクリプションリソースグループ内の「Running」ステータスのタスクを表示する例を示します。
dlc get job --resource_id='rgo80s1uv05bplin' --status='Running'
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
