创建永久性资源时,训练服务首先会根据您提供的规范从 Compute Engine 资源池中查找所需资源,然后为您预配一个长时间运行的集群。本页面介绍如何使用 Google Cloud 控制台、Google Cloud CLI、Vertex AI SDK for Python 和 REST API 创建用于运行自定义训练作业的永久性资源。
所需的角色
如需获得创建永久性资源所需的权限,请让管理员向您授予项目的 Vertex AI Administrator (roles/aiplatform.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建永久性资源所需的 aiplatform.persistentResources.create
权限。
创建永久性资源
根据需要选择以下任一标签页,了解如何创建永久性资源。
控制台
如需使用 Google Cloud 控制台创建永久性资源,请执行以下操作:
在 Google Cloud 控制台中,转到永久性资源页面。
点击创建集群。
按如下方式配置集群:
- 名称:输入集群的名称。
- 说明:(可选)输入集群的说明。
- 区域:选择您要在其中创建集群的区域。
点击继续。
按如下方式为集群配置计算资源:
- 点击工作器池 1。
选择要使用的机器家族的标签页,并按如下所示配置工作器池:
通用
通用虚拟机可为多种工作负载提供最佳性价比。
- 系列:选择机器系列。
- 机器类型:选择机器类型。
- 磁盘类型:选择标准磁盘或 SSD 磁盘。
- 磁盘大小:输入所需的磁盘大小。
- 副本数下限:输入工作器池中包含的副本数下限。
- 副本数上限:(可选)输入工作器池中允许的副本数上限。如果进行了指定,则工作器池会根据需要将副本数量自动扩缩到配置的副本数上限。
计算优化
计算优化虚拟机可提供最高的单核心性能,针对计算密集型工作负载进行了优化。
- 系列:选择机器系列。
- 机器类型:选择机器类型。
- 磁盘类型:选择标准磁盘或 SSD 磁盘。
- 磁盘大小:输入所需的磁盘大小。
- 副本数下限:输入工作器池中包含的副本数下限。
- 副本数上限:(可选)输入工作器池中允许的副本数上限。如果进行了指定,则工作器池会根据需要将副本数量自动扩缩到配置的副本数上限。
内存优化
内存优化虚拟机非常适合内存密集型工作负载,每个内核提供比其他机器系列更多的内存,可高达 12 TB 内存。
- 系列:选择机器系列。
- 机器类型:选择机器类型。
- 磁盘类型:选择标准磁盘或 SSD 磁盘。
- 磁盘大小:输入所需的磁盘大小。
- 副本数下限:输入工作器池中包含的副本数下限。
- 副本数上限:(可选)输入工作器池中允许的副本数上限。如果进行了指定,则工作器池会根据需要将副本数量自动扩缩到配置的副本数上限。
GPU
这些加速器优化虚拟机非常适合大规模并行的计算统一设备架构 (CUDA) 计算工作负载,例如机器学习 (ML) 和高性能计算 (HPC)。此系列是需要 GPU 的工作负载的最佳选项。
- GPU 类型:选择要使用的 GPU 类型。
- GPU 数量:输入要使用的 GPU 数量。
- 系列:选择机器系列。
- 机器类型:选择机器类型。
- 磁盘类型:选择标准磁盘或 SSD 磁盘。
- 磁盘大小:输入所需的磁盘大小。
- 副本数下限:输入工作器池中包含的副本数下限。
- 副本数上限:(可选)输入工作器池中允许的副本数上限。如果进行了指定,则工作器池会根据需要将副本数量自动扩缩到配置的副本数上限。
点击完成。
(可选)如需添加其他工作器池,请点击添加工作器池。
点击创建。
gcloud
永久性资源可以具有一个或多个资源池。如需在一个永久性资源中创建多个资源池,请指定多个 --resource-pool-spec
标志。
每个资源池都可以启用或停用自动扩缩功能。如需启用自动扩缩,请指定 min_replica_count
和 max_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_COUNT 和 MAX_REPLICA_COUNT,则此字段为必需字段。 - MIN_REPLICA_COUNT:(可选)自动扩缩功能可将此资源池缩减到的最小副本数量。如需在此资源池上启用自动扩缩,则需要同时提供 MIN_REPLICA_COUNT 和 MAX_REPLICA_COUNT。
- MAX_REPLICA_COUNT:(可选)自动扩缩功能可将此资源池扩容到的最大副本数量。如需在此资源池上启用自动扩缩,则需要同时提供 MIN_REPLICA_COUNT 和 MAX_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 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 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 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 [https://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 ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789
示例 gcloud
命令:
gcloud 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_T4,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 ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --project=PROJECT_ID \ --region=LOCATION \ --config=CONFIG
Python
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Python 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Python API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
# Create the persistent resource. This method returns the created resource. # Setting `sync` to `FALSE` makes the method is non-blocking and the resource # object returned syncs when the method completes. my_example_resource = persistent_resource.PersistentResource.create( persistent_resource_id=EXAMPLE_PERSISTENT_RESOURCE_ID, display_name=EXAMPLE_PERSISTENT_RESOURCE_NAME, resource_pools=[ EXAMPLE_RESOURCE_POOL # EXAMPLE_AUTOSCALED_RESOURCE_POOL ], labels=EXAMPLE_LABELS, sync=SYNC, ) if not SYNC: my_example_resource.wait()
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_COUNT 和 MAX_REPLICA_COUNT,则此字段为必需字段。 - MIN_REPLICA_COUNT:(可选)自动扩缩功能可将此资源池缩减到的最小副本数量。如需在此资源池上启用自动扩缩,则需要同时提供 MIN_REPLICA_COUNT 和 MAX_REPLICA_COUNT。
- MAX_REPLICA_COUNT:(可选)自动扩缩功能可将此资源池扩容到的最大副本数量。如需在此资源池上启用自动扩缩,则需要同时提供 MIN_REPLICA_COUNT 和 MAX_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 https://us-central1-aiplatform.googleapis.com/v1/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.v1.CreatePersistentResourceOperationMetadata", "genericMetadata": { "createTime": "2023-02-08T21:17:15.009668Z", "updateTime": "2023-02-08T21:17:15.009668Z" } } }
资源供应不足
A100 GPU 等稀缺资源可能会供应不足,如果在您指定的区域中没有可用的资源,则可能会导致永久性资源创建失败。在这种情况下,您可以尝试减少副本数量、更改为其他加速器类型、在非高峰时段重试或是尝试其他区域。