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

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

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

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

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

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

Inference Quickstart 可讓您分析推論工作負載的效能和成本效益,並根據資料做出資源分配和模型部署策略的決策。

使用 Inference Quickstart 的高階步驟如下:

  1. 分析效能和成本:使用 gcloud container ai profiles list 指令探索可用設定,並根據效能和成本需求進行篩選。如要查看特定設定的完整基準化資料集,請使用 gcloud container ai profiles benchmarks list 指令。這項指令可協助您根據特定效能需求,找出最具成本效益的硬體。

    此外,您也可以根據工作負載特徵 (例如用途和輸入/輸出大小) 和服務堆疊,篩選推論快速入門建議。供應堆疊是整套技術,用於代管模型、處理推論,以及將使用者要求路徑導向預測結果。舉例來說,llm-d 服務堆疊會使用 vLLM 做為基礎模型伺服器,並在核心推論引擎上新增自動化調度管理和路徑設定層。

  2. 部署資訊清單:分析完成後,您可以產生最佳化的 Kubernetes 資訊清單並加以部署。您可以選擇啟用儲存空間和自動調度資源最佳化功能。您可以從 Google Cloud 控制台部署,也可以使用 kubectl apply 指令部署。部署前,請務必確認 Google Cloud 專案中選取的 GPU 或 TPU 有足夠的加速器配額。

  3. (選用) 執行自己的基準測試: Inference Quickstart 提供的設定和效能資料,是以 inference-perf 工具產生的基準測試為依據。 由於工作負載的效能可能與這個基準不同,建議您使用 inference-perf 工具,以最能代表您用途的資料集評估模型效能。

優點

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

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

運作方式

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

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

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

以下延遲時間設定檔範例說明處理量趨於穩定的轉折點 (綠色)、轉折點後延遲時間增加的時間點 (紅色),以及在目標延遲時間內達到最佳處理量的理想區域 (藍色)。Inference Quickstart 會提供這個理想區域的效能資料和設定。

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

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

費用估算

Inference Quickstart 會使用可設定的輸出與輸入成本比率,預估加速器 VM 的每權杖費用。舉例來說,如果將這個比率設為 4,系統會假設每個輸出權杖的費用是輸入權杖的四倍。下列方程式可用於計算每權杖成本指標:

\[ \$/\text{output token} = \frac{\text{GPU \$/s}}{(\frac{1}{\text{output-to-input-cost-ratio}} \cdot \text{input tokens/s} + \text{output tokens/s})} \]

其中

\[ \$/\text{input token} = \frac{\text{\$/output token}}{\text{output-to-input-cost-ratio}} \]

基準化

提供的設定和成效資料是根據 inference-perf 工具產生的基準,用來傳送流量,輸入和輸出分配如下。

輸入權杖 輸出權杖
最小值 中位數 平均值 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 指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。
  • 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。

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

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

準備使用 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 版本至少為 536.0.1。如果沒有,請執行下列指令:

    gcloud components update
    

限制

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

  • Google Cloud 控制台模型部署僅支援部署至 Autopilot 叢集。
  • Inference Quickstart 不會為特定模型伺服器支援的所有模型提供設定檔。
  • 如果您使用從 Hugging Face 產生的大型模型 (90 GiB 以上) 資訊清單,但未設定 HF_HOME 環境變數,則必須使用開機磁碟大於預設值的叢集,或修改資訊清單,將 HF_HOME 設為 /dev/shm/hf_cache。這會使用 RAM 做為快取,而不是節點的開機磁碟。詳情請參閱「疑難排解」一節。
  • 如要從 Cloud Storage 載入模型,必須使用 Workload Identity Federation for GKE。所有 TPU 工作負載也需要 Cloud Storage FUSE CSI 驅動程式,且特定模型伺服器版本 (早於 v0.11.1) 也需要這個驅動程式做為備援。Autopilot 叢集預設會啟用 Workload Identity Federation for GKE 和 Cloud Storage FUSE CSI 驅動程式。詳情請參閱「為 GKE 設定 Cloud Storage FUSE CSI 驅動程式」。

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

本節說明如何使用 Google Cloud CLI 探索及分析設定建議。

