永続リソースを作成する

永続リソースを作成すると、トレーニング サービスは、まず指定した仕様に基づいて Compute Engine リソースプールからリソースを検索し、次に実行時間の長いクラスタをプロビジョニングします。このページでは、Vertex AI API または Google Cloud CLI を使用して、カスタム トレーニング ジョブを実行する永続リソースを作成する方法について説明します。

必要なロール

永続リソースの作成に必要な権限を取得するには、プロジェクトに対する Vertex AI 管理者roles/aiplatform.admin)IAM ロールを付与するように管理者に依頼します。ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。

この事前定義ロールには、永続リソースを作成するために必要な aiplatform.persistentResources.create 権限が含まれています。

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

永続リソースを作成する

永続リソースの作成手順については、次のいずれかのタブを選択してください。

gcloud

永続リソースには 1 つ以上のリソースプールを設定できます。永続リソースに複数のリソースプールを作成するには、複数の --resource-pool-spec フラグを指定します。

各リソースプールでは、自動スケーリングを有効または無効にできます。自動スケーリングを有効にするには、min_replica_countmax_replica_count を指定します。

すべてのリソースプール構成をコマンドラインの一部として指定できます。または、同構成を含む YAML ファイルへのパスを、--config フラグを使用して指定できます。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 永続リソースを作成する Google Cloud プロジェクトのプロジェクト ID。
  • LOCATION: 永続リソースを作成するリージョン。サポートされているリージョンの一覧については、利用できる機能をご覧ください。
  • PERSISTENT_RESOURCE_ID: 永続リソースの ID。
  • DISPLAY_NAME:(省略可)永続リソースの表示名。
  • MACHINE_TYPE: 使用する VM のタイプ。サポートされている VM の一覧については、マシンタイプをご覧ください。このフィールドは、ResourcePool API メッセージの machineSpec.machineType フィールドに対応しています。
  • ACCELERATOR_TYPE:(省略可)リソースプール内の各 VM にアタッチする GPU のタイプ。サポートされている GPU の一覧については、GPU をご覧ください。このフィールドは、ResourcePool API メッセージの machineSpec.acceleratorType フィールドに対応しています。
  • ACCELERATOR_COUNT:(省略可)リソースプール内の各 VM にアタッチする GPU の数。デフォルト値は 1 です。このフィールドは、ResourcePool API メッセージの machineSpec.acceleratorCount フィールドに対応しています。
  • REPLICA_COUNT: 対象のリソースプール作成時に作成するレプリカの数。このフィールドは、ResourcePool API メッセージの replicaCount フィールドに対応しています。MIN_REPLICA_COUNTMAX_REPLICA_COUNT を指定しない場合、このフィールドは必須です。
  • MIN_REPLICA_COUNT:(省略可)対象のリソースプールに対して自動スケーリングがスケールダウンできるレプリカの最小数。対象のリソースプールで自動スケーリングを有効にするには、MIN_REPLICA_COUNTMAX_REPLICA_COUNT の両方が必要です。
  • MAX_REPLICA_COUNT:(省略可)対象のリソースプールに対して自動スケーリングでスケールアップできるレプリカの最大数。対象のリソースプールで自動スケーリングを有効にするには、MIN_REPLICA_COUNTMAX_REPLICA_COUNT の両方が必要です。
  • BOOT_DISK_TYPE:(省略可)リソースプール内に存在する各 VM のブートディスクとして使用するディスクタイプ。このフィールドは、ResourcePool API メッセージの diskSpec.bootDiskType フィールドに対応しています。指定できる値は次のとおりです。
    • pd-standard(デフォルト)
    • pd-ssd
  • BOOT_DISK_SIZE_GB:(省略可)リソースプール内に存在する各 VM のブートディスクのディスクサイズ(GiB 単位)。指定できる値は 100(デフォルト)~64000 です。このフィールドは、ResourcePool API メッセージの diskSpec.bootDiskSizeGb フィールドに対応しています。
  • CONFIG: 永続リソースの YAML 構成ファイルへのパス。このファイルには、ResourcePool のリストが含まれている必要があります。オプションが構成ファイルとコマンドライン引数の両方で指定されている場合、構成ファイルはコマンドライン引数によってオーバーライドされます。アンダースコア付きのキーは無効です。

    YAML 構成ファイルの例:

    resourcePoolSpecs:
      machineSpec:
        machineType: n1-standard-4
      replicaCount: 1
        

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud beta ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --display-name=DISPLAY_NAME \
    --project=PROJECT_ID \
    --region=LOCATION \
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows(PowerShell)

