AI 預先訓練推論 GKE 叢集和工作負載

如要建立 AI 應用程式,請先佈建安全且私有的 Google Kubernetes Engine (GKE) 叢集,並針對 AI 工作負載進行最佳化,然後使用 Helm 圖表部署工作負載。本指南將說明下列範本,您可以自訂這些範本來部署 AI 應用程式:

  • AI 預先訓練的推論 GKE 叢集:建立高效能模型服務所需的基礎架構。這個範本會設定經過最佳化調整的 AI 推論專用安全私人 GKE 叢集。

  • AI 預先訓練的推論 GKE 工作負載 (預先發布版):部署包含 AI 工作負載設定的 Helm 圖表。使用 Helm 圖表,透過 vLLM 服務引擎部署預先訓練的 Gemma 模型。這項工作負載已設定為有效率地要求 GPU 資源,並使用 Horizontal Pod Autoscaler (HPA) 根據 GPU 快取用量進行擴充。

舉例來說,您可以部署叢集和工作負載範本,滿足下列業務需求:

範例 業務需求 實作
即時影片分析 某家安全公司需要處理數百部攝影機的影片串流,即時偵測異常狀況或特定物件。 在啟用 GPU 的節點集區中部署影片處理模型。GPU 可處理並行影片串流的高輸送量和低延遲需求。
專門文件處理 保險公司每天會收到數千份理賠申請表,這些表單的版面配置和手寫字體各不相同,因此需要自動擷取資訊。 使用 GKE 叢集代管自訂模型,並確保資料在處理期間不會離開安全環境。
高用量推薦引擎 電子商務平台需要在節慶購物旺季期間,為使用者提供個人化產品推薦內容。 使用 Google Kubernetes Engine Gateway API,將大量使用者流量轉送至建議模型。Gateway API 可因應突發的流量高峰,不會造成延遲時間變長。

架構

下圖顯示範本中的元件和連線:

設計畫布中連結至節點集區的叢集

以下說明這個範本中的元件設定:

  • GKE Standard 叢集:安全且私人叢集,可執行 AI 工作負載。

    下表說明這個範本中的叢集設定:

    設定 目的
    node_locations 設為 ["us-central1-a", "us-central1-b", "us-central1-c"] 將叢集節點分散到 us-central1 區域的三個可用區,確保高可用性和彈性。
    enable_intranode_visibility 設為 true 在虛擬私有雲流量記錄中,掌握同一節點的 Pod 對 Pod 流量情況。這項資訊有助於進行網路監控、疑難排解和安全性分析。
    gateway_api_config」已透過「{"channel":"CHANNEL_STANDARD"}」啟用。 GKE 推論閘道 API 可協助您管理 Kubernetes 服務的連入流量。您可以使用這個 API 設定精細的路由、進階負載平衡和集中式政策附件。
    private_cluster_config.enable_private_endpoint已設為 falseprivate_cluster_config.enable_private_nodestruecontrol_plane_endpoints_config.dns_endpoint_config.allow_external_traffic目前設為 true 確保執行 AI 模型的節點具有私人 IP 位址,將節點與公開網際網路隔離開來。GKE 控制層已設定為可公開存取,方便您在虛擬私有雲 (VPC) 網路外管理叢集。
    release_channel 設為 {"channel":"REGULAR"} 確保 GKE 叢集收到穩定且可預測的更新,在全新功能和可靠性之間取得平衡。
  • GKE 節點集區:執行應用程式容器的工作站節點群組。

    下表說明這個範本中的節點集區設定:

    設定 目的
    autoscaling.min_node_count已設為 0autoscaling.max_node_count 設為 3 (預設為 100)。 如果沒有執行 AI 工作負載,節點集區可以完全縮減,進而降低閒置期間的成本。設定上限有助於控管費用和資源用量。
    系統會新增 node_config.guest_accelerator 參數。gpu_driver_installation_config.gpu_driver_version:已設為 "LATEST"。「gpu_sharing_config」已啟用「TIME_SHARING」。max_shared_clients_per_gpu:目前設為 2 指定使用 NVIDIA L4 GPU 執行 AI 推論工作。系統會自動安裝必要的 GPU 驅動程式。多個較小的工作負載可以共用單一 GPU。
    node_config.machine_type 已變更為 "g2-standard-8" 這個機型專為搭配 L4 GPU 而設計。vCPU (8 個) 和記憶體 (32 GB) 專為支援 GPU 和執行 AI 推論應用程式而建立。
    node_config.oauth_scopes包含https://www.googleapis.com/auth/cloud-platform 節點的服務帳戶可廣泛存取 Google Cloud 服務,因此能透過 API 執行記錄、監控及提取容器映像檔等工作。
    node_config.shielded_instance_config.enable_secure_boot 設為 true 安全啟動功能會在執行開機載入程式和核心之前,驗證兩者的加密簽章,協助保護節點免於啟動層級的惡意軟體攻擊。

