使用 GKE Inference Quickstart 食譜,以最佳做法執行推論


本頁面說明如何使用 GKE Inference Quickstart,簡化在 Google Kubernetes Engine (GKE) 上部署 AI/機器學習推論工作負載的程序。Inference Quickstart 是一項公用程式,可讓您指定推論業務需求,並根據最佳做法和 Google 的模型、模型伺服器、加速器 (GPUTPU) 和擴充功能基準,取得最佳化的 Kubernetes 設定。免去手動調整和測試設定的耗時程序。

本頁內容適用於機器學習 (ML) 工程師、平台管理員和營運人員,以及想要瞭解如何有效管理及最佳化 GKE,以進行 AI/ML 推論的資料和 AI 專家。如要進一步瞭解我們在內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。 Google Cloud

如要進一步瞭解模型服務概念和術語,以及 GKE Gen AI 功能如何提升及支援模型服務效能,請參閱「關於 GKE 上的模型推論」。

閱讀本頁面之前,請先熟悉 KubernetesGKE模型服務

使用推論快速入門導覽課程

使用 Inference Quickstart 的大致步驟如下。 如需詳細操作說明,請按一下連結。

  1. 查看量身打造的最佳做法:在 Google Cloud 控制台使用 GKE AI/機器學習頁面,或在終端機使用 Google Cloud CLI,然後提供偏好的開放模型 (例如 Llama、Gemma 或 Mistral) 等輸入內容。
    • 您可以指定應用程式的延遲目標,指出應用程式對延遲時間是否敏感 (例如聊天機器人),或是對輸送量是否敏感 (例如批次分析)。
    • Inference Quickstart 會根據您的需求提供加速器選項、成效指標和 Kubernetes 資訊清單,讓您完全掌控部署作業或進一步修改。產生的資訊清單會參照公開模型伺服器映像檔,因此您不必自行建立這些映像檔。
  2. 部署資訊清單:使用 Google Cloud 控制台或 kubectl apply 指令,部署建議的資訊清單。部署前,請先確認 Google Cloud 專案中選取的 GPU 或 TPU 有足夠的加速器配額。
  3. 監控效能:使用 Cloud Monitoring 監控 GKE 提供的指標,瞭解工作負載效能。您可以查看模型伺服器資訊主頁,並視需要微調部署作業。

優點

推論快速入門可提供最佳化設定,協助您節省時間和資源。這些最佳化措施可透過下列方式提升效能及降低基礎架構成本:

  • 您會收到詳細的專屬最佳做法,瞭解如何設定加速器 (GPU 和 TPU)、模型伺服器和縮放設定。GKE 會定期更新這項工具,提供最新修正、映像檔和效能基準。
  • 您可以使用Google Cloud 控制台 UI 或指令列介面,指定工作負載的延遲和輸送量需求,並取得詳細的量身打造最佳做法,做為 Kubernetes 部署資訊清單。

用途

推論快速入門導覽課程適用於下列情境:

  • 探索最佳 GKE 推論架構:如果您要從其他環境 (例如地端或不同雲端供應商) 遷移,並想瞭解 GKE 上最新的建議推論架構,以滿足特定效能需求。
  • 加快 AI/機器學習推論部署作業:如果您是經驗豐富的 Kubernetes 使用者,並想快速開始部署 AI 推論工作負載,推論快速入門導覽課程可協助您在 GKE 上探索及實作最佳做法部署作業,並提供以最佳做法為基礎的詳細 YAML 設定。
  • 探索 TPU,提升效能:如果您已在 GKE 上使用 Kubernetes 和 GPU,可以透過 Inference Quickstart 探索使用 TPU 的優點,進而提升效能。

運作方式

推論快速入門指南會根據 Google 對模型、模型伺服器和加速器拓撲組合的單一副本效能進行的詳盡內部基準測試,提供量身打造的最佳做法。這些基準圖表會繪製延遲與輸送量,包括佇列大小和 KV 快取指標,並為每種組合繪製效能曲線。

如何產生量身打造的最佳做法

我們會透過飽和加速器,以毫秒為單位測量每個輸出權杖的正規化時間 (NTPOT) 的延遲時間,並以每秒輸出權杖數為單位測量輸送量。如要進一步瞭解這些成效指標,請參閱「關於 GKE 上的模型推論」。

以下延遲設定檔範例說明瞭輸送量達到平穩狀態的轉折點 (綠色)、延遲惡化的轉折點後狀態 (紅色),以及在延遲目標下達到最佳輸送量的理想區域 (藍色)。Inference Quickstart 會提供這個理想區域的效能資料和設定。

