Platform for AI (PAI) は、シングルノードおよび分散トレーニングをサポートする PAI-TensorFlow 深層学習フレームワークを提供します。このリファレンスでは、PAI-TensorFlow タスクを実行するためのコマンドパラメーターと I/O パラメーターについて説明します。
GPU 搭載サーバーは段階的に廃止されます。TensorFlow タスクは CPU サーバーでのみ送信する必要があります。GPU インスタンスでモデルをトレーニングするには、代わりに Deep Learning Containers (DLC) を使用してください。詳細については、「トレーニングジョブの送信」をご参照ください。
コマンドとパラメーター
PAI-TensorFlow タスクは、次のいずれかのインターフェイスから実行します。
MaxCompute クライアント
DataWorks コンソールの SQL ノード
PAI コンソールの Machine Learning Designer ページ
Machine Learning Designer の TensorFlow コンポーネント
すべてのタスクで同じ PAI コマンド構文を使用します。
pai -name tensorflow1120_ext
-project algo_public
-Dscript= 'oss://<bucket_name>.<oss_host>.aliyuncs.com/*.tar.gz'
-DentryFile='entry_file.py'
-Dbuckets='oss://<bucket_name>.<oss_host>.aliyuncs.com/<path>'
-Dtables='odps://prj_name/tables/table_name'
-Doutputs='odps://prj_name/tables/table_name'
-DcheckpointDir='oss://<bucket_name>.<oss_host>.aliyuncs.com/<path>'
-Dcluster="{\"ps\":{\"count\":1},\"worker\":{\"count\":2,\"gpu\":100}}"
-Darn="acs:ram::******:role/aliyunodpspaidefaultrole"
-DossHost="oss-cn-beijing-internal.aliyuncs.com"name と project パラメーターには固定値 (tensorflow1120_ext と algo_public) があり、変更できません。
次の表に、すべてのコマンドパラメーターを示します。
| パラメーター | 説明 | 例 | デフォルト | 必須 |
|---|---|---|---|---|
script | タスク用の TensorFlow アルゴリズムスクリプトです。受け入れられるフォーマット:file:///path/to/file (絶対ローカルパス)、project_name/resources/resource_name、oss://..aliyuncs.com/.tar.gz、または oss://..aliyuncs.com/*.py。スクリプトは、ローカルファイル、ローカル TAR パッケージ (.tar.gz、gzip 圧縮)、または Python ファイルを指定できます。 | oss://demo-yuze.oss-cn-beijing-internal.aliyuncs.com/deepfm/deepfm.tar.gz | なし | はい |
entryFile | エントリスクリプトです。script が TAR パッケージを指している場合に必要です。script が単一ファイルの場合、このパラメーターは不要です。 | main.py | 単一ファイルのスクリプトでは不要 | はい |
buckets | 入力 OSS バケットです。複数のバケットはコンマで区切ります。各バケットパスの末尾にはスラッシュ (/) を付ける必要があります。 | oss://..aliyuncs.com/ | なし | いいえ |
tables | 入力 MaxCompute テーブルです。複数のテーブルはコンマで区切ります。 | odps:///tables/ | なし | いいえ |
outputs | 出力 MaxCompute テーブルです。複数のテーブルはコンマで区切ります。 | odps:///tables/ | なし | いいえ |
gpuRequired | スタンドアロントレーニング用の GPU 数です。100 = 1 GPU、200 = 2 GPU。0 に設定すると CPU のみを使用します。分散トレーニングの場合は、代わりに cluster パラメーターで GPU を構成します。TensorFlow 1120 でのみ利用可能です。 | 100 | なし | いいえ |
checkpointDir | TensorFlow のチェックポイントを格納する OSS パスです。 | oss://..aliyuncs.com/ | なし | いいえ |
cluster | 分散トレーニングの構成を、エスケープされた JSON 文字列として指定します。詳細については、「クラスターパラメーター」をご参照ください。 | {\"ps\":{\"count\":1},\"worker\":{\"count\":2,\"gpu\":100}} | なし | いいえ |
enableDynamicCluster | 個々のワーカーノードのフェールオーバーを有効にするかどうかを指定します。true に設定すると、失敗したワーカーノードが自動的に再起動し、タスクを続行できます。有効な値:true、false。 | false | false | いいえ |
jobName | 実験の名前です。履歴データの検索やパフォーマンス分析を有効にするために、(test ではなく) 説明的な名前を使用してください。 | jk_wdl_online_job | なし | はい |
maxHungTimeBeforeGCInSeconds | GPU が自動再利用される前に一時停止できる最大時間 (秒) です。0 に設定すると、自動再利用は無効になります。 | 3600 | 3600 | いいえ |
ossHost | OSS エンドポイントです。有効な値については、「リージョンとエンドポイント」をご参照ください。 | oss-cn-beijing-internal.aliyuncs.com | なし | いいえ |
クラスターパラメーター
cluster パラメーターを使用して、パラメータサーバー (PS) とワーカーにまたがる分散トレーニングを構成します。値は、引用符がエスケープされた JSON オブジェクトである必要があります。例:
{
"ps": {
"count": 2
},
"worker": {
"count": 4
}
}JSON オブジェクトは、ps (パラメータサーバー) と worker の 2 つのキーをサポートします。各キーは、次のサブパラメーターを受け入れます。
| パラメーター | 説明 | デフォルト | 必須 |
|---|---|---|---|
count | PS またはワーカーの数です。 | なし | はい |
gpu | PS またはワーカーあたりの GPU 数です。100 = 1 GPU。worker の下で 0 に設定すると、GPU を消費しない CPU クラスターを使用します。 | 0、ワーカーの場合は 100 | いいえ |
cpu | PS またはワーカーあたりの CPU コア数です。100 = 1 CPU コア。 | 600 | いいえ |
memory | PS またはワーカーあたりのメモリ (MB) です。100 = 100 MB。 | 30000 | いいえ |
I/O パラメーター
次の表に、PAI-TensorFlow タスクの I/O パラメーターを示します。
| パラメーター | 説明 |
|---|---|
tables | データの読み取り元となる MaxCompute テーブルのパスです。 |
outputs | データの書き込み先となる MaxCompute テーブルのパスです。複数のパスはコンマで区切ります。パスのフォーマット:- 非パーティションテーブル:odps://<prj_name>/tables/<table_name> - パーティションテーブル:odps://<proj_name>/tables/<table_name>/<pt_key1=v1> - 複数レベルのパーティションテーブル:odps://<prj_name>/tables/<table_name>/<pt_key1=v1>/<pt_key2=v2> |
buckets | アルゴリズムが読み取るオブジェクトを格納する OSS バケットです。OSS から読み取るには、role_arn および host パラメーターが必要です。role_arn の値を取得するには、PAI コンソールに移動し、[依存サービス] に移動して、 セクションで [OSS][デザイナー][権限の表示] を見つけ、 をクリックします。詳細については、「Machine Learning Designer の使用に必要な権限の付与」をご参照ください。 |
checkpointDir | 出力データを書き込む OSS バケットのパスです。 |