执行自定义训练时,您必须指定希望 Vertex AI 运行的机器学习 (ML) 代码。为此,请为自定义容器或在预构建容器上运行的 Python 训练应用配置训练容器设置。
如需确定要使用自定义容器还是预构建容器,请参阅训练代码要求。
本文档介绍上述两种情况中必须指定的 Vertex AI API 字段。
在何处指定容器设置
在 WorkerPoolSpec
中指定配置详细信息。根据您执行自定义训练的方式,请将此 WorkerPoolSpec
放入以下某个 API 字段中:
如果您要创建一个
CustomJob
资源,在CustomJob.jobSpec.workerPoolSpecs
中指定WorkerPoolSpec
。如果您使用的是 Google Cloud CLI,则可以在
gcloud ai custom-jobs create
命令上使用--worker-pool-spec
标志或--config
标志来指定工作器池选项。详细了解如何创建
CustomJob
。如果您要创建一个
HyperparameterTuningJob
资源,在HyperparameterTuningJob.trialJobSpec.workerPoolSpecs
中指定WorkerPoolSpec
。如果您使用的是 gcloud CLI,则可以使用
gcloud ai hpt-tuning-jobs create
命令上的--config
标志来指定工作器池选项。详细了解如何创建
HyperparameterTuningJob
。如果您要创建一个未进行超参数调节的
TrainingPipeline
资源,在TrainingPipeline.trainingTaskInputs.workerPoolSpecs
中指定WorkerPoolSpec
。详细了解如何创建自定义
TrainingPipeline
。如果要使用超参数调节创建
TrainingPipeline
,请在TrainingPipeline.trainingTaskInputs.trialJobSpec.workerPoolSpecs
中指定WorkerPoolSpec
。
如果您执行分布式训练,则可以对每个工作器池使用不同的设置。
配置容器设置
根据您使用的是预建容器还是自定义容器,您必须指定 WorkerPoolSpec
中的不同字段。请根据具体情况选择标签页:
预构建容器
选择支持你计划用于训练的机器学习框架的预构建容器。在
pythonPackageSpec.executorImageUri
字段中指定容器映像的一个 URI。在
pythonPackageSpec.packageUris
字段中指定 Python 训练应用的 Cloud Storage URI。在
pythonPackageSpec.pythonModule
字段中指定训练应用的入口点模块。(可选)在
pythonPackageSpec.args
字段中指定要传递给训练应用入口点模块的命令行参数列表。
以下示例突出显示了创建 CustomJob
时指定这些容器设置的位置:
控制台
在 Google Cloud 控制台中,您无法直接创建 CustomJob
。 但是,您可以创建一个创建 CustomJob
的 TrainingPipeline
。在 Google Cloud 控制台中创建 TrainingPipeline
时,您可以在训练容器步骤的某些字段中指定预构建容器设置:
pythonPackageSpec.executorImageUri
:使用模型框架和模型框架版本下拉列表。pythonPackageSpec.packageUris
:使用软件包位置字段。pythonPackageSpec.pythonModule
:使用 Python 模块字段。pythonPackageSpec.args
:使用参数字段。
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--python-package-uris=PYTHON_PACKAGE_URIS \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE
如需了解详情,请参阅 创建 CustomJob
指南。
自定义容器
在
containerSpec.imageUri
字段中指定自定义容器的 Artifact Registry 或 Docker Hub URI。(可选)如果您要替换容器中的
ENTRYPOINT
或CMD
说明,请指定containerSpec.command
或containerSpec.args
字段。这些字段按以下规则影响容器的运行方式:未指定任何一个字段:容器根据其
ENTRYPOINT
指令和CMD
指令(如果存在)运行。请参阅关于CMD
和ENTRYPOINT
如何交互的 Docker 文档。仅指定
containerSpec.command
:containerSpec.command
的值替换容器的ENTRYPOINT
指令,然后容器将据此运行。如果容器具有CMD
指令,则会被忽略。仅指定
containerSpec.args
:containerSpec.args
的值替换容器的CMD
指令,容器根据其ENTRYPOINT
指令运行。同时指定两个字段:
containerSpec.command
替换容器ENTRYPOINT
指令并且containerSpec.args
替换CMD
指令,然后容器据此运行。
以下示例突出显示了在创建 CustomJob
时指定其中某些容器设置的位置:
控制台
在 Google Cloud 控制台中,您无法直接创建 CustomJob
。 但是,您可以创建一个创建 CustomJob
的 TrainingPipeline
。在 Google Cloud 控制台中创建 TrainingPipeline
时,您可以在训练容器步骤的某些字段中指定自定义容器设置:
containerSpec.imageUri
:使用容器映像字段。containerSpec.command
:此 API 字段无法在 Google Cloud 控制台中配置。containerSpec.args
:使用参数字段。
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI
Java
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Java 设置说明执行操作。如需了解详情,请参阅 Vertex AI Java API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Node.js 设置说明执行操作。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装或更新 Python 版 Vertex AI SDK,请参阅安装 Python 版 Vertex AI SDK。如需了解详情,请参阅 Python API 参考文档。
如需了解详情,请参阅 创建 CustomJob
指南。
后续步骤
- 了解如何通过创建
CustomJob
执行自定义训练。