gcloud beta ai persistent-resources create `
    --persistent-resource-id=PERSISTENT_RESOURCE_ID `
    --display-name=DISPLAY_NAME `
    --project=PROJECT_ID `
    --region=LOCATION `
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows(cmd.exe)

gcloud beta ai persistent-resources create ^
    --persistent-resource-id=PERSISTENT_RESOURCE_ID ^
    --display-name=DISPLAY_NAME ^
    --project=PROJECT_ID ^
    --region=LOCATION ^
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

次のようなレスポンスが返されます。

Using endpoint [http://us-central1-aiplatform.googleapis.com/]
Operation to create PersistentResource [projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789] is submitted successfully.

You may view the status of your PersistentResource create operation with the command

  $ gcloud beta ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789

gcloud コマンドの例:

gcloud beta ai persistent-resources create \
    --persistent-resource-id=my-persistent-resource \
    --region=us-central1 \
    --resource-pool-spec="min-replica-count=4,max-replica-count=12,machine-type=n1-highmem-2,accelerator-type=NVIDIA_TESLA_K80,accelerator-count=1,disk-type=pd-standard,disk-size=200" \
    --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"

高度な gcloud 構成

上の例では使用できない構成オプションを指定する場合は、--config フラグを使用して、persistentResources のフィールドを含むローカル環境で config.yaml ファイルへのパスを指定します。次に例を示します。

gcloud beta ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --project=PROJECT_ID \
    --region=LOCATION \
    --config=CONFIG

REST

永続リソースには 1 つ以上のリソースプール(machine_spec)を設定できます。各リソースプールでは自動スケーリングを有効または無効にできます。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: 永続リソースを作成する Google Cloud プロジェクトのプロジェクト ID。
  • LOCATION: 永続リソースを作成するリージョン。サポートされているリージョンの一覧については、利用できる機能をご覧ください。
  • PERSISTENT_RESOURCE_ID: 永続リソースの ID。
  • DISPLAY_NAME:(省略可)永続リソースの表示名。
  • MACHINE_TYPE: 使用する VM のタイプ。サポートされている VM の一覧については、マシンタイプをご覧ください。このフィールドは、ResourcePool API メッセージの machineSpec.machineType フィールドに対応しています。
  • ACCELERATOR_TYPE:(省略可)リソースプール内の各 VM にアタッチする GPU のタイプ。サポートされている GPU の一覧については、GPU をご覧ください。このフィールドは、ResourcePool API メッセージの machineSpec.acceleratorType フィールドに対応しています。
  • ACCELERATOR_COUNT:(省略可)リソースプール内の各 VM にアタッチする GPU の数。デフォルト値は 1 です。このフィールドは、ResourcePool API メッセージの machineSpec.acceleratorCount フィールドに対応しています。
  • REPLICA_COUNT: 対象のリソースプール作成時に作成するレプリカの数。このフィールドは、ResourcePool API メッセージの replicaCount フィールドに対応しています。MIN_REPLICA_COUNTMAX_REPLICA_COUNT を指定しない場合、このフィールドは必須です。
  • MIN_REPLICA_COUNT:(省略可)対象のリソースプールに対して自動スケーリングがスケールダウンできるレプリカの最小数。対象のリソースプールで自動スケーリングを有効にするには、MIN_REPLICA_COUNTMAX_REPLICA_COUNT の両方が必要です。
  • MAX_REPLICA_COUNT:(省略可)対象のリソースプールに対して自動スケーリングでスケールアップできるレプリカの最大数。対象のリソースプールで自動スケーリングを有効にするには、MIN_REPLICA_COUNTMAX_REPLICA_COUNT の両方が必要です。
  • BOOT_DISK_TYPE:(省略可)リソースプール内に存在する各 VM のブートディスクとして使用するディスクタイプ。このフィールドは、ResourcePool API メッセージの diskSpec.bootDiskType フィールドに対応しています。指定できる値は次のとおりです。
    • pd-standard(デフォルト)
    • pd-ssd
  • BOOT_DISK_SIZE_GB:(省略可)リソースプール内に存在する各 VM のブートディスクのディスクサイズ(GiB 単位)。指定できる値は 100(デフォルト)~64000 です。このフィールドは、ResourcePool API メッセージの diskSpec.bootDiskSizeGb フィールドに対応しています。

HTTP メソッドと URL:

POST http://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID

リクエストの本文(JSON):

{
  "display_name": "DISPLAY_NAME",
  "resource_pools": [
    {
      "machine_spec": {
        "machine_type": "MACHINE_TYPE",
        "accelerator_type": "ACCELERATOR_TYPE",
        "accelerator_count": ACCELERATOR_COUNT
      },
      "replica_count": REPLICA_COUNT,
      "autoscaling_spec": {
        "min_replica_count": MIN_REPLICA_COUNT,
        "max_replica_count": MAX_REPLICA_COUNT
      },
      "disk_spec": {
        "boot_disk_type": "BOOT_DISK_TYPE",
        "boot_disk_size_gb": BOOT_DISK_SIZE_GB
      }
    }
  ]
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreatePersistentResourceOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-02-08T21:17:15.009668Z",
      "updateTime": "2023-02-08T21:17:15.009668Z"
    }
  }
}

リソースの在庫切れ

A100 GPU などの限られたリソースが在庫切れになり、指定したリージョンに使用可能なリソースがない場合、永続的なリソース作成が失敗する可能性があります。この場合は、レプリカ数を減らすか、別のアクセラレータ タイプに変更するか、ピーク以外の時間帯にもう一度お試しください。

次のステップ