關於由 llm-d 支援的 GKE Inference Gateway

本頁面說明 Google Kubernetes Engine (GKE) 推論閘道的主要概念和功能。這項 GKE 閘道擴充功能可最佳化生成式 AI 應用程式的服務。

本頁假設您瞭解下列事項:

本頁面適用於下列對象:

  • 有興趣使用 Kubernetes 容器自動化調度管理功能,提供 AI/機器學習工作負載服務的機器學習工程師、平台管理員和營運人員,以及資料和 AI 專家。
  • 與 Kubernetes 網路互動的雲端架構師和網路專員。

總覽

GKE Inference Gateway 是 GKE Gateway 的擴充功能,可為提供生成式人工智慧 (AI) 工作負載,提供最佳化的路徑和負載平衡。可簡化 AI 推論工作負載的部署、管理和可觀測性。

如要為 AI/機器學習工作負載選擇最佳負載平衡策略,請參閱「在 GKE 上為 AI 推論選擇負載平衡策略」。

特色與優點

GKE Inference Gateway 提供下列重要功能,可有效率地為 GKE 上的生成式 AI 應用程式提供生成式 AI 模型:

  • 支援的指標
    • KV cache hits:鍵/值 (KV) 快取中成功查閱的次數。
    • GPU 或 TPU 使用率:GPU 或 TPU 主動處理作業的時間百分比。
    • 要求佇列長度:等待處理的要求數量。
  • 推論最佳化負載平衡:分配要求,盡量提升 AI 模型提供效能。這項服務會使用模型伺服器的指標 (例如 KV cache hitsqueue length of pending requests),更有效率地運用加速器 (例如 GPU 和 TPU) 處理生成式 AI 工作負載。這會啟用前置字元快取感知轉送,這項重要功能會分析要求主體,找出共用內容的要求,並盡量提高快取命中率,將要求傳送至相同的模型副本。這種方法可大幅減少多餘的運算,並縮短第一個權杖的產生時間,因此非常適合對話式 AI、檢索增強生成 (RAG) 和其他以範本為基礎的生成式 AI 工作負載。
  • 動態 LoRA 微調模型服務:支援在共用加速器上提供動態 LoRA 微調模型。在共用基礎模型和加速器上多工處理多個 LoRA 微調模型,減少提供模型所需的 GPU 和 TPU 數量。
  • 最佳化推論自動調度資源:GKE 水平 Pod 自動調度器 (HPA) 會使用模型伺服器指標進行自動調度資源,有助於確保運算資源的使用效率,並提升推論效能。
  • 模型感知型轉送:根據 GKE 叢集OpenAI API規格中定義的模型名稱,轉送推論要求。您可以定義 Gateway 轉送政策 (例如流量分割和要求鏡像),管理不同模型版本並簡化模型推出程序。舉例來說,您可以將特定模型名稱的要求,轉送至不同的 InferencePool 物件,每個物件都提供不同版本的模型。如要進一步瞭解如何設定,請參閱「設定以主體為準的轉送」。
  • 整合 AI 安全和內容篩選功能:GKE Inference Gateway 會與 Google Cloud Model Armor 整合,在閘道對提示和回覆套用 AI 安全檢查和內容篩選功能。您也可以使用 NVIDIA NeMo Guardrails。Model Armor 會提供要求、回應和處理作業的記錄,供您回溯分析及最佳化。GKE Inference Gateway 的開放式介面可讓第三方供應商和開發人員,將自訂服務整合至推論要求程序。
  • 模型專屬服務 Priority:可讓您指定 AI 模型的服務 Priority。相較於可容許延遲的批次推論工作,延遲時間較短的要求優先順序較高。舉例來說,您可以優先處理延遲時間敏感型應用程式的要求,並在資源受限時捨棄時間敏感度較低的作業。
  • 預測延遲時間的路由:使用 XGBoost 模型轉送推論要求,該模型會根據即時流量持續訓練,並針對每個要求的「第一個權杖生成時間 (TTFT)」和「每個輸出權杖的時間 (TPOT)」目標進行最佳化。在高變異工作負載下,比靜態啟發式方法更準確。請參閱「使用 GKE Inference Gateway 根據預測延遲時間進行路由」。
  • 推論觀測:提供推論要求觀測指標,例如要求比率、延遲時間、錯誤和飽和度。透過 Cloud Monitoring 和 Cloud Logging 監控推論服務的效能和行為,並運用預先建構的專用資訊主頁取得詳細洞察資料。詳情請參閱「查看 GKE Inference Gateway 資訊主頁」。
  • 透過 Apigee 進行進階 API 管理:與 Apigee 整合,透過 API 安全防護、頻率限制和配額等功能,強化推論閘道。如需詳細操作說明,請參閱「設定 Apigee 進行驗證和 API 管理」。
  • 可擴充性:以可擴充的開放原始碼 Kubernetes Gateway API 推論擴充功能為基礎,支援使用者管理的 llm-d 端點選擇器 (EPP) 演算法,並由 llm-d 提供支援。llm-d 端點選擇器 (EPP) 演算法採用 llm-d 技術,為這個擴充功能提供核心轉送智慧。
  • 支援多個通訊埠:支援公開多個通訊埠的模型伺服器,這對於進階服務情境 (例如資料平行注意力) 來說至關重要。
  • 網路端點群組 (NEG) 限制:每個Google Cloud 後端服務最多可有 50 個 NEG。使用多埠 InferencePool 時,每個可用區的每個埠都會建立專屬的 NEG。舉例來說,在一般地區叢集 (三個區域) 中,具有八個連接埠的 InferencePool 會產生 24 個 NEG。因此,多叢集 Gateway 最多只能從兩個叢集匯總這類 InferencePool (兩個叢集 × 24 個 NEG = 48 個 NEG),就會達到 50 個 NEG 的限制。