Helm 資訊套件設定

下表列出 Helm 資訊主圖設定,這些設定已自訂,可用於在 GKE 上部署及擴充 AI 推論服務。

設定 目的
replicaCount: 1 建立單一初始副本。
image.repository: vllm/vllm-openai 使用 vLLM 映像檔,這是經過最佳化的大型語言模型 (LLM) 推論程式庫,透過與 OpenAI 相容的 API 公開。
model.id: google/gemma-7b-it 將 Gemma 7B 指令微調模型定義為要提供的模型。
model.hfSecret: hf-secret 表示模型需要使用 Kubernetes 密鑰進行驗證,才能安全地管理憑證。
resources.limitsrequests (nvidia.com/gpu: "1") 確保每個 Pod 都能獲得專屬 GPU。
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 確保 AI 模型 Pod 僅排定在配備 NVIDIA L4 GPU 的 GKE Standard 節點上,這類節點非常適合用於經濟實惠的高效能推論。
hpa.enabled: true 啟用水平 Pod 自動配置器,讓應用程式根據 targetCPUUtilizationPercentage: 80% 自動調整 Pod 數量 (介於 minReplicas: 1maxReplicas: 10 之間)。確保尖峰負載期間的效能,以及低用量期間的成本效益。
tensorParallelSize: 1 表示模型不會在單一 Pod 內跨多個 GPU 分割。
maxModelLen: 512 控制 Gemma 7B 模型可處理的序列長度上限。
service.type: ClusterIP 這項服務已設定為在叢集內進行內部存取。
pdb.enabled: trueminAvailable: 1 已啟用 Pod disruption budget,確保高可用性。在節點維護等自願性中斷期間,至少會有一份 AI 模型副本可供使用。

建立 AI 應用程式

使用 AI 預先訓練推論 GKE 叢集和工作負載範本,部署 AI 應用程式。

部署 AI 基礎架構

設定及部署 AI 預先訓練推論 GKE 叢集範本,建立 AI 工作負載執行的基礎架構。

  1. 複製並部署 AI 預先訓練推論 GKE 叢集範本做為應用程式。

    系統會在您選擇的部署專案中建立 GKE 叢集。

  2. 設定元件。如要瞭解詳情,請參考下列資源:

  3. 按一下「Deploy」(部署)。應用程式會在幾分鐘後部署完成。

  4. 在「應用程式詳細資料」面板中,按一下「輸出」分頁標籤。

  5. 找出應用程式的 cluster_id。部署 Helm 圖表時,您會使用這項資訊。

部署 AI 工作負載

使用 AI 預先訓練的推論 GKE 工作負載範本,將 AI 工作負載部署到您建立的叢集。您將部署包含 AI 工作負載設定的 Helm 圖表。

  1. 在「Google catalog」(Google 目錄) 頁面,點選「AI Pre-trained Inference GKE workload」(AI 預先訓練推論 GKE 工作負載) 範本上的「Create new application」(建立新應用程式)

  2. 在「Name」(名稱) 欄位中,輸入應用程式的專屬名稱。

  3. 在「GKE Deployment Target」(GKE 部署目標) 區域中,執行下列操作:

    1. 從「專案清單」中,選取您從「AI Pre-trained Inference GKE cluster」(AI 預先訓練的推論 GKE 叢集) 應用程式部署 GKE 叢集的專案。

    2. 從「Region」(區域) 清單中,選取部署 GKE 叢集的區域。

    3. 從「Clusters」(叢集) 清單中,選取已部署的 GKE 叢集。

    4. 從「命名空間」清單中,輸入您部署 GKE 叢集的命名空間。如果沒有變更名稱,請輸入 default

    5. 按一下「建立應用程式」

    應用程式建立完成後,畫面會顯示設定檔。

  4. 在「Helm chart」(Helm 資訊套件) 面板中,執行下列操作:

    1. 查看設定詳細資料

    2. 選用:自訂設定,滿足您的獨特需求。

    3. 如要將 Helm 資訊套件部署至叢集,請按一下「Deploy」(部署)

      如需詳細步驟,請參閱「部署應用程式」。

    幾分鐘後,系統會將 Helm 資訊圖表設定部署至 GKE 叢集。

後續步驟