Vertex AI 會分配節點來處理線上和批次推論。
將自訂訓練模型或 AutoML 模型部署至 Endpoint
資源,以提供線上推論服務,或要求批次推論時,您可以自訂推論服務用於這些節點的虛擬機器類型。您可以視需要設定推論節點使用 GPU。
機器類型的不同之處:
- 每個節點的虛擬 CPU (vCPU) 數量
- 每個節點的記憶體量
- 定價
選取具備更多運算資源的機器類型,即可提供延遲時間更短的推論服務,或同時處理更多推論要求。
管理費用和供應情形
為協助管理費用或確保 VM 資源可用性,Vertex AI 提供下列功能:
為確保您只支付所需的運算資源費用,建議使用 Vertex AI Inference 自動調度資源功能。詳情請參閱「Scale inference nodes for Vertex AI Inference」。
如要確保推論工作需要 VM 資源時,這些資源可供使用,可以採用 Compute Engine 預訂功能。保留項目可確保您取得 Compute Engine 資源的容量,詳情請參閱「搭配推論使用預留項目」。
如要降低執行推論工作的費用,可以使用 Spot VM。Spot VM 是虛擬機器 (VM) 執行個體,屬於 Compute Engine 的剩餘容量。Spot VM 的折扣幅度相當可觀,但 Compute Engine 可能會隨時搶占容量,預先停止或刪除 Spot VM。詳情請參閱「搭配推論使用 Spot VM」。
指定運算資源的位置
線上推論
如要使用自訂訓練模型或 AutoML 表格模型提供線上推論服務,將 Model
資源部署為 DeployedModel
至 Endpoint
時,必須指定機器類型。如果是其他類型的 AutoML 模型,Vertex AI 會自動設定機器類型。
在 DeployedModel
的 dedicatedResources.machineSpec
欄位中,指定機器類型 (和選用的 GPU 設定)。
瞭解如何部署各模型類型:
批次推論
如要從自訂訓練模型或 AutoML 表格模型取得批次推論結果,您必須在建立 BatchPredictionJob
資源時指定機器類型。在 BatchPredictionJob
的 dedicatedResources.machineSpec
欄位中,指定機器類型 (以及選用的 GPU 設定)。
機器類型
下表比較可從自訂訓練模型和 AutoML 表格型模型提供推論服務的機器類型:
E2 系列
名稱 | vCPU | 記憶體 (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 系列
名稱 | 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 |
N2 系列
名稱 | vCPU | 記憶體 (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 系列
名稱 | vCPU | 記憶體 (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 系列
名稱 | vCPU | 記憶體 (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 系列
名稱 | vCPU | 記憶體 (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 系列
名稱 | vCPU | 記憶體 (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 系列
名稱 | vCPU | 記憶體 (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 系列
名稱 | vCPU | 記憶體 (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 系列
名稱 | vCPU | 記憶體 (GB) | GPU (NVIDIA GB200) |
---|---|---|---|
a4x-highgpu-4g |
140 | 884 | 4 |
G2 系列
名稱 | vCPU | 記憶體 (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 的每小時費用通常較高,但可提供較低的延遲時間,整體費用也較低。
批次推論
詳情請參閱「選擇機器類型和副本數量」。
選用 GPU 加速器
部分設定 (例如 A2 系列和 G2 系列) 內建固定數量的 GPU。
A4X (a4x-highgpu-4g
) 系列的副本數量下限為 18。這部機器是以機架為單位購買,最少有 18 部 VM。
其他設定 (例如 N1 系列) 則可讓您選擇新增 GPU,加快每個推論節點的速度。
不支援在部署 AutoML 模型時指定 GPU。如要新增選用的 GPU 加速器,必須符合下列幾項規定:
- 只有在
Model
資源是以 TensorFlow SavedModel 為基礎,或是使用自訂容器 (專為充分運用 GPU 而設計) 時,才能使用 GPU。您無法將 GPU 用於 scikit-learn 或 XGBoost 模型。 - 各類 GPU 的可用性取決於模型使用的區域。瞭解哪些區域提供哪些類型的 GPU。
- 您只能在
DeployedModel
資源或BatchPredictionJob
上使用一種 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 會產生額外費用。
在單一 VM 上共同排程多個副本
如要盡量降低部署成本,您可以在配備多個 GPU 硬體加速器的單一 VM 上,部署相同模型的多個副本,例如 a3-highgpu-8g
VM,這類 VM 搭載八個 NVIDIA H100 GPU。每個模型副本可指派給一或多個 GPU。
如果是較小的工作負載,您也可以使用 NVIDIA 多執行個體 GPU (MIG),將單一 GPU 分割成多個較小的執行個體。這項功能可讓您在 GPU 子層級指派資源,盡量提高每個加速器的使用率。如要進一步瞭解多例項 GPU,請參閱 NVIDIA 多例項 GPU 使用者指南。
這兩項功能都能提高資源使用效率,並為服務工作負載帶來更高的成本效益。
限制
這項功能有以下限制:
- 所有共同排程的模型副本都必須是相同模型版本。
- 不支援使用部署項目資源集區在部署作業之間共用資源。
支援的機器類型
支援的機器類型如下。請注意,如果機器類型只有一個 GPU,則不需要共同排程。
機型 | Coschedule | Coschedule + 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
指令,在 VM 上部署共同排程的模型副本:
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_NAME:
DeployedModel
的名稱。您也可以使用Model
的顯示名稱做為DeployedModel
。 - MIN_REPLICA_COUNT:此部署作業的節點數量下限。節點數量可視推論負載需求增加或減少,最多可達節點數量上限,最少則不得低於這個數量。
- MAX_REPLICA_COUNT:此部署作業的節點數量上限。節點數量可視推論負載需求增減,最多可達這個節點數量,且絕不會少於節點數量下限。。每 2 個要部署的副本都需要一個 VM。
- MACHINE_TYPE:用於此部署作業的 VM 類型。必須來自加速器最佳化系列。
- 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_NAME:
DeployedModel
的名稱。您也可以使用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
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
使用下列 Python 指令,在 VM 上部署共同排定的模型副本。
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:用於此部署作業的 VM 類型。必須來自加速器最佳化系列。在預覽版中,僅支援
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 之間的數字。
監控 VM 使用情況
請按照下列操作說明,在 Metrics Explorer 中監控已部署副本的實際機器數量。
前往 Google Cloud 控制台的「Metrics Explorer」頁面。
選取要查看指標的專案。
在「指標」下拉式選單中,按一下「選取指標」。
在「依據資源或指標名稱篩選」搜尋列中,輸入
Vertex AI Endpoint
。選取「Vertex AI 端點 > 預測」指標類別。在「有效指標」下方,選取「機器數量」。
按一下「套用」。
帳單
系統會根據使用的 VM 數量計費,而非 GPU 數量。 您可以使用 Metrics Explorer 監控 VM 使用情況。
高可用性
由於多個副本會共用同一個 VM 進行排程,因此在副本數量超過單一 VM 節點之前,Vertex AI Inference 無法將部署作業分散到多個 VM,進而分散到多個可用區。為確保高可用性,Google 建議您至少在兩個節點 (VM) 上部署。