為何要使用 GKE 執行 AI/機器學習推論作業

這份文件是系列文章的第一部分,適用於剛開始使用 Google Kubernetes Engine (GKE) 的機器學習 (ML) 工程師,他們希望盡快在 GKE 上執行推論工作負載。

在本系列中,我們不會嘗試教導您所有可用的 GKE 選項。我們不會提供這類資訊,而是提供您在 GKE 上執行工作負載時需要瞭解的基本資訊。本系列 包含下列文件:

身為 AI/機器學習平台工程師,您可以使用 GKE 管理模型部署作業。GKE 服務可自動部署、調度及監控以 Kubernetes 為基礎的推論工作負載,以及工作負載執行的運算基礎架構。本文將介紹使用 GKE 進行模型推論的主要優勢,包括:

事前準備

閱讀本文前,請先熟悉下列概念:

封裝模型,確保效能一致

一致且可靠的模型推論對 AI 應用程式至關重要,而 GKE 可減少大規模管理推論的作業複雜度。將訓練好的模型、推論伺服器和所有依附元件封裝到容器中,即可建立可在 GKE 上執行的標準化可攜式構件。容器化有助於減少因依附元件不符或環境不一致而造成的錯誤。GKE 會自動部署及管理這些容器。這項服務會處理重新啟動當機工作負載或重新佈建資源等工作,協助穩定 AI/機器學習工作負載的效能。

使用 GPU 和 TPU 縮短服務延遲時間

延遲是推論工作負載的問題,部分複雜模型會依賴 GPU 和 TPU 等硬體加速器,加快推論服務速度。GKE 簡化了硬體佈建和管理作業,讓您能輕鬆使用 GPU 或 TPU 執行延遲時間敏感的推論工作負載。您可以選擇最符合效能和成本需求的特定硬體設定,GKE 則會自動佈建節點,並使用您選取的硬體執行工作負載。GKE 也會自動執行通常需要在 Kubernetes 中手動設定的步驟,例如安裝 NVIDIA 驅動程式。如要更精細地控管節點設定,可以使用自訂 ComputeClass 建立特定且可重複使用的硬體設定檔,供 GKE 在佈建節點時使用。

GKE 也提供資源管理功能,讓您更有效率地使用 TPU 和 GPU 資源進行推論服務。舉例來說,您可以透過GPU 共用,在單一 GPU 伺服器上託管多個模型,提高 GPU 使用率;也可以在預先中斷 VM 上執行容錯推論作業,並搭配加速器,降低作業成本。對於需求量波動或時間較短的中小型工作負載,您可以使用彈性啟動,以彈性且符合成本效益的方式使用 GPU 或 TPU 等專用運算資源。這些功能可協助您充分運用加速器資源,同時盡量縮短服務延遲時間並降低成本。

自動處理流量模式的變化

即時推論工作負載的流量和負載可能難以預測且會動態變化。需求量突然增加可能會導致延遲時間變長,效能降低。GKE 提供多層自動調度資源方法,可自動新增或移除資源,滿足多變的推論需求。舉例來說,您可以使用水平 Pod 自動調度器 (HPA) 自動調整 Deployment 中的 Pod 數量,或使用叢集自動調度器自動調整現有節點集區中的節點數量。使用 GKE 自動調度資源功能,您可以根據應用程式需求量,有效調整推論工作負載所需的資源量。

監控推論工作負載的健康狀態和效能

GKE 與 Cloud de Confiance by S3NS 可觀測性套件 (Cloud Logging 和 Cloud Monitoring) 整合,您可以使用內建可觀測性功能監控推論工作負載的健康狀態和效能。這些可觀測性功能可讓您深入瞭解及掌握工作負載部署後的執行情況。舉例來說,您可能會想知道模型是否正常運作,或是工作負載是否符合延遲和準確度方面的需求。

GKE 會自動回報 CPU、記憶體和加速器用量等基礎架構指標。如要回答有關特定模型效能的問題,可以使用 Google Cloud Managed Service for Prometheus,或從推論應用程式將自訂指標傳送至 Cloud Monitoring。舉例來說,您可以設定自動應用程式監控,並監控每秒要求數 (RPS) 等重要推論指標;分析輸入資料分布等模型專屬指標,監控概念漂移;以及進行歷來記錄分析,偵錯問題。

使用 GKE 確保可攜性和彈性

GKE 採用容器等開放標準,以及 Kubernetes 等開放原始碼技術,可讓您隨著需求變化,自由地將推論服務工作負載移至不同位置,並使用不同的資源和工具。舉例來說,您可以在 GKE 上開發及測試推論應用程式,然後將相同的容器化應用程式部署至地端部署環境,用於正式版。

總而言之,您可以使用 GKE 簡化 AI/機器學習模型從開發到正式環境的轉移程序。GKE 會處理基礎架構管理作業的許多複雜問題,因此您可以專注於在效能良好、可擴充及可觀測的環境中執行推論工作負載。在本系列課程中,您將瞭解如何使用 GKE,將 AI/ML 模型轉換為強大的正式環境適用應用程式。

後續步驟