Vertex AI 会分配节点以处理在线预测和批量预测。当您将自定义模型或 AutoML 表格模型部署到 Endpoint
资源以执行在线预测或请求批量预测时,您可以自定义预测服务用于这些节点的虚拟机类型。您还可以选择配置预测节点以使用 GPU。
机器类型在几个方面有差异:
- 每个节点的虚拟 CPU (vCPU) 数量
- 每个节点的内存量
- 价格
通过选择具有更多计算资源的机器类型,您可以缩短预测的延迟时间或同时处理更多预测请求。
指定计算资源的位置
如果您想使用自定义训练的模型或 AutoML 表格模型执行在线预测,则必须在将 Model
资源作为 DeployedModel
部署到 Endpoint
时指定机器类型。对于其他类型的 AutoML 模型,Vertex AI 会自动配置机器类型。
在 DeployedModel
的 dedicatedResources.machineSpec
字段中指定机器类型(以及可选的 GPU 配置)。
了解如何部署每种模型类型:
如果要从自定义模型或 AutoML 表格模型获取批量预测,则必须在创建 BatchPredictionJob
资源时指定机器类型。在 BatchPredictionJob
的 dedicatedResources.machineSpec
字段中指定机器类型(以及可选的 GPU 配置)。
机器类型
下表比较了可用于在自定义训练的模型和 AutoML 表格模型上执行预测的机器类型:
姓名 | vCPU | 内存 (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 |
了解每种机器类型的价格。如需详细了解这些机器类型的详细规范,请参阅有关机器类型的 Compute Engine 文档。
GPU
对于某些配置,您可以选择添加 GPU 以加快每个预测节点的速度。如需使用 GPU,您必须考虑以下几个要求:
- 只有当您的
Model
资源基于 TensorFlow SavedModel,或者当您使用旨在充分利用 GPU 的自定义容器时,您才能使用 GPU。您不能将 GPU 用于 scikit-learn 或 XGBoost 模型。 - 每种 GPU 类型的可用性因模型使用的区域而异。了解哪些区域提供了哪些类型的 GPU。
- 您只能为
DeployedModel
资源或BatchPredictionJob
使用一种 GPU 类型,您可以添加的 GPU 数量有一定限制,具体取决于您在使用的机器类型。下表介绍了这些限制。
下表展示了可用于在线预测的 GPU 以及可用于每种 Compute Engine 机器类型的每种 GPU 类型的数量:
每种机器类型的有效 GPU 数量 | |||||
---|---|---|---|---|---|
机器类型 | NVIDIA Tesla K80 | NVIDIA Tesla P100 | NVIDIA Tesla V100 | NVIDIA Tesla P4 | NVIDIA Tesla T4 |
n1-standard-2 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-standard-4 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-standard-8 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-standard-16 |
2、4、8 | 1、2、4 | 2、4、8 | 1、2、4 | 1、2、4 |
n1-standard-32 |
4、8 | 2、4 | 4、8 | 2、4 | 2、4 |
n1-highmem-2 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-highmem-4 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-highmem-8 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-highmem-16 |
2、4、8 | 1、2、4 | 2、4、8 | 1、2、4 | 1、2、4 |
n1-highmem-32 |
4、8 | 2、4 | 4、8 | 2、4 | 2、4 |
n1-highcpu-2 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-highcpu-4 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-highcpu-8 |
1、2、4、8 | 1、2、4 | 1、2、4、8 | 1、2、4 | 1、2、4 |
n1-highcpu-16 |
2、4、8 | 1、2、4 | 2、4、8 | 1、2、4 | 1、2、4 |
n1-highcpu-32 |
4、8 | 2、4 | 4、8 | 2、4 | 2、4 |
GPU 为可选配置,会产生额外费用。
扩缩
将 Model
部署为 DeployedModel
或创建 BatchPredictionJob
时,您可以将预测节点配置为自动扩缩。为此,请将 dedicatedResources.maxReplicaCount
设置为大于 dedicatedResources.minReplicaCount
(对于 DeployedModel
)或 dedicatedResources.startingReplicaCount
(对于 BatchPredictionJob
)的值。
配置 DeployedModel
时,您必须将 dedicatedResources.minReplicaCount
设置为至少 1。换句话说,您不能将 DeployedModel
配置为在未使用时缩减为 0 个预测节点。
如果您使用自动扩缩配置,则当现有节点的 CPU 使用率变高时,Vertex AI 会自动扩缩 DeployedModel
或 BatchPredictionJob
以使用更多预测节点。即使您已将预测节点配置为使用 GPU,Vertex AI 也会根据 CPU 使用率扩缩节点;因此,如果预测吞吐量导致高 GPU 使用率,但未导致高 CPU 使用率,节点可能无法按预期扩缩。