使用 Vertex AI API 训练 AutoML Edge 模型

您可以在 Google Cloud 控制台中直接创建 AutoML 模型,也可以通过使用 API 或某个 Vertex AI 客户端库以编程方式创建训练流水线。

此模型是使用您通过控制台API 提供且准备好的数据集创建的。Vertex AI API 使用数据集中的项来训练、测试模型并评估模型性能。查看评估结果,根据需要调整训练数据集,并使用改进的数据集创建新的训练流水线。

模型训练可能需要几个小时才能完成。通过 Vertex AI API,您可以获取训练状态。

创建 AutoML Edge 训练流水线

如果您有一个包含一组代表性训练项的数据集,就可以创建 AutoML Edge 训练流水线了。

选择数据类型。

图片

在下面选择您的目标对应的标签页:

分类

训练时,您可以根据具体使用场景选择所需的 AutoML Edge 模型类型:

  • 低延时 (MOBILE_TF_LOW_LATENCY_1)
  • 通用目的 (MOBILE_TF_VERSATILE_1)
  • 更高预测质量 (MOBILE_TF_HIGH_ACCURACY_1)

在下面选择您的语言或环境对应的标签页:

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"
  • EDGE_MODELTYPE:要训练的 Edge 模型的类型。选项包括:
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET:实际训练费用将等于或小于此值。对于 Edge 模型,预算必须为 1,000 至 10 万毫节点时(含边界值)。
  • PROJECT_NUMBER:您的项目编号

HTTP 方法和网址:

POST http://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": ["EDGE_MODELTYPE"],
    "budgetMilliNodeHours": NODE_HOUR_BUDGET
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content

响应包含有关规范的信息以及 TRAININGPIPELINE_ID

您可以使用 TRAININGPIPELINE_ID 获取 trainingPipeline 作业的状态

分类

训练时,您可以根据具体使用场景选择所需的 AutoML Edge 模型类型:

  • 低延时 (MOBILE_TF_LOW_LATENCY_1)
  • 通用目的 (MOBILE_TF_VERSATILE_1)
  • 更高预测质量 (MOBILE_TF_HIGH_ACCURACY_1)

在下面选择您的语言或环境对应的标签页:

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"
  • EDGE_MODELTYPE:要训练的 Edge 模型的类型。选项包括:
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET:实际训练费用将等于或小于此值。对于 Edge 模型,预算必须为 1,000 至 10 万毫节点时(含边界值)。
  • PROJECT_NUMBER:您的项目编号

HTTP 方法和网址:

POST http://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": ["EDGE_MODELTYPE"],
    "budgetMilliNodeHours": NODE_HOUR_BUDGET
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content

响应包含有关规范的信息以及 TRAININGPIPELINE_ID

您可以使用 TRAININGPIPELINE_ID 获取 trainingPipeline 作业的状态

对象检测

训练时,您可以根据具体使用场景选择所需的 AutoML Edge 模型类型:

  • 低延时 (MOBILE_TF_LOW_LATENCY_1)
  • 通用目的 (MOBILE_TF_VERSATILE_1)
  • 更高预测质量 (MOBILE_TF_HIGH_ACCURACY_1)

在下面选择您的语言或环境对应的标签页:

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"
  • EDGE_MODELTYPE:要训练的 Edge 模型的类型。选项包括:
    • MOBILE_TF_LOW_LATENCY_1
    • MOBILE_TF_VERSATILE_1
    • MOBILE_TF_HIGH_ACCURACY_1
  • NODE_HOUR_BUDGET:实际训练费用将等于或小于此值。对于 Cloud 模型,预算必须为 2 万至 90 万毫节点时(含边界值)。默认值为 216,000,代表实际用时一天(假设使用 9 个节点)。
  • PROJECT_NUMBER:您的项目编号

HTTP 方法和网址:

POST http://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": ["EDGE_MODELTYPE"],
    "budgetMilliNodeHours": NODE_HOUR_BUDGET
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content

响应包含有关规范的信息以及 TRAININGPIPELINE_ID

您可以使用 TRAININGPIPELINE_ID 获取 trainingPipeline 作业的状态

视频

在下面选择您的目标对应的标签页:

动作识别

在训练时,选择以下 AutoML Edge 类型:

  • MOBILE_VERSATILE_1:通用目的

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT:您的项目 ID。
  • LOCATION:数据集所在且模型在其中创建的区域。例如 us-central1
  • TRAINING_PIPELINE_DISPLAY_NAME:必填。TrainingPipeline 的显示名。
  • DATASET_ID:训练数据集的 ID。
  • TRAINING_FRACTIONTEST_FRACTIONfractionSplit 对象是可选的;您使用它来控制数据拆分。如需详细了解如何控制数据拆分,请参阅 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 http://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_action_recognition_1.0.0.yaml",
  "trainingTaskInputs": {
    "modelType": ["EDGE_MODEL_TYPE"],
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://LOCATION-aiplatform.googleapis.com/beta1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content

响应包含有关规范的信息以及 TRAININGPIPELINE_ID

您可以获取 trainingPipeline 进度的状态,以了解训练完成时间。

分类

在训练时,选择以下 AutoML Edge 类型:

  • MOBILE_VERSATILE_1:通用目的

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT:您的项目 ID。
  • LOCATION:数据集所在且模型在其中创建的区域。例如 us-central1
  • TRAINING_PIPELINE_DISPLAY_NAME:必填。TrainingPipeline 的显示名。
  • DATASET_ID:训练数据集的 ID。
  • TRAINING_FRACTIONTEST_FRACTIONfractionSplit 对象是可选的;您使用它来控制数据拆分。如需详细了解如何控制数据拆分,请参阅 AutoML 模型的数据拆分简介。例如:
    • {"trainingFraction": "0.8","validationFraction": "0","testFraction": "0.2"}
  • MODEL_DISPLAY_NAME:经过训练的模型的显示名。
  • MODEL_DESCRIPTION:模型的说明。
  • MOD