關於 GKE 中的 AI/機器學習模型推論


本頁說明如何使用 GKE Gen AI 功能,在 Google Kubernetes Engine (GKE) 上執行生成式 AI/機器學習模型推論工作負載,並介紹相關基本概念、優點和步驟。

將生成式 AI 模型部署至實際應用程式時,推論服務至關重要。GKE 提供穩固且可擴充的平台,可管理容器化工作負載,因此是開發或正式環境中模型服務的絕佳選擇。透過 GKE,您可以使用 Kubernetes 的自動化調度、擴充和高可用性功能,有效率地部署及管理推論服務。

為滿足 AI/機器學習推論的特定需求, Google Cloud 推出了 GKE Gen AI 功能,這是一套專為提升及最佳化 GKE 推論服務而設計的功能。如要進一步瞭解特定功能,請參閱 GKE 生成式 AI 功能

開始在 GKE 上執行 AI/ML 模型推論作業

您可以在幾分鐘內開始探索 GKE 上的 AI/ML 模型推論。您可以使用 GKE 的免費層級,開始使用 Kubernetes,不必支付叢集管理費用。

  1. 前往 Google Cloud 控制台中的 GKE AI/機器學習頁面

  2. 請嘗試部署模型步驟,部署容器化模型和模型伺服器。
  3. 請參閱「規劃推論作業」,瞭解如何在 GKE 上規劃及執行推論工作負載。

術語

本頁面使用下列與 GKE 推論相關的術語:

  • 推論:在 GKE 叢集中執行生成式 AI 模型 (例如大型語言模型或擴散模型) 的程序,從輸入資料生成文字、嵌入項目或其他輸出內容。在 GKE 上進行模型推論時,可運用加速器有效處理複雜的運算,以進行即時或批次處理。
  • 模型:從資料中學習模式並用於推論的生成式 AI 模型。模型的大小和架構各不相同,從較小的特定領域模型,到經過最佳化調整,可處理各種語言工作的大型數十億參數神經網路都有。
  • 模型伺服器:負責接收推論要求並傳回推論結果的容器化服務。這項服務可以是 Python 應用程式,也可以是更強大的解決方案,例如 vLLMJetStreamTensorFlow ServingTriton Inference Server。模型伺服器會將模型載入記憶體,並在加速器上執行運算,有效率地傳回推論結果。
  • 加速器:專用硬體,例如 NVIDIA 的圖形處理單元 (GPU) 和 Google 的 Tensor 處理單元 (TPU),可附加至 GKE 節點,加快運算速度,特別是訓練和推論工作。

GKE 推論作業的優點

在 GKE 上提供推論服務有幾項優點:

  • 高效率的價格效能:滿足推論服務需求,同時兼顧價值和速度。GKE 提供多種強大的加速器 (GPU 和 TPU) 供您選擇,因此您只需支付所需的效能費用。
  • 加快部署速度:運用 GKE 生成式 AI 功能提供的量身打造最佳做法、資格和最佳做法,加快上市時間。
  • 可擴充的效能:使用 GKE Inference Gateway水平 Pod 自動調度資源 (HPA) 和自訂指標,透過預先建構的監控功能擴充效能。您可以執行各種預先訓練或自訂模型,參數從 80 億個到 6, 710 億個不等。
  • 完整可攜性:透過開放標準享有完整可攜性。Google 參與了 Kubernetes 主要 API 的開發,包括 GatewayLeaderWorkerSet,所有 API 都能透過 Kubernetes 發行版本移植。
  • 生態系統支援:以 GKE 穩固的生態系統為基礎,支援 Kueue 等工具,進行進階資源佇列和管理,以及支援 Ray 進行分散式運算,有助於擴充及有效率地訓練和推論模型。

GKE 推論的運作方式

本節將大致說明使用 GKE 進行推論服務的步驟:

  1. 將模型容器化:將模型伺服器 (例如 vLLM) 容器化,並從 Cloud Storage 或 Hugging Face 等存放區載入模型權重,即可部署模型。使用 GKE Inference Quickstart 時,系統會自動在資訊清單中管理容器化映像檔。

  2. 建立 GKE 叢集:建立 GKE 叢集來代管部署作業。選擇 Autopilot 即可享有代管體驗,或選擇 Standard 進行自訂。設定叢集大小、節點類型和加速器。如要瞭解最佳化設定,請參閱推論快速入門導覽課程

  3. 將模型部署為 Kubernetes Deployment:建立 Kubernetes Deployment,管理推論服務。Deployment 是 Kubernetes API 物件,可讓您執行多個 Pod 副本,並將這些副本分散到叢集的節點中。指定 Docker 映像檔、副本和設定。Kubernetes 會提取映像檔,並在 GKE 叢集節點上執行容器。使用模型伺服器和模型設定 Pod,包括視需要使用 LoRA 轉接頭。

  4. 公開推論服務:建立 Kubernetes 服務,為部署作業提供網路端點,讓推論服務可供存取。使用推論閘道,針對生成式 AI 推論工作負載進行智慧型負載平衡和路由。

  5. 處理推論要求:以預期格式 (JSON、gRPC) 將資料從應用程式用戶端傳送至服務端點。如果您使用負載平衡器,系統會將要求分配給模型副本。模型伺服器會處理要求、執行模型,並傳回推論結果。

  6. 調度及監控推論部署作業:使用 HPA 調度推論作業,根據 CPU 或延遲時間自動調整副本。使用「推論快速入門」取得自動產生的縮放建議。如要追蹤效能,請使用 Cloud Monitoring 和 Cloud Logging,並搭配預先建構的觀測功能,包括熱門模型伺服器 (例如 vLLM) 的資訊主頁。

