创建永久性资源

创建永久性资源时,训练服务首先会根据您提供的规范从 Compute Engine 资源池中查找所需资源,然后为您预配一个长时间运行的集群。本页面介绍如何使用 Vertex AI API 或 Google Cloud CLI 创建用于运行自定义训练作业的永久性资源。

所需的角色

如需获得创建永久性资源所需的权限,请让管理员向您授予项目的 Vertex AI Administrator (roles/aiplatform.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

此预定义角色包含创建永久性资源所需的 aiplatform.persistentResources.create 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

创建永久性资源

根据需要选择以下任一标签页,了解如何创建永久性资源。

gcloud

永久性资源可以具有一个或多个资源池。如需在一个永久性资源中创建多个资源池,请指定多个 --resource-pool-spec 标志。

每个资源池都可以启用或停用自动扩缩功能。如需启用自动扩缩,请指定 min_replica_countmax_replica_count

您可以在命令行中指定所有资源池配置,也可以使用 --config 标志指定包含配置的 YAML 文件的路径。

在使用下面的命令数据之前,请先进行以下替换:

  • PROJECT_ID:要创建永久性资源的 Google Cloud 项目的 ID。
  • LOCATION:要创建永久性资源的区域。如需查看受支持区域的列表,请参阅功能可用性
  • PERSISTENT_RESOURCE_ID:永久性资源的 ID。
  • DISPLAY_NAME:(可选)永久性资源的显示名称。
  • MACHINE_TYPE:要使用的虚拟机类型。如需查看支持的虚拟机列表,请参阅机器类型。此字段对应于 ResourcePool API 消息中的 machineSpec.machineType 字段。
  • ACCELERATOR_TYPE:(可选)要挂接到资源池中每个虚拟机的 GPU 的类型。如需查看受支持的 GPU 列表,请参阅 GPU。此字段对应于 ResourcePool API 消息中的 machineSpec.acceleratorType 字段。
  • ACCELERATOR_COUNT:(可选)要挂接到资源池中每个虚拟机的 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:(可选)要用作资源池中每个虚拟机的启动磁盘的类型。此字段对应于 ResourcePool API 消息中的 diskSpec.bootDiskType 字段。可接受的值包括:
    • pd-standard(默认)
    • pd-ssd
  • BOOT_DISK_SIZE_GB:(可选)资源池中每个虚拟机的启动磁盘的大小(以 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 标志指定本地环境中的 config.yaml 文件的路径,该文件包含 persistentResources 的字段。例如:

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

REST

永久性资源可以具有一个或多个资源池 (machine_spec),并且每个资源池都可以启用或停用自动扩缩功能。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:要创建永久性资源的 Google Cloud 项目的 ID。
  • LOCATION:要创建永久性资源的区域。如需查看受支持区域的列表,请参阅功能可用性
  • PERSISTENT_RESOURCE_ID:永久性资源的 ID。
  • DISPLAY_NAME:(可选)永久性资源的显示名称。
  • MACHINE_TYPE:要使用的虚拟机类型。如需查看支持的虚拟机列表,请参阅机器类型。此字段对应于 ResourcePool API 消息中的 machineSpec.machineType 字段。
  • ACCELERATOR_TYPE:(可选)要挂接到资源池中每个虚拟机的 GPU 的类型。如需查看受支持的 GPU 列表,请参阅 GPU。此字段对应于 ResourcePool API 消息中的 machineSpec.acceleratorType 字段。
  • ACCELERATOR_COUNT:(可选)要挂接到资源池中每个虚拟机的 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:(可选)要用作资源池中每个虚拟机的启动磁盘的类型。此字段对应于 ResourcePool API 消息中的 diskSpec.bootDiskType 字段。可接受的值包括:
    • pd-standard(默认)
    • pd-ssd
  • BOOT_DISK_SIZE_GB:(可选)资源池中每个虚拟机的启动磁盘的大小(以 GiB 为单位)。可接受 100(默认值)到 64000 之间的值。此字段对应于 ResourcePool API 消息中的 diskSpec.bootDiskSizeGb 字段。

HTTP 方法和网址:

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 等稀缺资源可能会供应不足,如果在您指定的区域中没有可用的资源,则可能会导致永久性资源创建失败。在这种情况下,您可以尝试减少副本数量,更改为其他加速器类型,或在非高峰时段重试。

后续步骤