延遲設定檔,綠色標記代表每秒輸出少於 2000 個權杖,紅色標記代表每秒輸出超過 2000 個權杖

Inference Quickstart 會根據推論應用程式的延遲時間需求,找出合適的組合,並在延遲時間與輸送量曲線中,找出最佳運作點。這個點會設定水平 Pod 自動配置器 (HPA) 門檻,並提供緩衝區來因應擴充延遲。整體閾值也會提供所需副本的初始數量,但 HPA 會根據工作負載動態調整這個數量。

基準化

提供的設定和成效資料是以基準為準,這些基準使用 ShareGPT 資料集傳送流量,並採用下列輸入和輸出分配方式。

輸入權杖 輸出權杖
最小值 中位數 平均值 P90 第 99 個百分位數 最大值 最小值 中位數 平均值 P90 第 99 個百分位數 最大值
4 108 226 635 887 1024 1 132 195 488 778 1024

事前準備

開始之前,請確認你已完成下列工作:

  • 啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 如要使用 Google Cloud CLI 執行這項工作,請安裝初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update,取得最新版本。
  • 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。

  • 確認您已為 Google Cloud 專案啟用計費功能

  • 確認專案有足夠的加速器容量:

  • 如果還沒有,請產生 Hugging Face 存取權杖和對應的 Kubernetes Secret。如要建立包含 Hugging Face 權杖的 Kubernetes Secret,請執行下列指令:

    kubectl create secret generic hf-secret \
        --from-literal=hf_api_token=HUGGING_FACE_TOKEN \
        --namespace=NAMESPACE
    

    替換下列值:

    • HUGGING_FACE_TOKEN:您先前建立的 Hugging Face 權杖。
    • NAMESPACE:要部署模型伺服器的 Kubernetes 命名空間。
  • 部分模型可能還會要求您接受並簽署同意授權協議。

準備使用 GKE AI/ML 使用者介面

如果您使用 Google Cloud 控制台,也需要在專案中建立 Autopilot 叢集 (如果尚未建立)。按照「建立 Autopilot 叢集」一文中的指示操作。

準備使用指令列介面

如果您使用 gcloud CLI 執行 Inference Quickstart,也需要執行下列額外指令:

  1. 啟用 gkerecommender.googleapis.com API:

    gcloud services enable gkerecommender.googleapis.com
    
  2. 設定用於 API 呼叫的帳單配額專案:

    gcloud config set billing/quota_project PROJECT_ID
    
  3. 確認 gcloud CLI 版本至少為 526.0.0。如果沒有,請執行下列指令:

    gcloud components update
    

限制

開始使用 Inference Quickstart 之前,請注意下列限制:

  • Google Cloud 控制台模型部署僅支援部署至 Autopilot 叢集。
  • Inference Quickstart 不會為特定模型伺服器支援的所有模型提供設定檔。

查看模型推論的最佳化設定

本節說明如何使用 Google Cloud 控制台或指令列,產生及查看設定建議。

控制台

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

  2. 按一下「Deploy Models」(部署模型)
  3. 選取要查看的模型。系統會顯示「推論快速入門」支援的模型,並加上「最佳化」標記。

    • 如果您選取基礎模型,系統會開啟模型頁面。按一下「Deploy」(部署)。 您仍可在實際部署前修改設定。
    • 如果專案中沒有 Autopilot 叢集,系統會提示您建立。按照「建立 Autopilot 叢集」一文中的操作說明執行。 建立叢集後,返回 Google Cloud 控制台的 GKE AI/ML 頁面,選取模型。

    模型部署頁面會預先填入您選取的模型,以及建議的模型伺服器和加速器。您也可以設定延遲時間上限等設定。

  4. 如要查看含有建議設定的資訊清單,請按一下「查看 YAML」

gcloud

使用 gcloud alpha container ai profiles 指令探索及查看模型、模型伺服器、模型伺服器版本和加速器的最佳組合:

模型

如要探索及選取模型,請使用 models 選項。

  gcloud alpha container ai profiles models list

模型伺服器

如要探索感興趣模型的建議模型伺服器,請使用 model-servers 選項。例如:

  gcloud alpha container ai profiles model-servers list \
      --model=meta-llama/Meta-Llama-3-8B

輸出看起來類似以下內容:

  Supported model servers:
  -  vllm

伺服器版本

