為何要使用 GKE 進行 AI/機器學習推論

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

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

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

事前準備

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

封裝模型,確保效能一致

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

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

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

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

自動處理流量模式的變化

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

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

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

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

使用 GKE 提升可攜性和彈性

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

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

後續步驟