区域端点

为了使用在线预测,您可以使用全球端点 (ml.googleapis.com) 或某一区域端点 (REGION-ml.googleapis.com) 与 AI Platform Training and Prediction API 进行交互。使用区域端点进行在线预测可以为您的模型提供额外的保护,使其免受其他区域服务中断带来的影响,这是因为它会将您的模型资源与版本资源与其他地区分割开来。

AI Platform Prediction 目前支持以下区域端点:

  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • northamerica-northeast1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • asia-east1
  • asia-northeast1
  • asia-southeast1
  • australia-southeast1

本指南比较使用区域端点与全球端点的优势和局限性。此外,本指南还介绍如何使用区域端点进行在线预测。

了解区域端点

区域端点与全球端点有以下几个主要区别:

  • 区域端点仅支持 Compute Engine (N1) 机器类型。您不能在区域端点上使用旧版 (MLS1) 机器类型。这意味着具有使用 Compute Engine (N1) 机器类型的所有优势和局限性。 举例来说,您可以在地区端点上使用 GPU,但目前无法启用数据流(控制台)日志记录。

    如需使用 Compute Engine (N1) 机器类型,您必须使用地区端点。

  • 区域端点仅支持在线预测和 AI Explanations部署到区域端点的模型不支持批量预测

    AI Platform Prediction 与 AI Platform TrainingAI Platform Vizier 共享 AI Platform Training and Prediction API。请注意,地区端点目前不支持 AI Platform Training。仅 us-central1 端点支持 AI Platform Vizier。

    如需详细了解哪些 API 方法可用于哪些端点,请参阅 API 参考文档

对于任何给定端点上的 Google Cloud 项目而言,AI Platform Prediction 资源名称是唯一的,但可以在不同端点上重复。举例来说,您可以在 europe-west4 端点上创建名为“hello-world”的模型,并在 us-central1 端点创建另一个名为“hello-world”的模型。

当您列出区域端点上的模型时,您只会看到在该端点上创建的模型。同样,当您列出全球端点上的模型时,您只会看到在全球端点上创建的模型。

区域端点与全球端点的区域

当在全球端点上创建模型资源时,您可以为模型指定区域。当您在此模型中创建版本并执行预测时,预测节点会在指定区域中运行。

使用区域端点时,AI Platform Prediction 会在该端点的区域中运行预测节点。不过,这种情况下,AI Platform Prediction 通过在该区域运行所有 AI Platform Prediction 基础架构来提供额外的隔离。

例如,如果您在全球端点上使用 us-east1 区域,则预测节点在 us-east1 中运行。但是,管理您的资源(路由请求;处理模型和版本创建、更新和删除等)的 AI Platform Prediction 基础架构不一定在 us-east1 中运行。另一方面,如果您使用 europe-west4 区域端点,则预测节点和所有 AI Platform Prediction 基础架构都将在 europe-west4 中运行。

使用区域端点

为了使用区域端点,您必须先在区域端点上创建模型。然后在同一端点上执行与该模型相关的所有操作(如创建模型版本和发送预测请求)。

如果您使用的是 Google Cloud 控制台,请确保在创建模型时选中使用区域端点复选框。所有其他 Google Cloud 控制台操作的执行方式都与在全球端点上执行时相同。

如果您使用的是 Google Cloud CLI,请在与模型及其子资源交互的每条命令中,将 --region 标志设为您的端点所在的区域。这包括以下内容:

或者,您可以ai_platform/region 属性设置为特定区域,以确保 gcloud CLI 始终为 AI Platform Prediction 命令使用相应的区域端点,即使您未指定 --region 标志也是如此。(此配置不适用于 gcloud ai-platform operations 命令组中的命令。)

如果您直接与 AI Platform Training 和 Prediction API 交互(例如,通过使用 Python 版 Google API 客户端库),则像向全球端点进行 API 请求那样进行所有 API 请求,但使用区域端点。如需详细了解哪些 API 方法可用于区域端点,请参阅 API 参考文档

以下示例演示如何使用区域端点创建模型,创建版本和发送在线预测请求。要使用这些示例,请将 REGION 替换为区域端点可用的区域之一:

  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • northamerica-northeast1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • asia-east1
  • asia-northeast1
  • asia-southeast1
  • australia-southeast1

创建模型

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,转到创建模型页面,然后选择您的 Google Cloud 项目:

    转到“创建模型”页面

  2. 为您的模型命名,选中使用地区端点复选框,然后从地区下拉列表中选择要使用的端点所在的地区。

  3. 点击创建按钮。

gcloud

运行以下命令:

gcloud ai-platform models create MODEL_NAME \
  --region=REGION

替换命令中的以下占位符:

  • MODEL_NAME:您为模型选择的名称。
  • REGION:您要使用的端点区域。

Python