如要探索感興趣的模型伺服器支援版本,請使用 model-server-versions 選項。如果略過這個步驟,Inference Quickstart 會預設為最新版本。例如:

  gcloud alpha container ai profiles model-server-versions list \
      --model=meta-llama/Meta-Llama-3-8B \
      --model-server=vllm

輸出看起來類似以下內容:

  Supported model server versions:
  -  e92694b6fe264a85371317295bca6643508034ef
  -  v0.7.2

加速器

如要探索感興趣的模型和模型伺服器組合建議使用的加速器,請使用 accelerators 選項。例如:

  gcloud alpha container ai profiles accelerators list \
      --model=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
      --model-server-version=v0.7.2

輸出看起來類似以下內容:

  Supported accelerators:
  accelerator          | model                                   | model server | model server version                     | accelerator count | output tokens per second | ntpot ms
  ---------------------|-----------------------------------------|--------------|------------------------------------------|-------------------|--------------------------|---------
  nvidia-tesla-a100    | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm         | v0.7.2                                   | 1                 | 3357                     | 72
  nvidia-h100-80gb     | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm         | v0.7.2                                   | 1                 | 6934                     | 30

  For more details on each accelerator, use --format=yaml

輸出內容會傳回加速器類型清單,以及下列指標:

  • 處理量 (每秒輸出詞元數)
  • 每個輸出權杖的正規化時間 (NTPOT),以毫秒為單位

這些值代表在特定設定檔使用這類加速器時,輸送量停止增加,而延遲時間開始大幅增加 (即轉折點或飽和點) 時的觀察效能。如要進一步瞭解這些成效指標,請參閱「關於在 GKE 上進行模型推論」。

如需其他選項,請參閱 Google Cloud CLI 說明文件

選擇模型、模型伺服器、模型伺服器版本和加速器後,即可繼續建立部署資訊清單。

部署建議設定

本節說明如何使用 Google Cloud 主控台或指令列,產生及部署設定建議。

控制台

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

  2. 按一下「Deploy Models」(部署模型)
  3. 選取要部署的模型。系統會顯示「推論快速入門」支援的模型,並加上「最佳化」標記。

    • 如果您選取基礎模型,系統會開啟模型頁面。按一下「Deploy」(部署)。 您仍可在實際部署前修改設定。
    • 如果專案中沒有 Autopilot 叢集,系統會提示您建立。按照「建立 Autopilot 叢集」一文中的操作說明執行。 建立叢集後,返回 Google Cloud 控制台的 GKE AI/ML 頁面,選取模型。

    模型部署頁面會預先填入您選取的模型,以及建議的模型伺服器和加速器。您也可以設定延遲時間上限等設定。

  4. (選用) 如要查看含有建議設定的資訊清單,請按一下「查看 YAML」

  5. 如要部署採用建議設定的資訊清單,請按一下「部署」。 部署作業可能需要幾分鐘才能完成。

如要查看部署作業,請前往「Kubernetes Engine」>「Workloads」(工作負載) 頁面。

gcloud

  1. 產生資訊清單:在終端機中,使用 manifests 選項產生 Deployment、Service 和 PodMonitoring 資訊清單:

    gcloud alpha container ai profiles manifests create
    

    使用必要的 --model--model-server--accelerator-type 參數自訂資訊清單。

    您也可以選擇設定下列參數:

    • --target-ntpot-milliseconds:設定這個參數可指定 HPA 門檻。這個參數可讓您定義縮放門檻,將第 50 個四分位數的輸出權杖標準化時間 (NTPOT) 延遲時間維持在指定值以下。選擇的值必須高於加速器的最低延遲時間。如果指定的 NTPOT 值高於加速器的最長延遲時間,HPA 會設為最大輸送量。例如:

      gcloud alpha container ai profiles manifests create \
          --model=google/gemma-2-27b-it \
          --model-server=vllm \
          --model-server-version=v0.7.2 \
          --accelerator-type=nvidia-l4 \
          --target-ntpot-milliseconds=200
      
    • --model-server-version:模型伺服器版本。如未指定,則預設為最新版本。

    • --namespace:要部署資訊清單的命名空間。預設命名空間為「default」。

    • --output:有效值包括 manifestcommentsall。根據預設,這項參數會設為 all。您可以選擇只輸出用於部署工作負載的資訊清單,也可以選擇只輸出註解,以便查看啟用功能的指示。

    • --output-path:如果指定,輸出內容會儲存至提供的路徑,而不是列印至終端機,因此您可以在部署前編輯輸出內容。舉例來說,如果您想將資訊清單儲存為 YAML 檔案,可以搭配 --output=manifest 選項使用。例如:

      gcloud alpha container ai profiles manifests create \
          --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
          --model-server vllm \
          --accelerator-type=nvidia-tesla-a100 \
          --output=manifest \
          --output-path  /tmp/manifests.yaml
      

    如需其他選項,請參閱 Google Cloud CLI 說明文件

  2. 佈建基礎架構:按照這些佈建步驟操作,確保基礎架構設定正確無誤,可供模型部署、監控及擴充。

  3. 部署資訊清單:執行 kubectl apply 指令,並傳遞資訊清單的 YAML 檔案。例如:

    kubectl apply -f ./manifests.yaml
    

