使用 Vertex AI Pipelines 请求 Google Cloud 机器资源

您可以使用 Vertex AI 自定义训练提供的 Google Cloud专用机器资源在 Vertex AI Pipelines 上运行 Python 组件。

您可以从 Google Cloud 流水线组件使用 create_custom_training_job_from_component 方法将 Python 组件转换为 Vertex AI 自定义训练作业。了解如何创建自定义作业

使用 Vertex AI Pipelines 从组件创建自定义训练作业

以下示例展示了如何使用 create_custom_training_job_from_component 方法将 Python 组件转换为使用用户定义的 Google Cloud 机器资源的自定义训练作业,然后在 Vertex AI Pipelines 上运行已编译的流水线:


import kfp
from kfp import dsl
from google_cloud_pipeline_components.v1.custom_job import create_custom_training_job_from_component

# Create a Python component
@dsl.component
def my_python_component():
  import time
  time.sleep(1)

# Convert the above component into a custom training job
custom_training_job = create_custom_training_job_from_component(
    my_python_component,
    display_name = 'DISPLAY_NAME',
    machine_type = 'MACHINE_TYPE',
    accelerator_type='ACCELERATOR_TYPE',
    accelerator_count='ACCELERATOR_COUNT',
    boot_disk_type: 'BOOT_DISK_TYPE',
    boot_disk_size_gb: 'BOOT_DISK_SIZE',
    network: 'NETWORK',
    reserved_ip_ranges: 'RESERVED_IP_RANGES',
    nfs_mounts: 'NFS_MOUNTS'
    persistent_resource_id: 'PERSISTENT_RESOURCE_ID'
)

# Define a pipeline that runs the custom training job
@dsl.pipeline(
  name="resource-spec-request",
  description="A simple pipeline that requests a Google Cloud machine resource",
  pipeline_root='PIPELINE_ROOT',
)
def pipeline():
  training_job_task = custom_training_job(
      project='PROJECT_ID',
      location='LOCATION',
  ).set_display_name('training-job-task')

替换以下内容:

  • DISPLAY_NAME:自定义作业的名称。 如果您未指定名称,则系统会默认使用组件名称。

  • MACHINE_TYPE:运行自定义作业的机器类型,例如 e2-standard-4。如需详细了解机器类型,请参阅机器类型。 如果您将 TPU 指定为 accelerator_type,请将此字段设置为 cloud-tpu。 如需了解详情,请参阅 machine_type 参数参考文档

  • ACCELERATOR_TYPE:挂接到机器的加速器类型。如需详细了解可用的 GPU 以及如何配置它们,请参阅 GPU。如需详细了解可用的 TPU 类型以及如何配置它们,请参阅 TPU。 如需了解详情,请参阅 accelerator_type 参数参考文档

  • ACCELERATOR_COUNT:挂接到运行自定义作业的机器的加速器数量。 如果您指定了加速器类型,则加速器数量默认设置为 1

  • BOOT_DISK_TYPE:启动磁盘的类型。如需了解详情,请参阅 boot_disk_type 参数参考文档

  • BOOT_DISK_SIZE:启动磁盘大小(以 GB 为单位)。 如需了解详情,请参阅 boot_disk_size_gb 参数参考文档

  • NETWORK:如果自定义作业与已配置专用服务访问权限的 Compute Engine 网络对等互连,请指定该网络的完整名称。如需了解详情,请参阅 network 参数参考文档

  • RESERVED_IP_RANGES:用于部署自定义作业的 VPC 网络下预留 IP 地址范围的名称列表。如需了解详情,请参阅 reserved_ip_ranges 参数参考文档

  • NFS_MOUNTS:JSON 字典格式的 NFS 挂载资源列表。如需了解详情,请参阅 nfs_mounts 参数参考文档

  • PERSISTENT_RESOURCE_ID(预览版):用于运行流水线的永久性资源的 ID。如果您指定了永久性资源,流水线将在与永久性资源关联的现有机器上运行,而不是在按需和短时机器资源上运行。请注意,流水线的网络和 CMEK 配置必须与为永久性资源指定的配置一致。如需详细了解永久性资源及其创建方法,请参阅创建永久性资源

  • PIPELINE_ROOT:指定流水线服务账号可以访问的 Cloud Storage URI。流水线运行的工件存储在流水线根目录中。

  • PROJECT_ID:此流水线在其中运行的 Google Cloud 项目。

  • LOCATION:此流水线的运行位置或区域。

API 参考文档

如需查看 create_custom_training_job_from_component 方法支持的参数的完整列表,请参阅 Google Cloud 流水线组件 SDK 参考文档