設定用於推論的運算資源

Agent Platform 會分配節點來處理線上和批次推論。 將自訂訓練模型或 AutoML 模型部署至 Endpoint 資源,以提供線上推論服務,或要求批次推論時,您可以自訂推論服務用於這些節點的虛擬機器類型。您可以視需要設定推論節點使用 GPU。

機器類型的不同之處:

  • 每個節點的虛擬 CPU (vCPU) 數量
  • 每個節點的記憶體量
  • 定價

選取具備更多運算資源的機型,即可提供延遲時間更短的推論服務,或同時處理更多推論要求。

管理費用和供應情形

為協助管理費用或確保 VM 資源可用性,Agent Platform 提供下列功能:

  • 為確保您只支付所需的運算資源費用,建議使用 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 模型,Agent Platform 會自動設定機器類型。

在 DeployedModel 的 dedicatedResources.machineSpec 欄位中,指定機型 (和選用的 GPU 設定)。

瞭解如何部署各模型類型:

批次推論

如要從自訂訓練模型或 AutoML 表格模型取得批次推論結果,您必須在建立 BatchPredictionJob 資源時指定機型。在 BatchPredictionJob 的 dedicatedResources.machineSpec 欄位中,指定機型 (以及選用的 GPU 設定)。

機型

下表比較可用的機器類型,方便您從自訂訓練模型和 AutoML 表格模型提供推論結果。

如要瞭解 TPU 加速器類型,請參閱「將模型部署至 Cloud TPU VM」。

機器類型:CPU

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

機器類型:GPU

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)

A4 系列

名稱 vCPU 記憶體 (GB) GPU (NVIDIA B200)
a4-highgpu-8g 224 3,968 8

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

G4 Series

名稱 vCPU 記憶體 (GB) GPU (NVIDIA RTX PRO 6000)
g4-standard-48 48 180 1
g4-standard-96 96 360 2
g4-standard-192 192 720 4
g4-standard-384 384 1440 8

瞭解各機器類型的定價。如要進一步瞭解這些機器類型的詳細規格,請參閱 Compute Engine 說明文件中的機器類型。

尋找理想的機型

以下指南可協助您判斷最適合線上或批次推論工作負載的機型。

線上推論

如要找出適合您用途的機型,建議您在多個機型上載入模型,並測量延遲時間、成本、並行和處理量等特性。

其中一種做法是在多種機器類型上執行範例筆記本,找出理想的機器類型,然後比較結果,找出最適合您的機器類型。

Gemini Enterprise Agent Platform 會在每個副本上預留約 1 個 vCPU,用於執行系統程序。也就是說,在單一核心機型上執行筆記本,與使用 2 核心機型提供推論服務的效能相當。

考量推論成本時,請記住,雖然較大的機器成本較高,但由於服務相同工作負載所需的副本較少,因此可以降低整體成本。這點在 GPU 上尤其明顯,GPU 的每小時費用通常較高,但可提供較低的延遲時間,整體費用也較低。

批次推論

詳情請參閱「選擇機型和副本數量」。

選用 GPU 加速器

部分設定 (例如 A2 系列和 G2 系列) 內建固定數量的 GPU。

A4X (a4x-highgpu-4g) 系列的副本數量下限為 18。這部機器是以機架為單位購買,最少有 18 部 VM。

其他設定 (例如 N1 系列) 則可讓您選擇新增 GPU,加速每個推論節點。不過,在 me-west1 區域,只有搭配 NVIDIA Tesla T4 GPU 加速器時,才支援 N1 系列機型。me-west1 不支援使用僅含 CPU 的 N1 機型。

如要新增選用的 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 是 是
g4-standard-48 不適用 是
g4-standard-96 是 是
g4-standard-192 是 是
g4-standard-384 是 是

必要條件

使用這項功能前,請先參閱「使用 gcloud CLI 或 Agent Platform 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:您使用 Agent Platform 的區域。
  • MODEL_ID:要部署的模型 ID。
  • DEPLOYED_MODEL_NAME:DeployedModel 的名稱。您也可以使用 Model 的顯示名稱做為 DeployedModel。
  • MIN_REPLICA_COUNT:這個部署作業的節點數量下限。您可以視推論負載需求增減節點數量,但不得超過節點數量上限,也不得少於這個數量。
  • MAX_REPLICA_COUNT:此部署作業的節點數量上限。 節點數量可視推論負載需求增減,最多可達這個節點數量,且不得少於節點數量下限。。每部署 2 個副本,就需要 1 個 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:您使用 Agent Platform 的區域。
  • 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

如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。 詳情請參閱 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 中監控已部署副本的實際機器數量。

  1. 前往 Google Cloud 控制台的「Metrics Explorer」頁面。

    前往 Metrics Explorer

  2. 選取要查看指標的專案。

  3. 在「指標」下拉式選單中,按一下「選取指標」。

  4. 在「依據資源或指標名稱篩選」搜尋列中,輸入 Gemini Enterprise Agent Platform Endpoint。

  5. 選取「Agent Platform Endpoint」>「Prediction」指標類別。在「有效指標」下方,選取「機器數量」。

  6. 按一下「套用」。

帳單

系統會根據使用的 VM 數量計費,而非 GPU 數量。 您可以使用 Metrics Explorer 監控 VM 使用情況。

高可用性

由於多個副本會共用同一個 VM,因此在副本數量超過單一 VM 節點之前,Vertex AI Inference 無法將部署作業分散到多個 VM 和多個可用區。為確保高可用性,Google 建議您至少在兩個節點 (VM) 上部署。

後續步驟