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) 上部署。