在训练和部署模型以及进行预测的过程中,您需要在 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
|
|
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
|
|
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
|
|
没有控制台实现。 | ||
cancel |
projects.jobs.cancel
|
取消正在运行的作业。 |
在作业详细信息页面上取消作业。 | ||
get |
projects.jobs.get
|
Jobs 资源参考文档中描述了您所获取的信息。
|
作业详细信息页面(通过作业列表中的链接进入)。 | ||
list |
projects.jobs.list
|
仅显示过去 90 天内创建的作业。 |
作业列表。 |
处理异步操作
大多数 AI Platform Prediction 资源管理操作都会尽快返回,并提供完整的响应。但是,您应该了解以下两种异步操作:作业和长时间运行的操作。
当您启动异步操作时,通常需要知道它何时能够完成。获取状态的过程对于作业和长时间运行操作是不同的:
获取作业的状态
您可以使用 projects.jobs.get 获取作业的状态。gcloud ai-platform jobs describe
和 Google Cloud Console 的作业页面也提供了此方法。无论您如何获取状态,状态信息均以作业资源的成员为基础。响应中的 Job.state
与下列值之一相等时,即表示作业已完成:
SUCCEEDED
FAILED
CANCELLED
获取长时间运行操作的状态
AI Platform Prediction 有三种长时间运行的操作:
- 创建版本
- 删除模型
- 删除版本
在三种长时间运行的操作中,仅创建版本操作可能需要较长时间才能完成。删除模型和删除版本通常几乎是实时完成的。
如果您使用 Google Cloud CLI 或 Google Cloud 控制台创建版本,则操作完成时,界面会自动通知您。如果您使用 API 创建版本,则可以自行跟踪操作的状态:
从调用 projects.models.versions.create 的响应中的 Operation 对象获取服务分配的操作名称。名称值的键为
"name"
。使用 projects.operations.get 定期轮询操作的状态。
使用第一步中的操作名称构成以下形式的名称字符串:
'projects/my_project/operations/operation_name'
响应消息包含 Operation 对象。
获取
"done"
键的值。该值为布尔值,用于指示操作是否完成。如果操作完成,则该值为 true。
操作完成时,Operation 对象将包含以下两个键中的一个:
如果操作成功,则包含
"response"
键。其值应为 google.protobuf.Empty,因为没有任何 AI Platform Prediction 长时间运行的操作具有响应对象。如果出现错误,则包含
"error"
键。其值为 Status 对象。