如需使用特定模型、模型伺服器和加速器的詳細範例,請參閱「推論範例」。

GKE 生成式 AI 功能

您可以一併或個別使用這些功能,解決在 GKE 環境中提供生成式 AI 模型,以及提升資源使用率時遇到的主要挑戰,且不需支付額外費用。

名稱 說明 優點
GKE 推論快速入門導覽課程 (搶先版)

指定業務需求,並取得量身打造的最佳做法,瞭解如何搭配使用加速器、擴充設定和模型伺服器,以最符合需求的方式運作。您可以使用 gcloud CLI 存取這項服務。

詳情請參閱「使用 GKE Inference Quickstart 食譜執行最佳做法推論」。

  • 自動執行選擇及設定基礎架構的初始步驟,節省時間。
  • 讓您全面掌控 Kubernetes 設定,進一步調整。
GKE Inference Gateway (搶先版)

根據 KV 快取使用率等指標取得路由,以縮短延遲時間。

詳情請參閱「關於 GKE Inference Gateway」一文。

  • 分享使用 LoRA 檔案微調的模型,並根據親和性選擇端點,以提高成本效益。
  • 跨區域動態存取 GPU 和 TPU 容量,確保高可用性。
  • 使用 Model Armor 外掛程式政策,進一步提升模型安全性。
模型權重載入加速器

使用 Cloud Storage FUSE 搭配快取和並行下載功能,快速存取 Cloud Storage 中的資料。

對於需要穩定擴充效能的推論工作負載,Google Cloud Hyperdisk ML 是網路連接磁碟,最多可連接 2,500 個 Pod。

  • 在 GKE 上盡量縮短權重載入模型延遲時間,以縮短推論啟動時間。
  • 如果部署作業的節點調度規模有限,請考慮使用 Cloud Storage FUSE 掛接模型權重。
  • 對於需要持續以低延遲存取大型模型權重的超大規模情境,Google Cloud Hyperdisk ML 提供專屬的區塊儲存空間解決方案。

規劃推論

本節將介紹在 GKE 上執行推論工作負載時,應考量的一些重要事項。

具成本效益

由於使用加速器,提供大型生成式 AI 模型服務的成本可能很高,因此您應著重於有效運用資源。選取合適的機型和加速器至關重要,因為您必須根據模型大小和量化層級,選擇適當的加速器記憶體。舉例來說,搭載 NVIDIA L4 GPU 的 G2 執行個體適合較小的模型,可節省成本,而 A3 執行個體則更適合較大的模型。

請參考下列提示和建議,盡可能提高成本效益:

成效

如要提升 GKE 的推論效能,請著重於下列基準指標:

基準指標 指標 (單位) 說明
延遲時間 Time to First Token (TTFT) (毫秒) 為要求產生第一個權杖所需的時間。
每個輸出權杖的正規化時間 (NTPOT) (毫秒) 要求延遲時間 (以輸出權杖數量為標準化格式),以 request_latency / total_output_tokens 為單位。
每個輸出權杖的時間 (TPOT) (毫秒) 生成一個輸出權杖所需的時間,以 (request_latency - time_to_first_token) / (total_output_tokens - 1) 為單位。
權杖間延遲時間 (ITL) (毫秒) 測量生成兩個輸出權杖之間的延遲時間。與 TPOT 不同的是,ITL 是測量生成每個輸出詞元所需的時間,而 TPOT 則是測量整個要求中的延遲時間。接著,系統會匯總這些個別測量結果,產生平均值、中位數和百分位數值 (例如 p90)。
要求延遲時間 (毫秒) 完成要求的端對端時間。
處理量 每秒要求數 每秒放送的要求總數。請注意,這項指標可能無法準確評估 LLM 輸送量,因為不同內容長度的差異可能很大。
每秒輸出詞元數 這是以 total_output_tokens_generated_by_server / elapsed_time_in_seconds 衡量的常見指標。
每秒輸入的權杖數 評估結果為 total_input_tokens_generated_by_server / elapsed_time_in_seconds
每秒權杖數 評估結果為 total_tokens_generated_by_server / elapsed_time_in_seconds。這項指標會計算輸入和輸出的權杖,協助您比較預填時間較長和解碼時間較長的工作負載。

