您可以使用 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 参考文档。