瞭解重要概念

GKE Inference Gateway 會使用 GatewayClass 物件,強化現有的 GKE Gateway。GKE Inference Gateway 導入下列新的 Gateway API 自訂資源定義 (CRD),與 OSS Kubernetes Gateway API 擴充功能 (適用於推論) 保持一致:

  • InferencePool 物件:代表一組共用相同運算設定、加速器類型、基礎語言模型和模型伺服器的 Pod (容器)。這項功能會以邏輯方式將 AI 提供模型資源分組及管理。單一 InferencePool 物件可以跨不同 GKE 節點涵蓋多個 Pod,並提供擴充性和高可用性。您可以在 InferencePool 資源中指定最多八個 targetPorts,以支援需要多個連接埠的模型伺服器。
  • InferenceObjective 物件:根據 OpenAI API 規格,指定 InferencePool 中服務模型的名稱。InferenceObjective 物件也會指定模型的服務屬性,例如 AI 模型的 Priority。GKE Inference Gateway 會優先處理優先順序值較高的工作負載。您可以在 GKE 叢集上多工處理著重延遲時間和容許延遲的 AI 工作負載。您也可以設定 InferenceObjective 物件,提供 LoRA 微調模型。

下圖說明 GKE Inference Gateway,以及該閘道在 GKE 叢集內與 AI 安全性、可觀測性和模型服務的整合。

GKE Inference Gateway InferencePool 和 InferenceObjective 物件之間的關係
圖: GKE Inference Gateway 資源模型

下圖說明資源模型,著重於兩個新的推論導向角色,以及這些角色管理的資源。

以推論為主的目標對象及其資源的資源模型
圖: GKE Inference Gateway 資源模型,以推論為重點的角色

llm-d Router

llm-d Router 是智慧型要求轉送元件,Inference Gateway 會使用這個元件,根據要求做出端點決策。這個元件由兩個子元件組成:

子元件 說明
`L7 Proxy` 任何符合規範的產業級 L7 代理程式 (通常是 Envoy),可處理資料平面:連線管理、TLS 終止和要求轉送。在 GKE Inference Gateway (閘道模式) 中,Proxy 是 GKE 閘道。
`llm-d Endpoint Picker (EPP)` Proxy 會使用 ext-proc 通訊協定,針對每項要求諮詢這項專門服務。EPP 包含路徑 智慧功能。並使用模型伺服器的即時信號 (KV 快取使用率、佇列長度、前置字元快取狀態和 LoRA 配接器親和性),為每個要求選取最佳模型伺服器 Pod。

閘道模式

GKE Inference Gateway 是以 Gateway 模式運作的 llm-d Router。在「閘道模式」中,Proxy 是正式的 Kubernetes 閘道,與 EPP 服務分開佈建及管理。閘道會透過 ext-proc 呼叫 EPP,做出路徑決策,然後將要求直接轉送至所選模型伺服器 Pod。

將閘道 (資料層) 與 EPP (路徑智慧) 分開,可實現下列功能:

  • 共用基礎架構:單一 GKE Gateway 可與標準 Kubernetes 服務一起提供多個 InferencePool。
  • 進階流量管理HTTPRoute 政策支援加權拆分、漸進式推出,以及要求鏡像。
  • 獨立調度資源:EPP 服務會獨立於 Gateway 調度資源。
  • 雲端原生整合:可與 GKE 的受管理 Gateway 控制器、Cloud Load Balancing 和現有可觀測性工具搭配使用。

GKE Inference Gateway 的運作方式

GKE Inference Gateway 會使用 Gateway API 擴充功能和模型專屬的路由邏輯,處理用戶端對 AI 模型的要求。以下步驟說明要求流程。

要求流程的運作方式

GKE Inference Gateway 會將用戶端要求從初始要求轉送至模型執行個體。本節說明 GKE Inference Gateway 如何處理要求。所有用戶端都會採用這個常見的要求流程。

  1. 用戶端會按照 OpenAI API 規格的格式,將要求傳送至 GKE 中執行的模型。
  2. GKE Inference Gateway 會使用下列推論擴充功能處理要求:

    1. 以主體為依據的路由擴充功能:從用戶端要求主體擷取模型 ID,並傳送至 GKE Inference Gateway。接著,GKE Inference Gateway 會使用這個 ID,根據 Gateway API HTTPRoute 物件中定義的規則轉送要求。要求主體路由與根據網址路徑的路由類似。不同之處在於要求主體路由會使用要求主體的資料。
    2. 安全擴充功能:使用 Model Armor、NVIDIA NeMo Guardrails 或支援的第三方解決方案,強制執行模型專屬安全政策,包括內容篩選、威脅偵測、清除和記錄。安全性擴充功能會將這些政策套用至要求和回應處理路徑。
    3. LLM-D 端點選擇器 (EPP):監控 InferencePool 中模型伺服器的重要指標,並將要求轉送到最佳模型副本。詳情請參閱 llm-d Router
  3. GKE Inference Gateway 會將要求轉送到端點選擇器擴充功能傳回的模型副本。

下圖說明要求從用戶端傳送到模型執行個體的流程,途經 GKE Inference Gateway。

要求從用戶端透過 GKE Inference Gateway 傳送到模型執行個體的流程
圖: GKE Inference Gateway 要求流程

流量分配的運作方式

GKE Inference Gateway 會將推論要求動態分配給 InferencePool 物件中的模型伺服器。這有助於盡可能提高資源使用率,並在不同負載條件下維持效能。GKE Inference Gateway 會使用下列兩種機制管理流量分配:

  • 端點挑選:動態選取最合適的模型伺服器,處理推論要求。這項功能會監控伺服器負載和可用性,然後計算每個伺服器的 score,並結合多項最佳化啟發式方法,做出最佳路徑決策:

    • 前置字元快取感知路由:GKE Inference Gateway 會追蹤每個模型伺服器上的可用前置字元快取索引,並為前置字元快取相符程度較高的伺服器提供較高分數。
    • 負載感知路由:GKE Inference Gateway 會監控伺服器負載 (KV 快取使用率和待處理佇列深度),並為負載較低的伺服器提供較高的分數。
    • LoRA 感知式路由:啟用動態 LoRA 服務時,GKE Inference Gateway 會監控每個伺服器的作用中 LoRA 轉接器,並為作用中 LoRA 轉接器或��額������間可動態載入所要求 LoRA 轉接器的伺服器提供較高分數。系統會選取總分最高的伺服器。
  • 佇列和卸除:管理要求流程,防止流量過載。GKE Inference Gateway 會將傳入的要求儲存在佇列中,並根據定義的優先順序排定要求優先順序。