使用 gcloud container ai profiles 指令探索及分析最佳化設定檔 (模型、模型伺服器、模型伺服器版本和加速器的組合):

模型

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

  gcloud container ai profiles models list

設定檔

使用 list 指令探索產生的設定檔,並根據成效和費用需求進行篩選。例如:

gcloud container ai profiles list \
    --model=openai/gpt-oss-20b \
    --pricing-model=on-demand \
    --target-ttft-milliseconds=300

輸出內容會顯示支援的設定檔,以及輸送量、延遲時間和每百萬個權杖的費用等成效指標。類似以下範例:

  Instance Type Accelerator      Cost/M Input Tokens Cost/M Output Tokens Output Tokens/s NTPOT(ms) TTFT(ms) Model Server Model Server Version Model
  a3-highgpu-1g nvidia-h100-80gb 0.009               0.035                13335           67        297      vllm         gptoss               openai/gpt-oss-20b

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

如需可設定的完整旗標清單,請參閱 list 指令說明文件。

所有價格資訊均以美元計價,且預設為 us-east5 區域,但使用 A3 機器時,預設為 us-central1 區域。

基準

如要取得特定設定檔的所有基準化資料,請使用 benchmarks list 指令。

例如:

gcloud container ai profiles benchmarks list \
    --model=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
    --model-server=vllm

輸出內容包含在不同要求速率下執行的基準測試所產生的效能指標清單。

這個指令會以 CSV 格式顯示輸出內容。如要將輸出內容儲存為檔案,請使用輸出重新導向。例如 gcloud container ai profiles benchmarks list > profiles.csv

如需可設定的完整旗標清單,請參閱 benchmarks list 指令說明文件。

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

依用途查看建議

推論快速入門指南提供各種用途的建議,代表常見的 AI/機器學習工作負載。這些用途的特徵是根據實際客戶工作負載,輸入和輸出權杖長度範圍有所不同,這可能會影響基礎推論服務堆疊的效能。

下表摘要說明可用的用途和特性:

用途 輸入內容詞元 輸出內容詞元 比率 說明
進階客戶服務 8,192 256 32:1 提供全面整合的答案,解決複雜的顧客問題,擴大支援作業規模並提升使用者滿意度。
完成程式碼 512 32 16:1 自動建議及完成程式碼,加快軟體開發速度。
文字摘要 1,024 128 8:1 將長篇文件、文章或對話濃縮成簡潔的摘要。
聊天機器人 (ShareGPT) 128 128 1:1 提供即時對話式輔助功能,回答問題、執行工作或提供指引。
文字生成 512 2,048 1:4 自動建立新的書面內容,包括撰寫電子郵件和報告,以及生成創意故事。
Deep Research 256 4,096 1:16 分析及整合大量資料,找出特定資訊、識別模式及發掘洞察資訊,以利進行詳細調查和研究。

如要查看 Inference Quickstart 支援的完整用途清單,請使用 gcloud container ai profiles use-cases list 指令。

如要依用途篩選建議,請使用 --use-case 旗標。建立資訊清單時,如未指定此旗標,系統會預設為 Chatbot

例如:

gcloud container ai profiles list \
    --use-case="Text Summarization"

部署建議設定

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

控制台

  1. 前往 Google Cloud 控制台的 GKE AI/ML 頁面。

    開啟 GKE AI/機器學習頁面

  2. 按一下「Deploy Models」(部署模型)
  3. 選取要部署的模型。Inference Quickstart 支援的模型會顯示「已最佳化」標記。

    • 如果您選取基礎模型,系統會開啟模型頁面。按一下「Deploy」(部署)。 實際部署前,您仍可修改設定。
    • 如果專案中沒有 Autopilot 叢集,系統會提示您建立一個。按照「建立 Autopilot 叢集」一文中的指示操作。 建立叢集後,返回 Google Cloud 控制台的 GKE AI/ML 頁面,選取模型。
    • 如要部署 Gemma 或 Llama 等設有存取限制的模型,您必須先建立 Hugging Face 權杖,並將其新增為 Kubernetes Secret。否則可能會引發 "Does not have minimum availability" 錯誤,導致無法建立部署作業。如需詳細操作說明,請開啟本說明文件頁面中的「gcloud」gcloud分頁。

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

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

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

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