如要進一步提升效能,請參考下列提示和建議:

  • 如要根據效能需求取得建議的加速器,請使用推論快速入門導覽課程
  • 如要提升效能,請使用模型伺服器最佳化技術,例如批次處理和 PagedAttention,這些技術都收錄在最佳做法指南中。此外,請優先處理記憶體管理和注意力運算,確保權杖間的延遲時間穩定偏低。
  • 在模型伺服器 (例如 Hugging Face TGI、vLLM 或 NVIDIA Triton) 中使用標準化指標,有助於改善自動調度和負載平衡,進而以所選延遲時間達成更高的輸送量。GKE 可為多個模型伺服器提供自動應用程式監控功能。
  • 使用 GKE 網路基礎架構功能 (例如推論閘道),盡可能縮短延遲時間。
  • 搭配使用 Cloud Storage FUSE 與平行下載和快取,或使用 Hyperdisk ML,加快從永久儲存空間載入模型權重的速度。

  • 如要進行大規模訓練或推論,請使用 Pathways。Pathways 可讓單一 JAX 用戶端協調多個大型 TPU 配量的工作負載,簡化大規模機器學習運算。詳情請參閱「路徑」。

可取得性

確保資源 (CPU、GPU 和 TPU) 可取得,對於維持推論工作負載的效能、可用性和成本效益至關重要。推論工作負載通常會出現突發且無法預測的流量模式,這可能會對硬體容量造成挑戰。GKE 提供下列功能,可解決這些挑戰:

  • 資源消耗選項:您可以選擇多種選項,包括預留保證容量、經濟實惠的資源調度、動態工作負載排程器,以及Spot VM,以最佳化成本並即時存取資源。
  • 資源大小適中:舉例來說, Google Cloud 提供搭載 NVIDIA H100 GPU (1g、2g 或 4g) 的較小 A3 High VM,以經濟實惠的生成式 AI 推論作業規模,支援 Spot VM。
  • 加速器的運算類別:您可以運用自訂運算類別進行更精細的控制,避免過度佈建,並透過自動備援選項,盡可能取得資源。

節點升級

GKE 會自動執行大部分的升級程序,但您仍需考量升級策略,特別是相容性和測試。如要手動升級,您可以根據推論工作負載的容許中斷時間,選擇突波或藍綠升級。升級速度很快,但可能會短暫影響服務。藍綠升級幾乎不會停機,這對即時推論至關重要。詳情請參閱「節點升級策略」。

GPU 和 TPU 不支援即時遷移,因此維護作業需要重新啟動 Pod。使用 GKE 通知,為中斷做好準備。建議使用 Pod 中斷預算 (PDB),確保可用 Pod 數量下限。確認 Pod 能正常處理終止作業。 單一主機事件可能會中斷 TPU 節點,因此請規劃備援措施。 如需更多最佳做法,請參閱「管理 GPU 和 TPU 的 GKE 節點中斷情形」。

試用推論範例

查看生成式 AI 模型、加速器和模型伺服器的 GKE 部署範例。如果您剛開始使用,建議先參閱「透過 vLLM 在 GKE 上使用 GPU 提供 Gemma 開放式模型」教學課程。

或者,您也可以依關鍵字搜尋教學課程:

加速器 模型伺服器 教學課程
GPU vLLM 在 GKE 上提供 DeepSeek-R1 671B 或 Llama 3.1 405B 等 LLM
GPU vLLM 透過 vLLM 在 GKE 上使用 GPU 提供 Llama 模型
GPU vLLM 使用 vLLM 和 GKE 上的 GPU 提供 Gemma 開放模型
GPU vLLM 使用 GKE Inference Gateway 服務 LLM
GPU NVIDIA Triton 在 GKE 中使用單一 GPU 提供模型
GPU Ray Serve 透過 Ray 在 L4 GPU 提供大型語言模型
GPU TGI 在 GKE 中使用多個 GPU 提供 LLM
GPU NVIDIA Triton 透過 Triton 和 TensorRT-LLM,在 GKE 上使用 GPU 提供 Gemma 開放模型
GPU Hugging Face TGI 在 GKE 上使用 GPU 和 Hugging Face TGI 提供 Gemma 開放模型
GPU TensorFlow Serving 在 GKE 中使用單一 GPU 提供模型
TPU vLLM 透過 vLLM 在 GKE 上使用 TPU Trillium 提供 LLM
TPU vLLM 透過 KubeRay 在 GKE 上使用 TPU 提供 LLM
TPU JetStream 透過 JetStream 和 PyTorch 在 GKE 上使用 TPU 提供 LLM
TPU JetStream 透過 JetStream 在 GKE 上使用 TPU 提供 Gemma
TPU MaxDiffusion 透過 MaxDiffusion 在 GKE 上使用 TPU 提供 Stable Diffusion XL (SDXL)
TPU 最佳 TPU 使用 Optimum TPU ,透過 GKE 上的 TPU 提供開放原始碼模型

後續步驟