GKE Inference Gateway 會使用數字 Priority 系統 (又稱 Criticality) 管理要求流程,並防止過載。這是使用者為每個 InferenceObjective 定義的選用整數字段。Priority值越高代表要求越重要。當系統負載過重時,Priority 小於 0 的要求會視為優先順序較低,並優先捨棄,傳回 429 錯誤,以保護更重要的工作負載。Priority 的預設值為 0。只有在要求明確將 Priority 設為小於 0 的值時,系統才會因優先順序而捨棄要求。這個系統可讓您優先處理對延遲時間較敏感的線上推論流量,而非對時間較不敏感的批次工作。

GKE Inference Gateway 支援串流推論,適用於需要持續或近乎即時更新的應用程式,例如聊天機器人和即時翻譯。串流推論會以遞增的區塊或片段形式提供回覆,而不是單一的完整輸出內容。如果串流回應期間發生錯誤,系統會終止串流,並向用戶端傳送錯誤訊息。GKE Inference Gateway 不會重試串流回應。

查看應用程式範例

本節提供使用 GKE Inference Gateway 解決各種生成式 AI 應用程式情境的範例。

範例 1:在 GKE 叢集上提供多個生成式 AI 模型

某公司想部署多個大型語言模型 (LLM),以處理不同的工作負載。舉例來說,他們可能會想為聊天機器人介面部署 Gemma3 模型,並為推薦應用程式部署 DeepSeek 模型。公司必須確保這些 LLM 的放送成效達到最佳狀態。

使用 GKE Inference Gateway,您可以在 InferencePool 中,以所選的加速器設定,將這些 LLM 部署至 GKE 叢集。然後,您可以根據模型名稱 (例如 chatbotrecommender) 和 Priority 屬性轉送要求。

下圖說明 GKE Inference Gateway 如何根據模型名稱和 Priority,將要求轉送至不同模型。

根據模型名稱和優先順序,將要求轉送至不同模型
圖: 使用 GKE Inference Gateway 在 GKE 叢集上提供多個生成式 AI 模型

這張圖說明 GKE Inference Gateway 如何處理對 example.com/completions 上生成式 AI 服務的要求。要求會先抵達 Infra 命名空間中的 Gateway。這個 Gateway 會將要求轉送至 GenAI Inference 命名空間中的 HTTPRoute,該命名空間已設定為處理聊天機器人和情緒模型的要求。對於聊天機器人模型,HTTPRoute 會分割流量:90% 的流量會導向執行目前模型版本的 InferencePool (由 {pool: gemma} 選取),10% 的流量則會導向較新版本的集區 ({pool: gemma-new}),通常用於初期測試。這兩個集區都會連結至 InferenceObjective,為聊天機器人模型的要求指派 10 的 Priority,確保這些要求會視為高優先順序。

範例 2:在共用加速器上提供 LoRA 適應器

某公司想提供大型語言模型服務,用於文件分析,並以多種語言 (例如英文和西班牙文) 的目標對象為主。他們已針對每種語言微調模型,但需要有效運用 GPU 和 TPU 容量。您可以使用 GKE Inference Gateway,在通用基礎模型 (例如 llm-base) 和加速器上,為每種語言 (例如 english-botspanish-bot) 部署動態 LoRA 微調轉接器。這樣一來,您就能在共用加速器上密集封裝多個模型,減少所需的加速器數量。

下圖說明 GKE Inference Gateway 如何在共用加速器上提供多個 LoRA 配接器。

在共用加速器上提供多個 LoRA 適應器
圖: 在共用加速器上放送 LoRA 轉換器

後續步驟