导出模型工件以进行预测

Google Distributed Cloud (GDC) 网闸隔离配置提供预构建容器,以便使用以下机器学习 (ML) 框架训练的模型提供在线预测:

  • TensorFlow
  • PyTorch

如需使用这些预构建容器之一,您必须将模型保存为符合预构建容器要求的一个或多个模型工件。无论您的模型工件是否是在 Distributed Cloud 上创建的,这些要求都适用。

准备工作

在导出模型工件之前,请执行以下步骤:

  1. 创建和训练一个预测模型,该模型以受支持的容器之一为目标。
  2. 如果您没有项目,请为 Vertex AI 设置项目。
  3. 与基础架构运维人员 (IO) 合作,创建预测集群。

    IO 会为您创建集群,将其与您的项目相关联,并根据您进行在线预测所需的资源,在集群中分配适当的节点池。

  4. 为您的项目创建存储桶。

  5. 在项目中创建 Vertex AI 默认服务 (vai-default-serving-sa) 服务账号。如需了解服务账号,请参阅设置服务账号。

  6. 向您创建的存储桶的 Vertex AI 默认服务 (vai-default-serving-sa) 服务账号授予 Project Bucket Object Viewer (project-bucket-object-viewer) 角色。如需了解如何向服务账号授予存储桶访问权限,请参阅授予存储桶访问权限。

  7. 如需获得访问在线预测所需的权限,请让您的 IAM 项目管理员为您授予 Vertex AI Prediction User (vertex-ai-prediction-user) 角色。如需了解此角色,请参阅准备 IAM 权限。

  8. 如需获得部署在线预测模型所需的权限,请让您的 IAM 项目管理员为您授予 Vertex AI Prediction Admin (vertex-ai-prediction-Admin) 角色。如需了解此角色,请参阅准备 IAM 权限。

导出到预构建容器的框架专属要求

根据您打算用于预测的机器学习框架,您必须以不同格式导出模型工件。以下部分介绍了每个机器学习框架可接受的模型格式。

TensorFlow

如果您使用 TensorFlow 训练模型,请将模型导出为 TensorFlow SavedModel 目录。

您可以通过多种方式从 TensorFlow 训练代码中导出 SavedModels。以下列表介绍了适用于各种 TensorFlow API 的多种不同方式:

如果您未使用 Keras 或 Estimator,则请务必在导出 SavedModel 时使用 serve 标记和 serving_default 签名,以确保 Vertex AI 可以使用您的模型工件来执行预测。Keras 和 Estimator 会自动处理此任务。 详细了解如何在导出期间指定签名。

如需使用这些工件进行预测,请使用与您用于训练的 TensorFlow 版本匹配的用于预测的预构建容器创建 Model。

PyTorch

如果您使用 PyTorch 训练模型,则必须使用 Torch 模型归档程序创建归档文件,以打包模型工件(包括默认或自定义处理程序)。预构建的 PyTorch 映像要求归档命名为 model.mar,因此请确保将模型名称设置为 model。

如需了解如何优化使用 TorchServe 提供的 PyTorch 模型的内存用量、延迟时间或吞吐量,请参阅 PyTorch 性能指南。

上传模型

您必须将模型上传到您创建的存储桶。如需详细了解如何将对象上传到存储桶,请参阅在项目中上传和下载存储对象。

模型存储桶的路径必须采用以下结构:

s3://BUCKET_NAME/MODEL_ID/MODEL_VERSION_ID

如需了解导出详情,请参阅导出到预构建容器的框架专属要求。