佈建基礎架構

請按照下列步驟操作,確保基礎架構已正確設定,可供模型部署、監控及擴充:

  1. 建立叢集:您可以在 GKE Autopilot 或 Standard 叢集上提供模型服務。建議您使用 Autopilot 叢集,享受全代管的 Kubernetes 體驗。如要選擇最適合工作負載的 GKE 作業模式,請參閱「選擇 GKE 作業模式」。

    如果沒有現有叢集,請按照下列步驟操作:

    Autopilot

    請按照這些操作說明建立 Autopilot 叢集。如果專案有足夠的配額,GKE 會根據部署資訊清單,佈建具有 GPU 或 TPU 容量的節點。

    標準

    1. 建立區域性地區性叢集。
    2. 建立具有適當加速器的節點集區。請根據所選加速器類型,按照下列步驟操作:

  2. (建議選用) 啟用可觀測性功能:在產生的資訊清單註解區段中,系統會提供其他指令來啟用建議的可觀測性功能。啟用這些功能可取得更多洞察資料,有助於監控工作負載和基礎架構的效能與狀態。

    以下是啟用可觀測性功能的指令範例:

    gcloud beta container clusters update $CLUSTER_NAME \
        --project=$PROJECT_ID \
        --location=$LOCATION \
        --enable-managed-prometheus \
        --logging=SYSTEM,WORKLOAD \
        --monitoring=SYSTEM,DEPLOYMENT,HPA,POD,DCGM \
        --auto-monitoring-scope=ALL
    

    詳情請參閱「監控推論工作負載」。

  3. (僅限 HPA) 部署指標轉接器:如果部署資訊清單中產生了 HPA 資源,則必須使用指標轉接器,例如自訂指標 Stackdriver 轉接器。指標介面卡可讓 HPA 存取使用 kube 外部指標 API 的模型伺服器指標。如要部署轉接程式,請參閱 GitHub 上的轉接程式說明文件

測試部署端點

如果您使用指令列部署資訊清單,部署的服務會公開至下列端點:

http://model-model_server-service:port/

測試服務。在另一個終端機中,執行下列指令來設定通訊埠轉送:

kubectl port-forward service/model-model_server-service 8000:8000

如需瞭解如何建構及傳送端點要求,請參閱 vLLM 說明文件。

監控推論工作負載

如要監控已部署的推論工作負載,請前往 Google Cloud 控制台的「指標探索器」

啟用自動監控功能

GKE 內建自動監控功能,屬於更廣泛的可觀測性功能。這項功能會掃描叢集,找出在支援的機型伺服器上執行的工作負載,並部署 PodMonitoring 資源,讓這些工作負載指標顯示在 Cloud Monitoring 中。如要進一步瞭解如何啟用及設定自動監控功能,請參閱「為工作負載設定自動應用程式監控功能」。

啟用這項功能後,GKE 會安裝預先建構的資訊主頁,用於監控支援的工作負載應用程式。

如果您從 Google Cloud 控制台的 GKE AI/ML 頁面部署,系統會使用 targetNtpot 設定,自動為您建立 PodMonitoring 和 HPA 資源。

疑難排解

  • 如果延遲時間設得太短,Inference Quickstart 可能無法產生建議。 如要修正這個問題,請選取介於所選加速器最低和最高延遲時間之間的延遲時間目標。
  • 推論快速入門導覽課程獨立於 GKE 元件,因此叢集版本與使用這項服務沒有直接關係。不過,建議您使用全新或最新的叢集,以免成效出現差異。
  • 如果 gkerecommender.googleapis.com 指令出現 PERMISSION_DENIED 錯誤,指出缺少配額專案,您必須手動設定。請執行 gcloud config set billing/quota_project PROJECT_ID 修正這個問題。

後續步驟