本示例使用 Python 版 Google API 客户端库。使用前,您必须安装 Python 版 Google API 客户端库,并在开发环境中设置身份验证

运行以下 Python 代码:

from google.api_core.client_options import ClientOptions
from googleapiclient import discovery

endpoint = 'https://REGION-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)

request_body = { 'name': 'MODEL_NAME' }
request = ml.projects().models().create(parent='projects/PROJECT_ID',
    body=request_body)

response = request.execute()
print(response)

替换代码中的以下占位符:

  • REGION:您要使用的端点区域。
  • MODEL_NAME:您为模型选择的名称。
  • PROJECT_ID:您的 Google Cloud 项目的 ID。

详细了解如何创建模型

创建模型版本

此示例假定您已将兼容的模型工件上传到 Cloud Storage。

Google Cloud 控制台

使用您在上一部分中创建的模型,并遵循在 Google Cloud 控制台中创建模型版本的指南操作。

gcloud

此示例假定您已将兼容的模型工件上传到 Cloud Storage。运行以下命令:

gcloud ai-platform versions create VERSION_NAME \
  --region=REGION \
  --model=MODEL_NAME \
  --framework=FRAMEWORK \
  --machine-type=MACHINE_TYPE \
  --origin=MODEL_DIRECTORY \
  --python-version=3.7 \
  --runtime-version=2.11

替换命令中的以下占位符:

  • REGION:您在上一部分中使用的端点所在区域。
  • VERSION_NAME:您为版本选择的名称。
  • MODEL_NAME:您在上一部分中创建的模型的名称。
  • FRAMEWORK:用于创建模型工件的框架。
  • MACHINE_TYPECompute Engine (N1) 机器类型
  • MODEL_DIRECTORY:模型目录的 Cloud Storage URI(以“gs://”开头)。

Python

运行以下 Python 代码:

from google.api_core.client_options import ClientOptions
from googleapiclient import discovery

endpoint = 'https://REGION-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)

request_body = { 'name': 'VERSION_NAME',
    'deploymentUri': 'MODEL_DIRECTORY',
    'runtimeVersion': '2.11',
    'machineType': 'MACHINE_TYPE',
    'framework': 'FRAMEWORK',
    'pythonVersion': '3.7'}
request = ml.projects().models().versions().create(
    parent='projects/PROJECT_ID/models/MODEL_NAME',
    body=request_body)

response = request.execute()
print(response)

替换代码中的以下占位符:

  • REGION:您在上一部分中使用的端点所在区域。
  • VERSION_NAME:您为版本选择的名称。
  • MODEL_DIRECTORY:模型目录的 Cloud Storage URI(以“gs://”开头)。
  • MACHINE_TYPECompute Engine (N1) 机器类型
  • FRAMEWORK:用于创建模型工件的框架。
  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • MODEL_NAME:您在上一部分中创建的模型的名称。

详细了解创建模型版本

发送在线预测请求

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,转到模型页面。

    转到“模型”页面

  2. 地区下拉列表中,选择模型使用的端点所在的地区。点击您在上一部分中创建的模型的名称,以导航到其模型详情页面。

  3. 点击您在上一部分中创建的版本的名称,以导航到其版本详情页面。

  4. 点击测试和使用标签页。输入一个或多个输入数据实例,然后点击测试按钮以发送在线预测请求。

gcloud

此示例假定您已将预测输入保存在本地环境中以换行符分隔的 JSON 文件中。运行以下命令:

gcloud ai-platform predict \
  --region=REGION \
  --model=MODEL_NAME \
  --version=VERSION_NAME \
  --json-request=INPUT_PATH

替换命令中的以下占位符:

  • REGION:您在前几部分中使用的端点所在区域。
  • MODEL_NAME:您在上一部分中创建的模型的名称。
  • VERSION_NAME:您在上一部分中创建的模型版本的名称。
  • INPUT_PATH:本地文件系统上的路径,指向包含预测输入数据的 JSON 文件。

Python

运行以下 Python 代码:

from google.api_core.client_options import ClientOptions
from googleapiclient import discovery

endpoint = 'https://REGION-ml.googleapis.com'
client_options = ClientOptions(api_endpoint=endpoint)
ml = discovery.build('ml', 'v1', client_options=client_options)

request_body = { 'instances': INSTANCES }
request = ml.projects().predict(
    name='projects/PROJECT_ID/models/MODEL_NAME/VERSION_NAME',
    body=request_body)

response = request.execute()
print(response)

替换代码中的以下占位符:

  • REGION:您在前几部分中使用的端点所在区域。
  • INSTANCES预测输入实例的列表。
  • MODEL_NAME:您在上一部分中创建的模型的名称。
  • VERSION_NAME:您在上一部分中创建的版本的名称。

详细了解获取在线预测

后续步骤