gcloud

  1. 準備從模型登錄檔載入模型:推論快速入門支援從 Hugging Face 或 Cloud Storage 載入模型。

    Hugging Face

    如果沒有,請產生 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 命名空間。

    部分模型可能還會要求您接受並簽署同意授權協議。

    Cloud Storage

    您可以透過經過調整的 Cloud Storage FUSE 設定,從 Cloud Storage 載入支援的模型。如要這麼做,請先將 Hugging Face 的模型載入至 Cloud Storage bucket。

    您可以部署這個 Kubernetes Job 來轉移模型,並將 MODEL_ID 變更為 Inference Quickstart 支援的模型。

  2. 產生資訊清單:您可以透過下列方式產生資訊清單:

    • 基本設定:產生標準 Kubernetes Deployment、Service 和 PodMonitoring 資訊清單,用於部署單一副本推論伺服器。
    • (選用) 儲存空間最佳化設定:產生適合載入 Cloud Storage 的資訊清單。這個設定會優先使用 Run:ai Model Streamer,在支援的 vLLM 版本上提升效能,同時針對舊版使用經過調整的 Cloud Storage FUSE 設定。如要啟用這項設定,請使用 --model-bucket-uri 旗標。這些最佳化措施可將 LLM Pod 啟動時間縮短 7 倍以上。
    • (選用) 自動調度資源最佳化設定:產生含有水平 Pod 自動調度資源 (HPA) 的資訊清單,根據流量自動調整模型伺服器副本數量。如要啟用這項設定,請使用 --target-ntpot-milliseconds 等旗標指定延遲目標。

    基礎設定

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

    gcloud container ai profiles manifests create
    

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

    您也可以視需要設定下列參數:

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

      gcloud 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
      
    • --target-ttft-milliseconds:目標首次權杖時間 (TTFT),以毫秒為單位。如果設定此值,資訊清單會包含 Horizontal Pod Autoscaler (HPA) 資源,確保 p50 TTFT 低於指定門檻。

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

      gcloud 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
      
      • --target-itl-milliseconds:目標權杖間延遲 (ITL),以毫秒為單位。如果設定此值,資訊清單會包含 Horizontal Pod Autoscaler (HPA) 資源,確保 p50 ITL 低於指定門檻。
      • --use-case:資訊清單會針對這個用途進行最佳化。如未指定,這項旗標預設為 Chatbot。詳情請參閱「依用途查看最佳化建議」。

    如需可設定的完整旗標清單,請參閱 manifests create 指令說明文件。

    儲存空間最佳化

    從 Cloud Storage 載入模型,可縮短 Pod 啟動時間。Inference Quickstart 會自動為您的設定選取效能最高的儲存空間後端:

    • Run:ai Model Streamer:串流解決方案,適用於 GPU 的 vLLM 0.11.1 以上版本,以及 TPU 的 0.14.0 以上版本。
    • Cloud Storage FUSE CSI 驅動程式:標準儲存空間最佳化功能,適用於 0.11.1 之前的 vLLM 版本和其他模型伺服器。

    從 Cloud Storage 載入資料時,必須使用 GKE 1.29.6-gke.1254000、1.30.2-gke.1394000 以上版本

    詳細步驟如下:

    1. 將模型從 Hugging Face 存放區載入 Cloud Storage bucket
    2. 產生資訊清單時,請設定 --model-bucket-uri 標記。 這會設定模型,從 Cloud Storage bucket 載入。 對於支援的 vLLM 版本,模型會自動使用高效能的 Run:ai Model Streamer,其他版本則會改用 Cloud Storage FUSE CSI 驅動程式。URI 必須指向包含模型 config.json 檔案和權重的路徑。如要指定值區內的目錄路徑,請將該路徑附加至值區 URI。

      例如:

      gcloud container ai profiles manifests create \
          --model=openai/gpt-oss-120b \
          --model-server=vllm \
          --model-server-version=v0.11.2 \
          --accelerator-type=nvidia-h100-80gb \
          --model-bucket-uri=gs://BUCKET_NAME \
          --output-path=manifests.yaml
      

      請將 BUCKET_NAME 改成您 Cloud Storage 值區的名稱。

    3. 套用資訊清單前,請務必執行資訊清單註解中的 gcloud storage buckets add-iam-policy-binding 指令。這個指令是必要步驟,可授予 GKE 服務帳戶權限,透過 Workload Identity Federation for GKE 存取 Cloud Storage bucket。

      如果打算將 Deployment 擴充至 TPU 上的多個副本,請務必選擇下列其中一個選項,避免同時寫入 XLA 快取路徑 (VLLM_XLA_CACHE_PATH) 時發生錯誤:

      • 方法 1 (建議):首先,將 Deployment 擴充至 1 個副本。等待 Pod 準備就緒,即可寫入 XLA 快取。然後將副本數量調高至所需數量。後續的副本會從已填入的快取讀取資料,不會發生寫入衝突。
      • 方法 2:從資訊清單中完全移除 VLLM_XLA_CACHE_PATH 環境變數。這種做法較簡單,但會停用所有副本的快取。

      在 TPU 加速器類型上,這個快取路徑用於儲存 XLA 編譯快取,可加快模型準備作業,以利重複部署。

    如需更多提升效能的提示,請參閱「針對 GKE 效能最佳化 Cloud Storage FUSE CSI 驅動程式」。

    自動調度資源最佳化

    您可以設定水平 Pod 自動調度器 (HPA),根據負載自動調整模型伺服器副本數量。這有助於模型伺服器視需要調度資源,有效處理不同負載。HPA 設定遵循 GPUTPU 指南的自動調整最佳做法。

    如要在產生資訊清單時加入 HPA 設定,請使用 --target-ntpot-milliseconds--target-ttft-milliseconds 旗標。這些參數會定義 HPA 的縮放門檻,讓 NTPOT 或 TTFT 的 P50 延遲時間低於指定值。如果您只設定其中一個旗標,系統只會將該指標納入調度資源考量。

    選擇的值必須高於加速器的最低延遲時間。如果指定的值高於加速器的延遲時間上限,HPA 會設定為最大輸送量。

    例如:

    gcloud container ai profiles manifests create \
        --model=google/gemma-2-27b-it \
        --accelerator-type=nvidia-l4 \
        --target-ntpot-milliseconds=250
    
  3. 建立叢集:您可以在 GKE Autopilot 或標準叢集上提供模型服務。建議您使用 Autopilot 叢集,享有全代管 Kubernetes 體驗。如要選擇最適合工作負載的 GKE 作業模式,請參閱「選擇 GKE 作業模式」。

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

    Autopilot

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

    標準

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

  4. (建議選用) 啟用可觀測性功能:在產生的資訊清單註解部分,系統會提供額外指令,啟用建議的可觀測性功能。啟用這些功能後,您就能取得更多洞察資訊,監控工作負載和基礎架構的效能與狀態。

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

    gcloud 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
    

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

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

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

    kubectl apply -f ./manifests.yaml
    

