すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:ALIYUN::PAIDLC::Job

最終更新日:Mar 17, 2025

ALIYUN::PAIDLC::Job は、クラスター内で実行する Machine Learning Platform for AI (PAI) ジョブを作成するために使用されます。

構文

{
  "Type": "ALIYUN::PAIDLC::Job",
  "Properties": {
    "ThirdpartyLibs": List,
    "Options": String,
    "Priority": Integer,
    "Envs": String,
    "JobMaxRunningTimeMinutes": Integer,
    "WorkspaceId": String,
    "CodeSource": Map,
    "UserVpc": Map,
    "JobSpecs": List,
    "UserCommand": String,
    "DataSources": List,
    "JobType": String,
    "ResourceId": String,
    "ThirdpartyLibDir": String,
    "DisplayName": String,
    "SuccessPolicy": String,
    "Settings": Map
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

ThirdpartyLibs

List

いいえ

いいえ

サードパーティの Python ライブラリとそのバージョン。

例: numpy==1.16.1

Options

String

いいえ

いいえ

ジョブの追加構成。

このプロパティを使用して、アタッチされたデータソースの動作を調整できます。たとえば、ジョブにアタッチされたデータソースが Object Storage Service (OSS) タイプの場合、このプロパティを使用して次の構成を追加し、JindoFS のデフォルトパラメーターをオーバーライドできます: fs.oss.download.thread.concurrency=4,fs.oss.download.queue.size=16

Priority

Integer

いいえ

はい

ジョブの優先度。

デフォルト値: 1.

有効な値: 1 ~ 9。各値は異なる優先度を指定します。

  • 1 は最低の優先度です。

  • 9 は最高の優先度です。

Envs

String

いいえ

いいえ

環境変数の構成。

なし。

JobMaxRunningTimeMinutes

Integer

いいえ

いいえ

ジョブの最大実行時間。

単位: 分。

WorkspaceId

String

はい

いいえ

ワークスペース ID。

なし。

CodeSource

Map

いいえ

いいえ

ジョブのコードソース。

ジョブのノードが実行を開始する前に、Deep Learning Containers (DLC) はコードソースから構成済みのコードを自動的にダウンロードし、コンテナーのオンプレミス パスにマウントします。詳細については、「CodeSource プロパティ」をご参照ください。

UserVpc

Map

いいえ

いいえ

ユーザー VPC (Virtual Private Cloud) の構成。

詳細については、「UserVpc 構文」をご参照ください。

JobSpecs

List

はい

いいえ

ジョブの実行構成。

詳細については、「JobSpecs プロパティ」をご参照ください。

UserCommand

String

はい

いいえ

ジョブのすべてのノードの起動コマンド。

なし。

DataSources

List

いいえ

いいえ

ジョブのすべてのデータソース。

データソースは、データソースの構成に基づいて、各ノードで実行されているコンテナーのオンプレミス パスにマウントされます。 DataSources の MountPath プロパティは、オンプレミス パスを指定します。

ジョブの起動コマンドのプロセスは、MountPath で指定されたパスにある分散ファイルシステムに直接アクセスします。各データソースは、分散ファイルシステムを表します。

詳細については、「DataSources プロパティ」をご参照ください。

JobType

String

はい

いいえ

ジョブタイプ。

値は大文字と小文字が区別されます。次のジョブタイプがサポートされています。

  • TFJob

  • PyTorchJob

  • XGBoostJob

  • OneFlowJob

  • ElasticBatch

ResourceId

String

いいえ

いいえ

ジョブが属するリソースグループの ID。

このプロパティはオプションです。

  • このプロパティを空のままにすると、ジョブはパブリック リソースグループに追加されます。

  • ジョブのワークスペースが専用リソースグループに関連付けられている場合は、値を専用リソースグループの ID に設定できます。専用リソースグループの作成方法と専用リソースグループの ID のクエリ方法については、「専用リソースグループを作成し、汎用計算リソースを購入する」をご参照ください。

ThirdpartyLibDir

String

いいえ

いいえ

Python サードパーティ ライブラリの requirements.txt ファイルが存在するフォルダーの名前。

各ノードが UserCommand で指定された起動コマンドを実行する前に、DLC はフォルダーから requirements.txt ファイルを取得し、pip install -r を実行して必要なパッケージとライブラリをインストールします。

DisplayName

String

はい

いいえ

ジョブの名前。

名前は次の要件を満たしている必要があります。

  • 最大 256 文字の長さにすることができます。

  • 数字、文字、アンダースコア (_)、ピリオド (.)、およびハイフン (-) を含めることができます。

SuccessPolicy

String

いいえ

いいえ

分散マルチノード ジョブが成功したかどうかを確認するために使用されるポリシー。

TensorFlow 分散マルチノード ジョブのみがサポートされています。

有効な値:

  • ChiefWorker: このポリシーを使用する場合、チーフノードのポッドが操作を完了すると、ジョブは成功したと見なされます。

  • AllWorkers (デフォルト): このポリシーを使用する場合、すべてのワーカーノードが操作を完了すると、ジョブは成功したと見なされます。

Settings

Map

いいえ

いいえ

ジョブの追加パラメーター構成。

なし。

CodeSource 構文

"CodeSource": {
  "MountPath": String,
  "Commit": String,
  "Branch": String,
  "CodeSourceId": String
}

CodeSource プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

MountPath

String

いいえ

いいえ

ジョブをマウントするパス。

デフォルトでは、データソースに構成されているマウントパスが使用されます。

Commit

String

いいえ

いいえ

ジョブ用にダウンロードする必要があるコードのコミット ID。

デフォルトでは、コードソースに構成されているコミット ID が使用されます。

Branch

String

いいえ

いいえ

ジョブの実行時に参照されるコードリポジトリのブランチ。

デフォルトでは、コードソースに構成されているブランチが使用されます。

CodeSourceId

String

はい

いいえ

コードソースの ID。

なし。

UserVpc 構文

"UserVpc": {
  "VpcId": String,
  "SecurityGroupId": String,
  "SwitchId": String,
  "ExtendedCIDRs": List
}

UserVpc プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

VpcId

String

はい

いいえ

VPC ID。

なし。

SecurityGroupId

String

いいえ

いいえ

セキュリティグループの ID。

なし。

SwitchId

String

いいえ

いいえ

vSwitch ID。

このプロパティはオプションです。

  • このプロパティを空のままにすると、システムはインベントリ ステータスに基づいて vSwitch を自動的に選択します。

  • vSwitch ID を指定することもできます。

ExtendedCIDRs

List

いいえ

いいえ

拡張 CIDR ブロック。

有効な値:

  • SwitchId と ExtendedCIDRs を空のままにすると、システムは指定された VPC 内のすべての CIDR ブロックを自動的に取得します。

  • SwitchId を指定する場合は、ExtendedCIDRs を指定する必要があります。 VPC 内のすべての CIDR ブロックを指定することをお勧めします。

JobSpecs 構文

"JobSpecs": [
  {
    "PodCount": Integer,
    "ImageConfig": Map,
    "UseSpotInstance": Boolean,
    "Type": String,
    "EcsSpec": String,
    "ResourceConfig": Map,
    "Image": String,
    "ExtraPodSpec": Map
  }
]

JobSpecs プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

PodCount

Integer

はい

いいえ

レプリカ数。

なし。

ImageConfig

Map

いいえ

いいえ

非公開イメージの構成。

なし。

UseSpotInstance

Boolean

はい

いいえ

プリエンプティブル インスタンスを使用するかどうかを指定します。

有効な値:

  • true

  • false

Type

String

はい

いいえ

ノードタイプ。

Type は JobType と密接に関連しています。 Type の有効な値は、JobType の値によって異なります。

  • JobType が TFJob に設定されている場合の有効な値: Chief、PS、Worker、Evaluator、および GraphLearn。

  • JobType が PyTorchJob に設定されている場合の有効な値: Worker および Master。

  • JobType が XGBoostJob に設定されている場合の有効な値: Worker および Master。

PyTorch または XGBoost ジョブのマスターノードはオプションです。 PyTorch または XGBoost ジョブのマスターノードを指定しない場合、システムは最初のワーカーノードをマスターノードとして自動的に使用します。

EcsSpec

String

はい

いいえ

ワーカーノードの Elastic Compute Service (ECS) インスタンスの仕様。

価格はインスタンスの仕様によって異なります。詳細については、「DLC の課金」をご参照ください。

ResourceConfig

Map

いいえ

いいえ

リソース構成。

なし。

Image

String

はい

いいえ

ワーカーノードによって実行されるイメージのアドレス。

ListImages 操作を呼び出して、PAI によって提供されるコミュニティ イメージと PAI によって最適化されたイメージをクエリできます。サードパーティのパブリック イメージを指定することもできます。

ExtraPodSpec

Map

いいえ

いいえ

追加のポッド構成。

なし。

DataSources 構文

"DataSources": [
  {
    "MountPath": String,
    "DataSourceId": String
  }
]

DataSources プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

MountPath

String

いいえ

いいえ

ジョブをマウントするパス。

デフォルトでは、データソースに構成されているマウント パスが使用されます。

DataSourceId

String

はい

いいえ

データソースの ID。

なし。

戻り値

Fn::GetAtt

JobId: ジョブ ID。

  • YAML 形式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      CodeSource:
        Description: このタスクで使用されるコードソース。ミッションノードが起動する前に、DLC はコードソースに構成されているコードを自動的にダウンロードし、コンテナーのローカル ディレクトリにマウントします。
        Type: Json
      DataSources:
        Description: タスク操作に使用されるデータソースのリスト。
        Type: Json
      DisplayName:
        Description: 'タスクの名前は次のとおりです。
          名前の長さは 256 文字を超えません。
          数字、文字、アンダースコア (_)、ピリオド (.)、および短いハイフン (-) を使用できます。'
        Type: String
      Envs:
        Description: 環境変数構成。
        Type: String
      JobMaxRunningTimeMinutes:
        Description: 最大実行時間 (分単位)。
        Type: Number
      JobSpecs:
        Description: 'Jobspecs は、ミッション中のタスクのさまざまな構成 (ミラー アドレス、起動コマンド、ノード リソース ステートメント、コピー数など) を記述します。
          DLC タスクはさまざまなタイプのノードで構成されます。同じタイプのノードはまったく同じ構成になっています。この構成は Jobspec と呼ばれます。 Jobspecs はすべてのタイプのノードの構成を記述し、Jobspec の配列です。'
        Type: Json
      JobType:
        AllowedValues:
        - TFJob
        - PyTorchJob
        - XGBoostJob
        - OneFlowJob
        - ElasticBatch
        Description: 'ジョブのタイプ。値: TFJob、PyTorchJob、XGBoostJob、OneFlowJob、ElasticBatch'
        Type: String
      Options:
        Description: このタスクの追加構成。このパラメーターを使用して、マウント データソースの動作の一部を調整できます。タスクに OSS タイプをマウントしたデータソースがある場合、このパラメーターの構成を fs.OSS.DOWNLOAD.CONCURRENCY = 4, fs.oss.download.queue.size = 16 に設定することで、jinofs のデフォルト パラメーターを上書きできます。
        Type: String
      Priority:
        Description: 'タスクの優先度、オプション パラメーター、デフォルト値 1、パラメーター値の範囲は 1 ~ 9 です。
          1 は最低の優先度です。
          9 は最高の優先度です。'
        Type: Number
      ResourceId:
        Description: 'リソースグループ ID、オプション パラメーター。
          パラメーター値が空の場合、パブリック リソースグループに送信されたことを示します。
          現在のワークスペースが専用リソースグループにバインドされている場合は、ここで対応するリソースグループ ID を指定できます。専用リソースグループの作成方法と専用リソースグループ ID の照会方法については、DLC リソースグループ クラスターの準備と管理に関するドキュメントを参照してください。'
        Type: String
      Settings:
        Description: ジョブ設定。
        Type: Json
      SuccessPolicy:
        Description: '分散マルチマシン タスクの成功戦略。現在、TensorFlow のマルチマシン タスクでのみサポートされています。
          ChiefWorker: この値に指定すると、Chief の POD が成功すれば、タスク全体が成功したと見なされます。
          すべてのワーカー: タスク全体が成功したと見なされるには、すべてのワーカーが成功する必要があります。'
        Type: String
      ThirdpartyLibDir:
        Description: Requirements.txt ファイルが存在するフォルダーの名前。各ノードが指定された usercommand を実行する前に、PAI-DLC は指定されたフォルダーから requirements.txt ファイルを取得し、PIP Install -R 呼び出しを実行します。
        Type: String
      ThirdpartyLibs:
        Description: インストールする Python サードパーティ ライブラリ リスト。
        Type: Json
      UserCommand:
        Description: タスク内のすべてのノードの起動コマンド。
        Type: String
      UserVpc:
        Description: ユーザー VPC 構成。
        Type: Json
      WorkspaceId:
        Description: ワークスペース ID。ワークスペース ID の取得方法については、listworkSpaces を参照してください。
        Type: String
    Resources:
      Job:
        Properties:
          CodeSource:
            Ref: CodeSource
          DataSources:
            Ref: DataSources
          DisplayName:
            Ref: DisplayName
          Envs:
            Ref: Envs
          JobMaxRunningTimeMinutes:
            Ref: JobMaxRunningTimeMinutes
          JobSpecs:
            Ref: JobSpecs
          JobType:
            Ref: JobType
          Options:
            Ref: Options
          Priority:
            Ref: Priority
          ResourceId:
            Ref: ResourceId
          Settings:
            Ref: Settings
          SuccessPolicy:
            Ref: SuccessPolicy
          ThirdpartyLibDir:
            Ref: ThirdpartyLibDir
          ThirdpartyLibs:
            Ref: ThirdpartyLibs
          UserCommand:
            Ref: UserCommand
          UserVpc:
            Ref: UserVpc
          WorkspaceId:
            Ref: WorkspaceId
        Type: ALIYUN::PAIDLC::Job
    Outputs:
      JobId:
        Description: 今回作成されたタスク ID。
        Value:
          Fn::GetAtt:
          - Job
          - JobId
  • JSON 形式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "ThirdpartyLibs": {
          "Type": "Json",
          "Description": "インストールする Python サードパーティ ライブラリ リスト。"
        },
        "Options": {
          "Type": "String",
          "Description": "このタスクの追加構成。このパラメーターを使用して、マウント データソースの動作の一部を調整できます。タスクに OSS タイプをマウントしたデータソースがある場合、このパラメーターの構成を fs.OSS.DOWNLOAD.CONCURRENCY = 4, fs.oss.download.queue.size = 16 に設定することで、jinofs のデフォルト パラメーターを上書きできます。"
        },
        "Priority": {
          "Type": "Number",
          "Description": "タスクの優先度、オプション パラメーター、デフォルト値 1、パラメーター値の範囲は 1 ~ 9 です。\n1 は最低の優先度です。\n9 は最高の優先度です。"
        },
        "Envs": {
          "Type": "String",
          "Description": "環境変数構成。"
        },
        "JobMaxRunningTimeMinutes": {
          "Type": "Number",
          "Description": "最大実行時間 (分単位)。"
        },
        "WorkspaceId": {
          "Type": "String",
          "Description": "ワークスペース ID。ワークスペース ID の取得方法については、listworkSpaces を参照してください。"
        },
        "CodeSource": {
          "Type": "Json",
          "Description": "このタスクで使用されるコードソース。ミッションノードが起動する前に、DLC はコードソースに構成されているコードを自動的にダウンロードし、コンテナーのローカル ディレクトリにマウントします。"
        },
        "UserVpc": {
          "Type": "Json",
          "Description": "ユーザー VPC 構成。"
        },
        "JobSpecs": {
          "Type": "Json",
          "Description": "Jobspecs は、ミッション中のタスクのさまざまな構成 (ミラー アドレス、起動コマンド、ノード リソース ステートメント、コピー数など) を記述します。\nDLC タスクはさまざまなタイプのノードで構成されます。同じタイプのノードはまったく同じ構成になっています。この構成は Jobspec と呼ばれます。 Jobspecs はすべてのタイプのノードの構成を記述し、Jobspec の配列です。"
        },
        "UserCommand": {
          "Type": "String",
          "Description": "タスク内のすべてのノードの起動コマンド。"
        },
        "DataSources": {
          "Type": "Json",
          "Description": "タスク操作に使用されるデータソースのリスト。"
        },
        "JobType": {
          "Type": "String",
          "Description": "ジョブのタイプ。値: TFJob、PyTorchJob、XGBoostJob、OneFlowJob、ElasticBatch",
          "AllowedValues": [
            "TFJob",
            "PyTorchJob",
            "XGBoostJob",
            "OneFlowJob",
            "ElasticBatch"
          ]
        },
        "ResourceId": {
          "Type": "String",
          "Description": "リソースグループ ID、オプション パラメーター。\nパラメーター値が空の場合、パブリック リソースグループに送信されたことを示します。\n現在のワークスペースが専用リソースグループにバインドされている場合は、ここで対応するリソースグループ ID を指定できます。専用リソースグループの作成方法と専用リソースグループ ID の照会方法については、DLC リソースグループ クラスターの準備と管理に関するドキュメントを参照してください。"
        },
        "ThirdpartyLibDir": {
          "Type": "String",
          "Description": "Requirements.txt ファイルが存在するフォルダーの名前。各ノードが指定された usercommand を実行する前に、PAI-DLC は指定されたフォルダーから requirements.txt ファイルを取得し、PIP Install -R 呼び出しを実行します。"
        },
        "DisplayName": {
          "Type": "String",
          "Description": "タスクの名前は次のとおりです。\n名前の長さは 256 文字を超えません。\n数字、文字、アンダースコア (_)、ピリオド (.)、および短いハイフン (-) を使用できます。"
        },
        "SuccessPolicy": {
          "Type": "String",
          "Description": "分散マルチマシン タスクの成功戦略。現在、TensorFlow のマルチマシン タスクでのみサポートされています。\nChiefWorker: この値に指定すると、Chief の POD が成功すれば、タスク全体が成功したと見なされます。\nすべてのワーカー: タスク全体が成功したと見なされるには、すべてのワーカーが成功する必要があります。"
        },
        "Settings": {
          "Type": "Json",
          "Description": "ジョブ設定。"
        }
      },
      "Resources": {
        "Job": {
          "Type": "ALIYUN::PAIDLC::Job",
          "Properties": {
            "ThirdpartyLibs": {
              "Ref": "ThirdpartyLibs"
            },
            "Options": {
              "Ref": "Options"
            },
            "Priority": {
              "Ref": "Priority"
            },
            "Envs": {
              "Ref": "Envs"
            },
            "JobMaxRunningTimeMinutes": {
              "Ref": "JobMaxRunningTimeMinutes"
            },
            "WorkspaceId": {
              "Ref": "WorkspaceId"
            },
            "CodeSource": {
              "Ref": "CodeSource"
            },
            "UserVpc": {
              "Ref": "UserVpc"
            },
            "JobSpecs": {
              "Ref": "JobSpecs"
            },
            "UserCommand": {
              "Ref": "UserCommand"
            },
            "DataSources": {
              "Ref": "DataSources"
            },
            "JobType": {
              "Ref": "JobType"
            },
            "ResourceId": {
              "Ref": "ResourceId"
            },
            "ThirdpartyLibDir": {
              "Ref": "ThirdpartyLibDir"
            },
            "DisplayName": {
              "Ref": "DisplayName"
            },
            "SuccessPolicy": {
              "Ref": "SuccessPolicy"
            },
            "Settings": {
              "Ref": "Settings"
            }
          }
        }
      },
      "Outputs": {
        "JobId": {
          "Description": "今回作成されたタスク ID。",
          "Value": {
            "Fn::GetAtt": [
              "Job",
              "JobId"
            ]
          }
        }
      }
    }