本页面介绍如何使用 Vertex AI API 训练 AutoML 模型。
如需了解如何使用 Google Cloud 控制台训练 AutoML 模型,请参阅使用 Google Cloud 控制台训练 AutoML 模型。
准备工作
使用 API 训练 AutoML 模型
使用 API 训练模型时,您需要创建一个 TrainingPipeline
对象,从而指定包含训练数据的数据集。
请在下面选择您的数据类型:
图片
在下面选择您的目标对应的标签页:
分类
在下面选择您的语言或环境对应的标签页:
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:数据集所在且模型在其中创建的区域。例如
us-central1
。 - PROJECT:您的项目 ID。
- TRAININGPIPELINE_DISPLAYNAME:必填。trainingPipeline 的显示名。
- DATASET_ID:用于训练的数据集的 ID 编号。
fractionSplit
:可选。数据的多个可能的机器学习用途拆分选项之一。对于fractionSplit
,值的总和必须为 1。例如:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*:TrainingPipeline 上传(创建)的模型的显示名。
- MODEL_DESCRIPTION*:模型的说明。
- modelToUpload.labels*:用于组织模型的任何键值对。例如:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†:要训练的云托管模型的类型。选项包括:
CLOUD
(默认)
- NODE_HOUR_BUDGET†:实际训练费用将等于或小于此值。对于 Cloud 模型,预算必须为:8,000 - 800,000 毫节点时(含边界值)。默认值为 192,000,代表实际用时一天(假设使用 8 个节点)。
- PROJECT_NUMBER:您的项目编号
* | 您在 trainingTaskDefinition 中指定的架构文件的说明描述了此字段的用途。 |
† | 您在 trainingTaskDefinition 中指定的架构文件声明并描述了此字段。 |
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "TRAININGPIPELINE_DISPLAYNAME", "inputDataConfig": { "datasetId": "DATASET_ID", "fractionSplit": { "trainingFraction": "DECIMAL", "validationFraction": "DECIMAL", "testFraction": "DECIMAL" } }, "modelToUpload": { "displayName": "MODEL_DISPLAYNAME", "description": "MODEL_DESCRIPTION", "labels": { "KEY": "VALUE" } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_classification_1.0.0.yaml", "trainingTaskInputs": { "multiLabel": "false", "modelType": ["MODELTYPE"], "budgetMilliNodeHours": NODE_HOUR_BUDGET } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
响应包含有关规范的信息以及 TRAININGPIPELINE_ID。
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
分类
在下面选择您的语言或环境对应的标签页:
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:数据集所在且模型在其中创建的区域。例如
us-central1
。 - PROJECT:您的项目 ID。
- TRAININGPIPELINE_DISPLAYNAME:必填。trainingPipeline 的显示名。
- DATASET_ID:用于训练的数据集的 ID 编号。
fractionSplit
:可选。数据的多个可能的机器学习用途拆分选项之一。对于fractionSplit
,值的总和必须为 1。例如:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*:TrainingPipeline 上传(创建)的模型的显示名。
- MODEL_DESCRIPTION*:模型的说明。
- modelToUpload.labels*:用于组织模型的任何键值对。例如:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†:要训练的云托管模型的类型。选项包括:
CLOUD
(默认)
- NODE_HOUR_BUDGET†:实际训练费用将等于或小于此值。对于 Cloud 模型,预算必须为:8,000 - 800,000 毫节点时(含边界值)。默认值为 192,000,代表实际用时一天(假设使用 8 个节点)。
- PROJECT_NUMBER:您的项目编号
* | 您在 trainingTaskDefinition 中指定的架构文件的说明描述了此字段的用途。 |
† | 您在 trainingTaskDefinition 中指定的架构文件声明并描述了此字段。 |
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "TRAININGPIPELINE_DISPLAYNAME", "inputDataConfig": { "datasetId": "DATASET_ID", "fractionSplit": { "trainingFraction": "DECIMAL", "validationFraction": "DECIMAL", "testFraction": "DECIMAL" } }, "modelToUpload": { "displayName": "MODEL_DISPLAYNAME", "description": "MODEL_DESCRIPTION", "labels": { "KEY": "VALUE" } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_classification_1.0.0.yaml", "trainingTaskInputs": { "multiLabel": "true", "modelType": ["MODELTYPE"], "budgetMilliNodeHours": NODE_HOUR_BUDGET } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
响应包含有关规范的信息以及 TRAININGPIPELINE_ID。
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
对象检测
在下面选择您的语言或环境对应的标签页:
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:数据集所在且模型在其中创建的区域。例如
us-central1
。 - PROJECT:您的项目 ID。
- TRAININGPIPELINE_DISPLAYNAME:必填。trainingPipeline 的显示名。
- DATASET_ID:用于训练的数据集的 ID 编号。
fractionSplit
:可选。数据的多个可能的机器学习用途拆分选项之一。对于fractionSplit
,值的总和必须为 1。例如:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*:TrainingPipeline 上传(创建)的模型的显示名。
- MODEL_DESCRIPTION*:模型的说明。
- modelToUpload.labels*:用于组织模型的任何键值对。例如:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†:要训练的云托管模型的类型。选项包括:
CLOUD-HIGH-ACCURACY-1
- 最适合定制以在 Google Cloud 中使用且无法导出的模型。此模型预计延迟时间会更长,但也应该比其他云模型具有更高的预测质量。CLOUD-LOW-LATENCY-1
- 最适合定制以在 Google Cloud 中使用且无法导出的模型。此模型预计延迟时间较低,但可能低于其他云模型的预测质量。
- NODE_HOUR_BUDGET†:实际训练费用将等于或小于此值。对于 Cloud 模型,预算必须为 2 万至 90 万毫节点时(含边界值)。默认值为 216,000,代表实际用时一天(假设使用 9 个节点)。
- PROJECT_NUMBER:您的项目编号
* | 您在 trainingTaskDefinition 中指定的架构文件的说明描述了此字段的用途。 |
† | 您在 trainingTaskDefinition 中指定的架构文件声明并描述了此字段。 |
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "TRAININGPIPELINE_DISPLAYNAME", "inputDataConfig": { "datasetId": "DATASET_ID", "fractionSplit": { "trainingFraction": "DECIMAL", "validationFraction": "DECIMAL", "testFraction": "DECIMAL" } }, "modelToUpload": { "displayName": "MODEL_DISPLAYNAME", "description": "MODEL_DESCRIPTION", "labels": { "KEY": "VALUE" } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_object_detection_1.0.0.yaml", "trainingTaskInputs": { "modelType": ["MODELTYPE"], "budgetMilliNodeHours": NODE_HOUR_BUDGET } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
响应包含有关规范的信息以及 TRAININGPIPELINE_ID。
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
表格
选择表格数据类型目标。
分类
选择语言或环境标签页:
REST 和命令行
您可以使用 trainingPipelines.create 命令训练模型。
训练模型。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:您的区域。
- PROJECT:您的项目 ID。
- TRAININGPIPELINE_DISPLAY_NAME:为此操作创建的训练流水线的显示名称。
- TARGET_COLUMN:您希望此模型预测的列(值)。
- WEIGHT_COLUMN:(可选)权重列。了解详情。
- TRAINING_BUDGET:您希望模型训练的最长时间,以毫节点时为单位(1,000 毫节点时等于一节点时)。
- OPTIMIZATION_OBJECTIVE:仅当您不希望预测类型的默认优化目标时,才需要。了解详情。
- TRANSFORMATION_TYPE:将为用于训练模型的每一列提供转换类型。了解详情。
- COLUMN_NAME:具有指定转换类型的列的名称。必须指定用于训练模型的每一列。
- MODEL_DISPLAY_NAME:新训练模型的显示名称。
- DATASET_ID:训练数据集的 ID。
-
您可以提供
Split
对象来控制数据拆分。如需了解如何控制数据拆分,请参阅使用 REST 控制数据拆分。 - PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "classification", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
预测
选择语言或环境标签页:
REST 和命令行
您可以使用 trainingPipelines.create 命令训练模型。
训练模型。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:您的区域。
- PROJECT:您的项目 ID。
- TRAINING_PIPELINE_DISPLAY_NAME:为此操作创建的训练流水线的显示名称。
-
TRAINING_TASK_DEFINITION:模型训练方法
- AutoML:非常适合各种用例。
gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_forecasting_1.0.0.yaml
- Seq2Seq+:非常适合进行实验。该算法可能比 AutoML 收敛更快,因为它的架构更简单,并且使用较小的搜索空间。我们的实验发现,在时间预算较少的情况下以及在小于 1 GB 的数据集上,Seq2Seq+ 性能较好。
gs://google-cloud-aiplatform/schema/trainingjob/definition/seq2seq_plus_time_series_forecasting_1.0.0.yaml
- AutoML:非常适合各种用例。
- TARGET_COLUMN:您希望此模型预测的列(值)。
- TIME_COLUMN:时间列。了解详情。
- TIME_SERIES_IDENTIFIER_COLUMN:时序标识符列。了解详情。
- WEIGHT_COLUMN:(可选)权重列。了解详情。
- TRAINING_BUDGET:您希望模型训练的最长时间,以毫节点时为单位(1,000 毫节点时等于一节点时)。
-
GRANULARITY_UNIT:用于训练数据粒度以及预测水平和上下文窗口的单元。可以是
minute
、hour
、day
、week
、month
或year
。 如果您想使用节假日效应建模,请选择day
。了解详情。 - GRANULARITY_QUANTITY:训练数据两次观察所间隔的粒度单位数。对于所有单位(分钟除外),都必须为 1、5、10、15 或 30。了解详情。
- GROUP_COLUMNS:训练输入表中用于标识层次结构级别分组的列名。这些列必须是“time_series_attributes_columns”。了解详情。
- GROUP_TOTAL_WEIGHT:组汇总损失相对于单个损失的权重。如果设置为“0.0”或未设置,则停用。如果未设置组列,则所有时序将被视为同一组,并按所有时序汇总。了解详情。
- TEMPORAL_TOTAL_WEIGHT:时间汇总损失相对于单个损失的权重。如果设置为“0.0”或未设置,则停用。了解详情。
- GROUP_TEMPORAL_TOTAL_WEIGHT:总(组 x 时间)汇总损失相对于单个损失的权重。如果设置为“0.0”或未设置,则停用。如果未设置组列,则所有时序将被视为同一组,并按所有时序汇总。了解详情。
-
HOLIDAY_REGIONS:(可选)在建模中应用节假日效应所依据的一个或多个地理区域。在训练期间,Vertex AI 会根据时间列中的日期和指定的地理区域在模型中创建节假日分类特征。如需启用此功能,请将 GRANULARITY_UNIT 设置为
day
,并在 HOLIDAY_REGIONS 字段中指定一个或多个区域。默认情况下,节假日效应建模处于停用状态。可接受的值包括:
GLOBAL
:检测所有世界区域的节假日。
NA
:检测北美洲的节假日JAPAC
:检测日本和亚太地区的节假日EMEA
:检测欧洲、中东和非洲的节假日LAC
:检测拉丁美洲和加勒比地区的节假日- ISO 3166-1 国家/地区代码:检测各个国家/地区的节假日。
- FORECAST_HORIZON:预测粒度的大小,以粒度单位指定。预测范围是模型应预测结果的时间段。了解详情。
- CONTEXT_WINDOW:模型在训练时应回顾的要包含的粒度单位数。了解详情。
- OPTIMIZATION_OBJECTIVE:仅当您不希望预测类型的默认优化目标时,才需要。了解详情。
- TIME_SERIES_ATTRIBUTE_COL:是时序属性的列的名称。了解详情。
- AVAILABLE_AT_FORECAST_COL:在预测时其值已知的协变量列的名称。了解详情。
- UNAVAILABLE_AT_FORECAST_COL:预测值未知的协变量列的名称。了解详情。
- TRANSFORMATION_TYPE:将为用于训练模型的每一列提供转换类型。了解详情。
- COLUMN_NAME:具有指定转换类型的列的名称。必须指定用于训练模型的每一列。
- MODEL_DISPLAY_NAME:新训练模型的显示名称。
- DATASET_ID:训练数据集的 ID。
-
您可以提供
Split
对象来控制数据拆分。如需了解如何控制数据拆分,请参阅使用 REST 控制数据拆分。 -
您可以提供
windowConfig
对象来配置预测时段。如需了解详情,请参阅使用 REST 配置预测时段。 - PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "TRAINING_PIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "TRAINING_TASK_DEFINITION", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "timeColumn": "TIME_COLUMN", "timeSeriesIdentifierColumn": "TIME_SERIES_IDENTIFIER_COLUMN", "weightColumn": "WEIGHT_COLUMN", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "dataGranularity": {"unit": "GRANULARITY_UNIT", "quantity": GRANULARITY_QUANTITY}, "hierarchyConfig": {"groupColumns": GROUP_COLUMNS, "groupTotalWeight": GROUP_TOTAL_WEIGHT, "temporalTotalWeight": TEMPORAL_TOTAL_WEIGHT, "groupTemporalTotalWeight": GROUP_TEMPORAL_TOTAL_WEIGHT} "holidayRegions" : ["HOLIDAY_REGIONS_1", "HOLIDAY_REGIONS_2", ...] "forecast_horizon": FORECAST_HORIZON, "context_window": CONTEXT_WINDOW, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "time_series_attribute_columns": ["TIME_SERIES_ATTRIBUTE_COL_1", "TIME_SERIES_ATTRIBUTE_COL_2", ...] "available_at_forecast_columns": ["AVAILABLE_AT_FORECAST_COL_1", "AVAILABLE_AT_FORECAST_COL_2", ...] "unavailable_at_forecast_columns": ["UNAVAILABLE_AT_FORECAST_COL_1", "UNAVAILABLE_AT_FORECAST_COL_2", ...] "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/trainingPipelines/TRAINING_PIPELINE_ID", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
回归
选择语言或环境标签页:
REST 和命令行
您可以使用 trainingPipelines.create 命令训练模型。
训练模型。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:您的区域。
- PROJECT:您的项目 ID。
- TRAININGPIPELINE_DISPLAY_NAME:为此操作创建的训练流水线的显示名称。
- TARGET_COLUMN:您希望此模型预测的列(值)。
- WEIGHT_COLUMN:(可选)权重列。了解详情。
- TRAINING_BUDGET:您希望模型训练的最长时间,以毫节点时为单位(1,000 毫节点时等于一节点时)。
- OPTIMIZATION_OBJECTIVE:仅当您不希望预测类型的默认优化目标时,才需要。了解详情。
- TRANSFORMATION_TYPE:将为用于训练模型的每一列提供转换类型。了解详情。
- COLUMN_NAME:具有指定转换类型的列的名称。必须指定用于训练模型的每一列。
- MODEL_DISPLAY_NAME:新训练模型的显示名称。
- DATASET_ID:训练数据集的 ID。
-
您可以提供
Split
对象来控制数据拆分。如需了解如何控制数据拆分,请参阅使用 REST 控制数据拆分。 - PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "regression", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
文本
选择文字数据类型目标。
分类
选择语言或环境标签页:
REST 和命令行
您可以使用 trainingPipelines.create 命令训练模型。
创建一个 TrainingPipeline
对象来训练模型。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:将在其中创建模型的区域,例如
us-central1
- PROJECT:您的项目 ID
- MODEL_DISPLAY_NAME:在界面中显示的模型名称
- MULTI-LABEL:一个布尔值,指示 Vertex AI 是否训练多标签模型;默认值为
false
(单标签模型) - DATASET_ID:数据集的 ID
- PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "MODEL_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_classification_1.0.0.yaml", "trainingTaskInputs": { "multiLabel": MULTI-LABEL }, "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME" }, "inputDataConfig": { "datasetId": "DATASET_ID" } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/PIPELINE_ID", "displayName": "MODEL_DISPLAY_NAME", "inputDataConfig": { "datasetId": "DATASET_ID" }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_classification_1.0.0.yaml", "trainingTaskInputs": { "multiLabel": MULTI-LABEL }, "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-04-18T01:22:57.479336Z", "updateTime": "2020-04-18T01:22:57.479336Z" }
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
实体提取
选择语言或环境标签页:
REST 和命令行
您可以使用 trainingPipelines.create 命令训练模型。
创建一个 TrainingPipeline
对象来训练模型。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:将在其中创建模型的区域,例如
us-central1
- PROJECT:您的项目 ID
- MODEL_DISPLAY_NAME:在界面中显示的模型名称
- DATASET_ID:数据集的 ID
- PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "MODEL_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_extraction_1.0.0.yaml", "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME" }, "inputDataConfig": { "datasetId": "DATASET_ID" } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/PIPELINE_ID", "displayName": "MODEL_DISPLAY_NAME", "inputDataConfig": { "datasetId": "DATASET_ID" }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_extraction_1.0.0.yaml", "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-04-18T01:22:57.479336Z", "updateTime": "2020-04-18T01:22:57.479336Z" }
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
情感分析
选择语言或环境标签页:
REST 和命令行
您可以使用 trainingPipelines.create 命令训练模型。
创建一个 TrainingPipeline
对象来训练模型。
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:将在其中创建模型的区域,例如
us-central1
- PROJECT:您的项目 ID
- MODEL_DISPLAY_NAME:在界面中显示的模型名称
- SENTIMENT_MAX:训练数据集中的最高情感得分
- DATASET_ID:数据集的 ID
- PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "MODEL_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml", "trainingTaskInputs": { "sentimentMax": SENTIMENT_MAX }, "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME" }, "inputDataConfig": { "datasetId": "DATASET_ID" } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/PIPELINE_ID", "displayName": "MODEL_DISPLAY_NAME", "inputDataConfig": { "datasetId": "DATASET_ID" }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml", "trainingTaskInputs": { "sentimentMax": SENTIMENT_MAX }, "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-04-18T01:22:57.479336Z", "updateTime": "2020-04-18T01:22:57.479336Z" }
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
视频
在下面选择您的目标对应的标签页:
动作识别
在下面选择您的语言或环境对应的标签页:
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- PROJECT:您的项目 ID。
- LOCATION:数据集所在且模型在其中创建的区域。例如
us-central1
。 - TRAINING_PIPELINE_DISPLAY_NAME:必填。TrainingPipeline 的显示名。
- DATASET_ID:训练数据集的 ID。
-
TRAINING_FRACTION、TEST_FRACTION:
fractionSplit
对象是可选的;您使用它来控制数据拆分。如需详细了解如何控制数据拆分,请参阅 AutoML 模型的数据拆分简介。例如:{"trainingFraction": "0.8","validationFraction": "0","testFraction": "0.2"}
- MODEL_DISPLAY_NAME:经过训练的模型的显示名。
- MODEL_DESCRIPTION:模型的说明。
- MODEL_LABELS:用于组织模型的任何键值对。例如:
- "env": "prod"
- "tier": "backend"
- EDGE_MODEL_TYPE:
MOBILE_VERSATILE_1
:通用目的
- PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "TRAINING_PIPELINE_DISPLAY_NAME", "inputDataConfig": { "datasetId": "DATASET_ID", "fractionSplit": { "trainingFraction": "TRAINING_FRACTION", "validationFraction": "0", "testFraction": "TEST_FRACTION" } }, "modelToUpload": { "displayName": "MODEL_DISPLAY_NAME", "description": "MODEL_DESCRIPTION", "labels": { "KEY": "VALUE" } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "trainingTaskInputs": { "modelType": ["EDGE_MODEL_TYPE"], } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
响应包含有关规范的信息以及 TRAININGPIPELINE_ID。
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
分类
在下面选择您的语言或环境对应的标签页:
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:数据集所在且用于存储模型的区域。例如
us-central1
。 - PROJECT:您的项目 ID。
- MODEL_DISPLAY_NAME:新训练模型的显示名称。
- DATASET_ID:训练数据集的 ID。
-
filterSplit
对象为可选;您可使用它来控制数据拆分。如需详细了解如何控制数据拆分,请参阅使用 REST 控制数据拆分。 - PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "MODE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_classification_1.0.0.yaml", "trainingTaskInputs": {}, "modelToUpload": {"displayName": "MODE_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", "filterSplit": { "trainingFilter": "labels.ml_use = training", "validationFilter": "labels.ml_use = -", "testFilter": "labels.ml_use = test" } } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/2307109646608891904", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_classification_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-04-18T01:22:57.479336Z", "updateTime": "2020-04-18T01:22:57.479336Z" }
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
对象跟踪
在下面选择您的语言或环境对应的标签页:
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- LOCATION:数据集所在且用于存储模型的区域。例如
us-central1
。 - PROJECT:您的项目 ID。
- MODEL_DISPLAY_NAME:新训练模型的显示名称。
- DATASET_ID:训练数据集的 ID。
-
filterSplit
对象为可选;您可使用它来控制数据拆分。如需详细了解如何控制数据拆分,请参阅使用 REST 控制数据拆分。 - PROJECT_NUMBER:您的项目编号
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
请求 JSON 正文:
{ "displayName": "MODE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "trainingTaskInputs": {}, "modelToUpload": {"displayName": "MODE_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", "filterSplit": { "trainingFilter": "labels.ml_use = training", "validationFilter": "labels.ml_use = -", "testFilter": "labels.ml_use = test" } } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/2307109646608891904", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_video_object_tracking_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-04-18T01:22:57.479336Z", "updateTime": "2020-04-18T01:22:57.479336Z" }
Java
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Java API 参考文档。
Node.js
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Node.js API 参考文档。
Python
如需了解如何安装和使用 Vertex AI 客户端库,请参阅 Vertex AI 客户端库。如需了解详情,请参阅 Vertex AI Python API 参考文档。
使用 REST 控制数据拆分
您可以控制在训练集、验证集和测试集之间拆分训练数据的方式。使用 Vertex AI API 时,请使用 Split
对象来确定数据拆分。Split
对象可以包含在 InputConfig
对象中作为多种对象类型中的一种,其中每种类型都提供一种不同的训练数据拆分方式。您只能选择一种方法。
可用于拆分数据的方法取决于数据类型:
图片、文字、视频
-
FractionSplit
:- TRAINING_FRACTION:要用于训练集的训练数据的比例。
- VALIDATION_FRACTION:要用于验证集的训练数据的比例。不用于视频数据。
- TEST_FRACTION:要用于测试集的训练数据的比例。
如果指定了任一比例,则必须指定所有比例。这些比例之和必须等于 1.0。比例的默认值会因数据类型而异。了解详情。
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
-
FilterSplit
:- TRAINING_FILTER:与此过滤器匹配的数据项用于训练集。
- VALIDATION_FILTER:与此过滤器匹配的数据项用于验证集。对于视频数据,该值必须为“-”。
- TEST_FILTER:与此过滤器匹配的数据项用于测试集。
这些过滤器可以与
ml_use
标签或应用于数据的任何标签一起使用。详细了解如何使用 ml-use 标签和其他标签过滤数据。以下示例说明如何使用带
ml_use
标签的filterSplit
对象,其中包含验证集:"filterSplit": { "trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training", "validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation", "testFilter": "labels.aiplatform.googleapis.com/ml_use=test" }
表格
-
FractionSplit
:- TRAINING_FRACTION:要用于训练集的训练数据的比例。
- VALIDATION_FRACTION:要用于验证集的训练数据的比例。不用于视频数据。
- TEST_FRACTION:要用于测试集的训练数据的比例。
如果指定了任一比例,则必须指定所有比例。这些比例之和必须等于 1.0。比例的默认值会因数据类型而异。了解详情。
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
预测模型不支持
fractionSplit
对象。 -
PredefinedSplit
:-
DATA_SPLIT_COLUMN:包含数据拆分值(
TRAIN
、VALIDATION
、TEST
)的列。
使用拆分列为每行手动指定数据拆分。了解详情。
"predefinedSplit": { "key": DATA_SPLIT_COLUMN },
-
DATA_SPLIT_COLUMN:包含数据拆分值(
-
TimestampSplit
:- TRAINING_FRACTION:要用于训练集的训练数据的百分比。默认值为 0.80。
- VALIDATION_FRACTION:要用于验证集的训练数据的百分比。默认值为 0.10。
- TEST_FRACTION:要用于测试集的训练数据的百分比。默认值为 0.10。
- TIME_COLUMN:包含时间戳的列。
如果指定了任一比例,则必须指定所有比例。这些比例之和必须等于 1.0。了解详情。
预测模型不支持
TimestampSplit
对象。"timestampSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION "key": TIME_COLUMN }