為 llm-d 服務堆疊部署建議的設定

llm-d 是 Kubernetes 原生的分散式推論服務堆疊,提供經過測試和基準化的「明確路徑」,協助您大規模提供大型生成式 AI 模型,同時維持高效能。詳情請參閱 llm-d 說明文件

如要使用 Inference Quickstart,為 llm-d 服務堆疊產生及部署建議設定,請使用 --serving-stack 旗標,並將值設為 llm-d。例如:

gcloud container ai profiles manifests create \
    --accelerator-type=nvidia-h100-80gb \
    --model=openai/gpt-oss-120b \
    --model-server=vllm \
    --serving-stack=llm-d \
    --use-case 'Multi Agent Large Document Summarization'

請檢查 manifests create 輸出內容,瞭解其他叢集建立和依附元件安裝說明,以便正確設定 llm-d 環境。

測試部署端點

部署資訊清單後,服務會公開在 http://SERVICE_NAME:8000,其中 SERVICE_NAME 是部署作業的名稱。

如要確認服務名稱,可以列出命名空間中的服務 (例如 default):

kubectl get services --namespace NAMESPACE

如要測試部署作業,請使用 kubectl port-forward 指令將本機通訊埠轉送至服務通訊埠。在另一個終端機中,執行下列指令:

kubectl port-forward service/SERVICE_NAME 8000:8000

