永続リソースでカスタム トレーニング ジョブを実行する

このページでは、Google Cloud CLI、Vertex AI SDK for Python、REST API を使用して、永続リソースでカスタム トレーニング ジョブを実行する方法について説明します。

通常、カスタム トレーニング ジョブを作成するときは、ジョブが作成して実行するコンピューティング リソースを指定する必要があります。永続リソースを作成した後では、代わりに永続リソースの 1 つ以上のリソースプールで実行するよう、カスタム トレーニング ジョブを構成できます。永続リソースでカスタム トレーニング ジョブを実行すると、コンピューティング リソースの作成に必要なジョブの起動時間が大幅に短縮されます。

必要なロール

永続リソースに対してカスタム トレーニング ジョブを実行するために必要な権限を取得するには、プロジェクトに対する Vertex AI ユーザーroles/aiplatform.user)IAM ロールの権限の付与を管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。

この事前定義ロールには、 aiplatform.customJobs.create 権限が含まれています。この権限は、永続リソースに対してカスタム トレーニング ジョブを実行する場合に必要です。

カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。

永続リソースで実行するトレーニング ジョブを作成する

永続リソースで実行するカスタム トレーニング ジョブを作成するには、カスタム トレーニング ジョブの作成の標準手順に次の変更を加えます。

gcloud

  • --persistent-resource-id フラグを指定し、使用する永続リソースの ID(PERSISTENT_RESOURCE_ID)をその値に設定します。
  • machine-typedisk-type の値が永続リソースの対応するリソースプールと完全に一致するように、--worker-pool-spec フラグを指定します。単一ノード トレーニングの場合は 1 つの --worker-pool-spec を指定し、分散トレーニングの場合は複数指定します。
  • 対応するリソースプールの replica-count または max-replica-count 以下の replica-count を指定します。

Python

Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。

def create_custom_job_on_persistent_resource_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    container_uri: str,
    persistent_resource_id: str,
    service_account: Optional[str] = None,
) -> None:
    aiplatform.init(
        project=project, location=location, staging_bucket=staging_bucket
    )

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": "n1-standard-4",
            "accelerator_type": "NVIDIA_TESLA_K80",
            "accelerator_count": 1,
        },
        "replica_count": 1,
        "container_spec": {
            "image_uri": container_uri,
            "command": [],
            "args": [],
        },
    }]

    custom_job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
        persistent_resource_id=persistent_resource_id,
    )

    custom_job.run(service_account=service_account)

REST

  • persistent_resource_id パラメータを指定し、使用する永続リソースの ID(PERSISTENT_RESOURCE_ID)をその値に設定します。
  • 各リソースプールの machine_specdisk_spec の値が、永続リソースの対応するリソースプールと完全に一致するように、worker_pool_specs パラメータを指定します。単一ノード トレーニングの場合は 1 つの machine_spec を指定し、分散トレーニングの場合は複数指定します。
  • 対応するリソースプールの replica_count または max_replica_count 以下の replica_count を指定します。ただし、そのリソースプールで実行されている他のジョブのレプリカ数を除きます。

次のステップ