配置用于推理的计算资源

Vertex AI 会分配节点以处理在线预测和批量推理。在将自定义训练模型或 AutoML 模型部署到 Endpoint 资源来进行在线推理或在请求批量推理时,可以自定义推理服务要在这些节点中使用的虚拟机类型。您还可以选择配置推理节点以使用 GPU。

机器类型在几个方面有差异:

  • 每个节点的虚拟 CPU (vCPU) 数量
  • 每个节点的内存量
  • 价格

通过选择具有更多计算资源的机器类型,您可以缩短执行推理的延迟时间,也可以同时处理更多推理请求。

管理费用和可用性

为帮助管理费用或确保虚拟机资源的可用性,Vertex AI 提供了以下功能:

  • 为确保虚拟机资源在推理作业需要时可用,您可以使用 Compute Engine 预留。预留为获取 Compute Engine 资源的容量提供了较高的保障。如需了解详情,请参阅将预留与推理搭配使用

  • 如需降低运行推理作业的费用,您可以使用 Spot 虚拟机。Spot 虚拟机是过剩的 Compute Engine 容量的虚拟机 (VM) 实例。Spot 虚拟机的折扣力度很大,但 Compute Engine 可能会提前停止或删除 Spot 虚拟机来随时收回容量。如需了解详情,请参阅将 Spot 虚拟机与推理搭配使用

指定计算资源的位置

在线推理

如果您想使用自定义训练的模型或 AutoML 表格模型执行在线推理,则必须在将 Model 资源作为 DeployedModel 部署到 Endpoint 时指定机器类型。对于其他类型的 AutoML 模型,Vertex AI 会自动配置机器类型。

DeployedModeldedicatedResources.machineSpec 字段中指定机器类型(以及可选的 GPU 配置)。

了解如何部署每种模型类型:

批量推理

如果要从自定义模型或 AutoML 表格模型获取批量推理,则必须在创建 BatchPredictionJob 资源时指定机器类型。在 BatchPredictionJobdedicatedResources.machineSpec 字段中指定机器类型(以及可选的 GPU 配置)。

机器类型

下表比较了可用于在自定义训练的模型和 AutoML 表格模型上执行推理的机器类型:

E2 系列

名称 vCPUs 内存 (GB)
e2-standard-2 2 8
e2-standard-4 4 16
e2-standard-8 8 32
e2-standard-16 16 64
e2-standard-32 32 128
e2-highmem-2 2 16
e2-highmem-4 4 32
e2-highmem-8 8 64
e2-highmem-16 16 128
e2-highcpu-2 2 2
e2-highcpu-4 4 4
e2-highcpu-8 8 8
e2-highcpu-16 16 16
e2-highcpu-32 32 32

N1 系列

名称 vCPUs 内存 (GB)
n1-standard-2 2 7.5
n1-standard-4 4 15
n1-standard-8 8 30
n1-standard-16 16 60
n1-standard-32 32 120
n1-highmem-2 2 13
n1-highmem-4 4 26
n1-highmem-8 8 52
n1-highmem-16 16 104
n1-highmem-32 32 208
n1-highcpu-4 4 3.6
n1-highcpu-8 8 7.2
n1-highcpu-16 16 14.4
n1-highcpu-32 32 28.8

N2 系列

名称 vCPUs 内存 (GB)
n2-standard-2 2 8
n2-standard-4 4 16
n2-standard-8 8 32
n2-standard-16 16 64
n2-standard-32 32 128
n2-standard-48 48 192
n2-standard-64 64 256
n2-standard-80 80 320
n2-standard-96 96 384
n2-standard-128 128 512
n2-highmem-2 2 16
n2-highmem-4 4 32
n2-highmem-8 8 64
n2-highmem-16 16 128
n2-highmem-32 32 256
n2-highmem-48 48 384
n2-highmem-64 64 512
n2-highmem-80 80 640
n2-highmem-96 96 768
n2-highmem-128 128 864
n2-highcpu-2 2 2
n2-highcpu-4 4 4
n2-highcpu-8 8 8
n2-highcpu-16 16 16
n2-highcpu-32 32 32
n2-highcpu-48 48 48
n2-highcpu-64 64 64
n2-highcpu-80 80 80
n2-highcpu-96 96 96

N2D 系列

