使用 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'
)

# 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 参数参考文档

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

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

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

API 参考文档

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