管理模型和作业

在训练和部署模型以及进行预测的过程中,您需要在 Google Cloud Platform 上管理资源。本页介绍如何使用模型、版本和作业。

为 AI Platform Prediction 资源命名

您必须为创建的每个作业指定名称。对于这三种类型的资源而言,命名规则是一致的。每个名称必须符合以下条件:

  • 只能包含字母、数字和下划线。
  • 区分大小写。
  • 必须以字母开头。
  • 长度不能超过 128 个字符。
  • 在其命名空间内必须唯一(模型和作业的项目,版本的父模型)。

您应创建易于在资源(例如作业日志)列表中区分的名称。下面提供了一些建议:

  • 使用模型名称和作业索引(可以使用创建作业的时间戳)为同一个模型的所有作业命名。
  • 为模型命名时,应使模型所用的数据集能够轻松识别模型(例如,census_wide_deep 通常比 my_new_model 更好)。
  • 最好使用可读性较强的版本标识符。我们建议使用简单的版本标识符(例如 v1),而不建议使用时间戳或类似的唯一值。

管理模型

在 AI Platform Prediction 中,您的模型资源是机器学习模型单个实现的逻辑容器。它们是最简单的资源,这是因为没有复杂的操作或额外的资源需要分配和维护。

下表总结了模型操作,并列出了可用于执行这些操作的接口:

操作 接口 说明
create projects.models.create
gcloud ai-platform models create
AI Platform Prediction 模型页面创建模型
delete projects.models.delete

删除模型是一项长时间运行的操作

要想删除模型,系统中不能存在与该模型关联的版本。

gcloud ai-platform models delete
模型列表中或模型详细信息页面上删除模型。
get projects.models.get

Model 资源参考文档中描述了您所获取的信息。

gcloud ai-platform models describe
模型详细信息页面(通过模型列表中的链接进入)。
list projects.models.list
gcloud ai-platform models list
AI Platform Prediction 模型页面

管理版本

您的版本是模型的特定迭代。模型版本的核心是 TensorFlow SavedModel。

下表总结了版本操作,并列出了可用于执行这些操作的接口:

操作 接口 说明
create projects.models.versions.create

创建版本等于将 SavedModel 部署到 AI Platform Prediction。如需了解详情,请参阅模型部署指南

gcloud ai-platform versions create
模型详细信息页面(通过模型列表中的链接进入)上创建版本
delete projects.models.versions.delete

删除版本是一项长时间运行的操作

您无法删除模型的默认版本,除非它是分配给该模型的唯一版本。

gcloud ai-platform versions delete
模型详细信息页面的版本列表中删除版本。
get projects.models.versions.get

Version 资源参考文档中描述了您所获取的信息。

gcloud ai-platform versions describe
版本详细信息页面(通过模型详细信息页面上版本列表中的链接进入)。
list projects.models.versions.list
gcloud ai-platform versions list
模型详细信息页面上的版本列表。
setDefault projects.models.versions.setDefault

这是为模型分配新默认版本的唯一方法;在设置了第一个版本之后,创建版本不会再将新版本设置为默认版本。

gcloud ai-platform versions set-default
模型详细信息页面的版本列表中设置为默认版本

管理作业

AI Platform Prediction 支持两种类型的作业:训练和批量预测。两种作业的详细信息不同,但基本操作相同。

下表总结了作业操作,并列出了可用于执行这些操作的接口:

操作 接口 说明
create projects.jobs.create

训练批量预测指南中详细介绍了如何创建作业。

gcloud ai-platform jobs submit training

gcloud ai-platform jobs submit prediction

没有控制台实现。
cancel projects.jobs.cancel

取消正在运行的作业。

gcloud ai-platform jobs cancel

作业详细信息页面上取消作业。
get projects.jobs.get Jobs 资源参考文档中描述了您所获取的信息。

gcloud ai-platform jobs describe

作业详细信息页面(通过作业列表中的链接进入)。
list projects.jobs.list 仅显示过去 90 天内创建的作业。

gcloud ai-platform jobs list

作业列表

处理异步操作

大多数 AI Platform Prediction 资源管理操作都会尽快返回,并提供完整的响应。但是,您应该了解以下两种异步操作:作业和长时间运行的操作。

当您启动异步操作时,通常需要知道它何时能够完成。获取状态的过程对于作业和长时间运行操作是不同的:

获取作业的状态

您可以使用 projects.jobs.get 获取作业的状态。gcloud ai-platform jobs describe 和 Google Cloud Console 的作业页面也提供了此方法。无论您如何获取状态,状态信息均以作业资源的成员为基础。响应中的 Job.state 与下列值之一相等时,即表示作业已完成:

  • SUCCEEDED
  • FAILED
  • CANCELLED

获取长时间运行操作的状态

AI Platform Prediction 有三种长时间运行的操作:

  • 创建版本
  • 删除模型
  • 删除版本

在三种长时间运行的操作中,仅创建版本操作可能需要较长时间才能完成。删除模型和删除版本通常几乎是实时完成的。

如果您使用 gcloud 命令行工具或 Cloud Console 创建版本,则操作完成时,界面会自动通知您。如果您使用 API 创建版本,则可以自行跟踪操作的状态:

  1. 从调用 projects.models.versions.create 的响应中的 Operation 对象获取服务分配的操作名称。名称值的键为 "name"

  2. 使用 projects.operations.get 定期轮询操作的状态。

    1. 使用第一步中的操作名称构成以下形式的名称字符串:

      'projects/my_project/operations/operation_name'
      

      响应消息包含 Operation 对象。

    2. 获取 "done" 键的值。该值为布尔值,用于指示操作是否完成。如果操作完成,则该值为 true。

  3. 操作完成时,Operation 对象将包含以下两个键中的一个:

    • 如果操作成功,则包含 "response" 键。其值应为 google.protobuf.Empty,因为没有任何 AI Platform Prediction 长时间运行的操作具有响应对象。

    • 如果出现错误,则包含 "error" 键。其值为 Status 对象。

后续步骤