名称 vCPUs 内存 (GB)
n2d-standard-2 2 8
n2d-standard-4 4 16
n2d-standard-8 8 32
n2d-standard-16 16 64
n2d-standard-32 32 128
n2d-standard-48 48 192
n2d-standard-64 64 256
n2d-standard-80 80 320
n2d-standard-96 96 384
n2d-standard-128 128 512
n2d-standard-224 224 896
n2d-highmem-2 2 16
n2d-highmem-4 4 32
n2d-highmem-8 8 64
n2d-highmem-16 16 128
n2d-highmem-32 32 256
n2d-highmem-48 48 384
n2d-highmem-64 64 512
n2d-highmem-80 80 640
n2d-highmem-96 96 768
n2d-highcpu-2 2 2
n2d-highcpu-4 4 4
n2d-highcpu-8 8 8
n2d-highcpu-16 16 16
n2d-highcpu-32 32 32
n2d-highcpu-48 48 48
n2d-highcpu-64 64 64
n2d-highcpu-80 80 80
n2d-highcpu-96 96 96
n2d-highcpu-128 128 128
n2d-highcpu-224 224 224

C2 系列

名称 vCPUs 内存 (GB)
c2-standard-4 4 16
c2-standard-8 8 32
c2-standard-16 16 64
c2-standard-30 30 120
c2-standard-60 60 240

C2D 系列

名称 vCPUs 内存 (GB)
c2d-standard-2 2 8
c2d-standard-4 4 16
c2d-standard-8 8 32
c2d-standard-16 16 64
c2d-standard-32 32 128
c2d-standard-56 56 224
c2d-standard-112 112 448
c2d-highcpu-2 2 4
c2d-highcpu-4 4 8
c2d-highcpu-8 8 16
c2d-highcpu-16 16 32
c2d-highcpu-32 32 64
c2d-highcpu-56 56 112
c2d-highcpu-112 112 224
c2d-highmem-2 2 16
c2d-highmem-4 4 32
c2d-highmem-8 8 64
c2d-highmem-16 16 128
c2d-highmem-32 32 256
c2d-highmem-56 56 448
c2d-highmem-112 112 896

C3 系列

名称 vCPUs 内存 (GB)
c3-highcpu-4 4 8
c3-highcpu-8 8 16
c3-highcpu-22 22 44
c3-highcpu-44 44 88
c3-highcpu-88 88 176
c3-highcpu-176 176 352

A2 系列

名称 vCPUs 内存 (GB) GPU (NVIDIA A100)
a2-highgpu-1g 12 85 1 (A100 40GB)
a2-highgpu-2g 24 170 2 (A100 40GB)
a2-highgpu-4g 48 340 4 (A100 40GB)
a2-highgpu-8g 96 680 8 (A100 40GB)
a2-megagpu-16g 96 1360 16 (A100 40GB)
a2-ultragpu-1g 12 170 1 (A100 80GB)
a2-ultragpu-2g 24 340 2 (A100 80GB)
a2-ultragpu-4g 48 680 4 (A100 80GB)
a2-ultragpu-8g 96 1360 8 (A100 80GB)

A3 系列