然後就能傳送要求到「http://localhost:8000」。如需如何建構及傳送要求至端點的範例,請參閱 vLLM 說明文件。

資訊清單版本管理

推論快速入門導覽課程提供最新資訊清單,這些資訊清單已在近期的 GKE 叢集版本上經過驗證。系統可能會隨時間變更為設定檔傳回的資訊清單,以便在部署時提供最佳化設定。如需穩定版資訊清單,請另行儲存。

資訊清單包含註解和 recommender.ai.gke.io/version 註解,格式如下:

# Generated on DATE using:
# GKE cluster CLUSTER_VERSION
# GPU_DRIVER_VERSION GPU driver for node version NODE_VERSION
# Model server MODEL_SERVER MODEL_SERVER_VERSION

先前的註解具有下列值:

  • DATE:產生資訊清單的日期。
  • CLUSTER_VERSION:用於驗證的 GKE 叢集版本。
  • NODE_VERSION:用於驗證的 GKE 節點版本。
  • GPU_DRIVER_VERSION:(僅限 GPU) 用於驗證的 GPU 驅動程式版本。
  • MODEL_SERVER:資訊清單中使用的模型伺服器。
  • MODEL_SERVER_VERSION:資訊清單中使用的模型伺服器版本。

監控推論工作負載

如要監控已部署的推論工作負載,請前往 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 修正這個問題。

臨時儲存空間不足,因此 Pod 已遭驅逐

從 Hugging Face 部署大型模型 (90 GiB 以上) 時,Pod 可能會遭到逐出,並顯示類似以下的錯誤訊息:

Fails because inference server consumes too much ephemeral storage, and gets evicted low resources:  Warning  Evicted              3m24s                   kubelet                                The node was low on resource: ephemeral-storage. Threshold quantity: 10120387530, available: 303108Ki. Container inference-server was using 92343412Ki, request is 0, has larger consumption of ephemeral-storage..,

發生這個錯誤是因為模型會快取在節點的開機磁碟上,這是一種暫時性儲存空間。如果部署資訊清單未將 HF_HOME 環境變數設為節點 RAM 中的目錄,系統就會使用開機磁碟做為暫時性儲存空間。

  • 根據預設,GKE 節點的開機磁碟為 100 GiB。
  • GKE 會保留 10% 的開機磁碟空間做為系統負荷,因此工作負載可用的空間為 90 GiB。
  • 如果模型大小為 90 GiB 以上,且在預設大小的開機磁碟上執行,kubelet 會撤銷 Pod,以釋出臨時儲存空間。

如要解決這個問題,請選擇下列任一做法:

  • 使用 RAM 進行模型快取:在部署資訊清單中,將 HF_HOME 環境變數設為 /dev/shm/hf_cache。這會使用節點的 RAM 快取模型,而不是開機磁碟。
  • 增加開機磁碟大小

從 Cloud Storage 載入模型時,Pod 會進入當機迴圈

使用 --model-bucket-uri 標記產生的資訊清單部署後,Deployment 可能會停滯,Pod 則會進入 CrashLoopBackOff 狀態。檢查 inference-server 容器的記錄時,可能會看到誤導性錯誤,例如 huggingface_hub.errors.HFValidationError。例如:

huggingface_hub.errors.HFValidationError: Repo id must use alphanumeric chars or '-', '_', '.', '--' and '..' are forbidden, '-' and '.' cannot start or end the name, max length is 96: '/data'.

如果 --model-bucket-uri 旗標中提供的 Cloud Storage 路徑有誤,通常就會發生這個錯誤。推論伺服器 (例如 vLLM) 無法在掛接路徑中找到必要模型檔案 (例如 config.json)。如果找不到本機檔案,伺服器會改為假設路徑是 Hugging Face Hub 存放區 ID。由於路徑不是有效的存放區 ID,伺服器會因驗證錯誤而失敗,並進入當機迴圈。

如要解決這個問題,請確認您提供給 --model-bucket-uri 標記的路徑指向 Cloud Storage bucket 中的確切目錄,該目錄包含模型的 config.json 檔案和所有相關聯的模型權重。

後續步驟