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

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

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

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

事前準備

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

封裝模型,確保效能一致

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

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

延遲是推論工作負載的問題,而部分複雜模型會依賴 GPUTPU 等硬體加速器,加快推論服務。GKE 可簡化使用 GPU 或 TPU 執行延遲時間敏感型推論工作負載的程序。您可以選擇最符合效能和成本需求的特定硬體設定,GKE 會自動佈建及管理您選擇的硬體。舉例來說,GKE 會自動安裝 NVIDIA 驅動程式,而這通常需要在 Kubernetes 中手動設定。

GKE 也提供資源管理功能,讓您更有效率地使用 TPU 和 GPU 資源進行推論服務。舉例來說,您可以使用 GKE 跨多個模型排程或共用 GPU 或 TPU 集區,也可以將加速器搭配先占 VM 使用,提高容錯推論工作負載的成本效益。這些功能可協助您充分運用加速器資源,同時盡量縮短服務延遲時間並降低成本。

自動處理流量模式的變化

即時推論工作負載的流量和負載可能難以預測且會動態變化。需求量突然增加可能會導致延遲時間增加,並降低效能。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/機器學習模型轉換為強大的正式版應用程式。

後續步驟