名称 vCPUs 内存 (GB) GPU(NVIDIA H100 或 H200
a3-highgpu-1g 26 234 1 (H100 80GB)
a3-highgpu-2g 52 468 2 (H100 80GB)
a3-highgpu-4g 104 936 4 (H100 80GB)
a3-highgpu-8g 208 1872 8 (H100 80GB)
a3-edgegpu-8g 208 1872 8 (H100 80GB)
a3-ultragpu-8g 224 2952 8 (H200 141GB)

A4X 系列

名称 vCPUs 内存 (GB) GPU (NVIDIA GB200)
a4x-highgpu-4g 140 884 4

G2 系列

名称 vCPUs 内存 (GB) GPU (NVIDIA L4)
g2-standard-4 4 16 1
g2-standard-8 8 32 1
g2-standard-12 12 48 1
g2-standard-16 16 64 1
g2-standard-24 24 96 2
g2-standard-32 32 128 1
g2-standard-48 48 192 4
g2-standard-96 96 384 8

了解每种机器类型的价格。如需详细了解这些机器类型的详细规范,请参阅有关机器类型的 Compute Engine 文档

找到理想的机器类型

在线推理

如需找到适合您的应用场景的理想机器类型,我们建议您在多种机器类型上加载模型并衡量延迟时间、费用、并发和吞吐量等特征。

一种方法是在多种机器类型上运行此笔记本,并比较结果以找到最适合您的机器类型。

Vertex AI 会在每个副本上预留大约 1 个 vCPU 来运行系统进程。这意味着在单核机器类型上运行笔记本与使用 2 核机器类型执行推理相当。

在考虑推理费用时,请注意,虽然较大的机器费用较高,但它们可以降低总费用,因为处理相同的工作负载需要较少的副本。这对于 GPU 来说尤其明显,因为每小时的费用往往更高,但两者都可以降低延迟和总费用。

批量推理

如需了解详情,请参阅选择机器类型和副本数量

可选 GPU 加速器

某些配置(例如 A2 系列G2 系列)内置了固定数量的 GPU。

A4X (a4x-highgpu-4g) 系列需要至少 18 个副本。这种机器按机架购买,最少包含 18 个虚拟机。

其他配置(如 N1 系列)允许您选择添加 GPU 以加快每个推理节点的速度。

如需添加可选的 GPU 加速器,您必须考虑以下几个要求:

下表展示了可用于在线推理的可选 GPU 以及可用于每种 Compute Engine 机器类型的每种 GPU 类型的数量:

每种机器类型的有效 GPU 数量
机器类型 NVIDIA Tesla P100 NVIDIA Tesla V100 NVIDIA Tesla P4 NVIDIA Tesla T4
n1-standard-2 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-standard-4 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-standard-8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-standard-16 1、2、4 2、4、8 1、2、4 1、2、4
n1-standard-32 2、4 4、8 2、4 2、4
n1-highmem-2 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highmem-4 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highmem-8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highmem-16 1、2、4 2、4、8 1、2、4 1、2、4
n1-highmem-32 2、4 4、8 2、4 2、4
n1-highcpu-2 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highcpu-4 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highcpu-8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highcpu-16 1、2、4 2、4、8 1、2、4 1、2、4
n1-highcpu-32 2、4 4、8 2、4 2、4

可选 GPU 会产生额外费用

在单个虚拟机上共同调度多个副本

为了优化部署成本,您可以将同一模型的多个副本部署到配备多个 GPU 硬件加速器的单个虚拟机上,例如具有八个 NVIDIA H100 GPU 的 a3-highgpu-8g 虚拟机。每个模型副本都可以分配给一个或多个 GPU。

对于较小的工作负载,您还可以使用 NVIDIA 多实例 GPU (MIG) 将单个 GPU 划分为多个较小的实例。这样,您就可以在子 GPU 级别分配资源,从而最大限度地提高每个加速器的利用率。如需详细了解多实例 GPU,请参阅 NVIDIA 多实例 GPU 用户指南

这两项功能旨在提高资源利用效率,并为您的服务工作负载带来更高的成本效益。

限制

此功能存在以下限制:

  • 所有共同调度模型副本必须是同一模型版本。
  • 不支持使用部署资源池跨部署共享资源。

支持的机器类型

支持以下机器类型。请注意,对于仅有一个 GPU 的机器类型,无需进行共同调度。

机器类型 共同调度 共同调度 + MIG
a2-highgpu-1g 不适用
a2-highgpu-2g
a2-highgpu-4g
a2-highgpu-8g
a2-highgpu-16g
a2-ultragpu-1g 不适用
a2-ultragpu-2g
a2-ultragpu-4g
a2-ultragpu-8g
a3-edgegpu-8g
a3-highgpu-1g 不适用
a3-highgpu-2g
a3-highgpu-4g
a3-highgpu-8g
a3-megagpu-8g
a3-ultragpu-8g
a4-highgpu-8g
a4x-highgpu-8g

前提条件

在使用此功能之前,请参阅使用 gcloud CLI 或 Vertex AI API 部署模型

部署模型副本

以下示例演示了如何部署共同调度模型副本。

gcloud

使用以下 gcloud 命令在虚拟机上部署共同调度模型副本:

gcloud ai endpoints deploy-model ENDPOINT_ID \
  --region=LOCATION_ID \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --min-replica-count=MIN_REPLICA_COUNT \
  --max-replica-count=MAX_REPLICA_COUNT \
  --machine-type=MACHINE_TYPE \
  --accelerator=type=ACC_TYPE,count=ACC_COUNT \
  --traffic-split=0=100

替换以下内容:

  • ENDPOINT_ID:端点的 ID。
  • LOCATION_ID:您在其中使用 Vertex AI 的区域。
  • MODEL_ID:要部署的模型的模型 ID。
  • DEPLOYED_MODEL_NAMEDeployedModel 的名称。您还可以将 Model 的显示名用于 DeployedModel
  • MIN_REPLICA_COUNT:此部署的最小节点数。 节点数可根据推理负载的需要而增加或减少,直至达到节点数上限并且绝不会少于此节点数。
  • MAX_REPLICA_COUNT:此部署的节点数上限。 节点数可根据推理负载的需要而增加或减少,直至达到此节点数并且绝不会少于节点数下限。。每部署 2 个副本需要 1 个虚拟机。
  • MACHINE_TYPE:要用于此部署的虚拟机类型。必须属于加速器优化机器系列。
  • ACC_TYPE:GPU 加速器类型。应与 MACHINE_TYPE 相对应。对于 a3-highgpu-8g,请使用 nvidia-h100-80gb
  • ACC_COUNT:每个副本可使用的 GPU 数量。必须至少为 1,且不得超过机器中的 GPU 总数。

REST

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

  • PROJECT_NUMBER:项目编号。
  • LOCATION_ID:您在其中使用 Vertex AI 的区域。
  • MODEL_ID:要部署的模型的 ID。
  • DEPLOYED_MODEL_NAMEDeployedModel 的名称。您还可以将 Model 的显示名用于 DeployedModel
  • MACHINE_TYPE:可选。用于此部署的每个节点的机器资源。其默认设置为 n1-standard-2详细了解机器类型。
  • ACC_TYPE:GPU 加速器类型。应与“GPU_PARTITION_SIZE”相对应。
  • GPU_PARTITION_SIZE:GPU 分区大小。例如,“1g.10gb”。
  • ACC_COUNT:每个副本可使用的 GPU 数量。必须至少为 1,且不得超过机器中的 GPU 总数。
  • MIN_REPLICA_COUNT:此部署的最小节点数。 节点数可根据推理负载的需要而增加或减少,直至达到节点数上限并且绝不会少于此节点数。
  • MAX_REPLICA_COUNT:此部署的节点数上限。 节点数可根据推理负载的需要而增加或减少,直至达到此节点数并且绝不会少于节点数下限。

HTTP 方法和网址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel

请求 JSON 正文:

{
  "deployedModel": {
    "model": "projects/PROJECT_NUMBER/locations/LOCATION_ID/models/MODEL_ID",
    "displayName": "DEPLOYED_MODEL_NAME",
    "dedicatedResources": {
      "machineSpec": {
        "machineType": "MACHINE_TYPE",
        "acceleratorType": "ACC_TYPE",
        "gpuPartitionSize": "GPU_PARTITION_SIZE",
        "acceleratorCount": "ACC_COUNT""
      },
      "minReplicaCount": MIN_REPLICA_COUNT,
      "maxReplicaCount": MAX_REPLICA_COUNT,
      "autoscalingMetricSpecs": [
        {
          "metricName": "aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle",
          "target": 70
        }
      ]
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该会收到一个成功的状态代码 (2xx) 和一个空响应。

Python

如需了解如何安装或更新 Vertex AI SDK for Python,请参阅安装 Vertex AI SDK for Python。 如需了解详情,请参阅 Python API 参考文档

使用以下 Python 命令在虚拟机上部署共同调度模型副本。

endpoint.deploy(
    model=<var>MODEL</var>,
    machine_type=MACHINE_TYPE,
    min_replica_count=MIN_REPLICA_COUNT,
    max_replica_count=MAX_REPLICA_COUNT,
    accelerator_type=ACC_TYPE,
    gpu_partition_size=GPU_PARTITION_SIZE,
    accelerator_count=ACC_COUNT
)

替换以下内容:

  • MODEL:由以下 API 调用返回的模型对象:

    model = aiplatform.Model(model_name=model_name)
    
  • MACHINE_TYPE:要用于此部署的虚拟机类型。必须属于加速器优化机器系列。在预览版中,仅支持 a3-highgpu-8g

  • MIN_REPLICA_COUNT:此部署的最小节点数。 节点数可根据推理负载的需要而增加或减少,直至达到节点数上限并且绝不会少于此节点数。

  • MAX_REPLICA_COUNT:此部署的节点数上限。 节点数可根据推理负载的需要而增加或减少,直至达到此节点数并且绝不会少于节点数下限。

  • ACC_TYPE:GPU 加速器类型。应与 GPU_PARTITION_SIZE 相对应。

  • GPU_PARTITION_SIZE:GPU 分区大小。例如 "1g.10gb"。如需查看每种 GPU 类型支持的分区大小的完整列表,请参阅多实例 GPU 分区

  • ACC_COUNT:每个副本可使用的 GPU 数量。必须至少为 1,且不得超过机器中的 GPU 总数。 对于 a3-highgpu-8g,请指定介于 1 到 8 之间的值。

监控虚拟机使用情况

请按照以下说明在 Metrics Explorer 中监控已部署副本的实际机器数量。

  1. 在 Google Cloud 控制台中,前往 Metrics Explorer 页面。

    转到 Metrics Explorer

  2. 选择要查看指标的项目。

  3. 指标下拉菜单中,点击选择指标

  4. 按资源或指标名称过滤搜索栏中,输入 Vertex AI Endpoint

  5. 选择 Vertex AI 端点 > 预测指标类别。在活跃指标下,选择机器数量

  6. 点击应用

结算

结算基于所使用的虚拟机数量,而不是 GPU 数量。您可以使用 Metrics Explorer 监控虚拟机用量

高可用性

由于多个副本在同一虚拟机上进行共同调度,因此在副本数超过单个虚拟机节点可容纳的数量之前,Vertex AI Inference 无法将部署分布到多个虚拟机和多个可用区。为了实现高可用性,Google 建议您至少在两个节点(虚拟机)上进行部署。

后续步骤