關於 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/機器學習模型推論

您可以在幾分鐘內開始探索 GKE 的 AI/機器學習模型推論功能。您可以使用 GKE 的免費方案,開始使用 Kubernetes,不必支付叢集管理費用。

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

  2. 請嘗試「部署模型」步驟,部署容器化模型和模型伺服器。
  3. 請參閱「GKE 推論最佳做法總覽」,瞭解在 GKE 上規劃及執行推論工作負載的指南和資源。

術語

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

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

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,管理推論服務。部署作業是 Kubernetes API 物件,可讓您執行多個 Pod 副本,並將這些副本分配到叢集中的節點。指定 Docker 映像檔、副本和設定。Kubernetes 會提取映像檔,並在 GKE 叢集節點上執行容器。使用模型伺服器和模型設定 Pod,包括視需要使用 LoRA 適應器。

  4. 公開推論服務:建立 Kubernetes 服務,為 Deployment 提供網路端點,讓推論服務可供存取。使用 Inference Gateway 進行智慧負載平衡和路由,專為生成式 AI 推論工作負載量身打造。使用 Inference Gateway 進行智慧型負載平衡,專為生成式 AI 工作負載量身打造,或參閱負載平衡策略比較,選擇最符合需求的選項。

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

  6. 調度及監控推論部署作業:使用 HPA 調度推論作業,根據 CPU 或延遲時間自動調整副本。水平 Pod 自動調度器 (HPA) 是 Kubernetes 控制器,會根據觀察到的指標 (例如 CPU 使用率或自訂指標),自動增加或減少工作負載 (例如 Deployment) 中的 Pod 數量。使用「推論快速入門」取得自動生成的調整建議。如要追蹤效能,請使用 Cloud Monitoring 和 Cloud Logging,並搭配預先建構的可觀測性功能,包括熱門模型伺服器的資訊主頁,例如 vLLM

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

GKE 生成式 AI 功能

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

名稱 說明 優點
GKE 推論快速入門導覽課程

分析推論工作負載的效能和成本效益。 指定業務需求,取得量身打造的最佳做法,瞭解如何搭配使用加速器、資源調度、儲存空間設定和模型伺服器,以最符合需求。您可以使用 gcloud CLI 和 Google Cloud 控制台存取這項服務。

詳情請參閱「參加『GKE 推論快速入門導覽課程』,瞭解如何分析模型服務效能和成本」。

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

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

詳情請參閱「關於 GKE 推論閘道」。

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

使用 Cloud Storage FUSE 搭配快取和並行下載功能,快速存取 Cloud Storage 中的資料。如要進一步瞭解如何將 Cloud Storage FUSE 用於 AI/ML 工作負載,請參閱參考架構

Google Cloud Managed Lustre 是針對 AI 最佳化的高效能全代管平行檔案系統,可連結至 10,000 個以上的 Pod。如要進一步瞭解如何使用 Managed Lustre 處理 AI/ML 工作負載,請參閱參考架構

Google Cloud Hyperdisk ML 是可連接至多達 2,500 個 Pod 的網路連接磁碟。

  • 在 GKE 上盡量縮短權重載入模型延遲時間,進而縮短推論啟動時間。
  • 如果部署作業的節點調度有限,請考慮使用 Cloud Storage FUSE 掛接模型權重。
  • 對於需要穩定擴充效能的推論工作負載,Google Cloud Managed Lustre 支援從多個 Pod 同時存取高處理量和低延遲的檔案。
  • 對於需要大規模存取大型模型權重,且要求存取延遲時間一致的案例,Google Cloud Hyperdisk ML 提供專屬的區塊儲存空間解決方案。

推論效能指標

如要最佳化推論工作負載,請務必瞭解如何評估其效能。下表說明在 GKE 上評估推論效能時的重要指標。

基準指標 指標 (單位) 說明
延遲時間 第一個權杖生成時間 (TTFT) (毫秒) 為要求產生第一個權杖所需的時間。
個別輸出權杖的正規化時間 (NTPOT) (毫秒) 要求延遲時間 (以輸出權杖數量正規化),以 request_latency / total_output_tokens 為單位。
每個輸出權杖的時間 (TPOT) (毫秒) 生成一個輸出權杖所需的時間,以 (request_latency - time_to_first_token) / (total_output_tokens - 1) 為單位。
權杖間延遲時間 (ITL) (毫秒) 測量生成兩個輸出權杖之間的延遲時間。TPOT 會測量整個要求的延遲時間,ITL 則會測量生成每個輸出詞元所需的時間。接著,系統會匯總這些個別測量結果,產生平均值、中位數和百分位數值 (例如 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 為單位。這項指標會計算輸入和輸出詞元,協助您比較預填時間較長和解碼時間較長的工作負載。

規劃推論

如要順利部署推論作業,必須在多個重要領域仔細規劃,包括成本效益、效能和資源取得能力。如需如何建構可擴充、高效能且具成本效益的推論平台的詳細建議,請參閱「GKE 推論最佳做法總覽」。

試用推論範例

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

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

加速器 模型伺服器 教學課程
GPU vLLM 在 GKE 上提供 DeepSeek-R1 671B 或 Llama 3.1 405B 等 LLM
GPU vLLM 透過 vLLM 在 GKE 上使用 GPU 提供 Gemma 開放模型
GPU vLLM 使用 GKE Inference Gateway 提供 LLM
GPU vLLM 在 GKE 上使用預先設定的架構提供開放式 LLM
GPU Ray Serve 透過 Ray 在 L4 GPU 提供大型語言模型
GPU TGI 在 GKE 中使用多個 GPU 提供 LLM
GPU TorchServe 使用 TorchServe 在 GKE 上提供 T5
TPU vLLM 透過 vLLM 在 GKE 上使用 TPU Trillium 提供 LLM
TPU vLLM 透過 KubeRay 在 GKE 上使用 TPU 提供 LLM
TPU MaxDiffusion 透過 MaxDiffusion 在 GKE 上使用 TPU 提供 Stable Diffusion XL (SDXL)
TPU vLLM 使用多主機 TPU 提供 LLM
TPU vLLM 透過預先設定的架構,在 TPU 上提供開放原始碼 LLM

後續步驟