本教學課程說明如何使用單一主機 TPU7x (Ironwood) 加速器和 vLLM TPU 服務框架搭配 TorchTPU (torchtpu),在 Google Kubernetes Engine (GKE) 部署及提供專家混合模型 Qwen3.5-397B (Qwen/Qwen3.5-397B-A17B-FP8)。Qwen3.5-397B 至少需要四個 TPU7x 晶片,因此您可以在啟用資料平行處理和專家平行處理的 2x2x1 拓撲中,在單一 tpu7x-standard-4t 節點上執行工作負載。
目標
- 設定 GKE 叢集和單主機 TPU7x 節點集區。
- 在 GKE 部署單一主機 vLLM TorchTPU 伺服器。
- 向 vLLM TorchTPU 伺服器傳送推論要求。
- 執行推論基準測試工作負載。
- 清除所用資源。
費用
在本文件中,您會使用下列Google Cloud計費元件:
您可以使用 Pricing Calculator 根據預測用量估算費用。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」一節。
事前準備
您需要 Hugging Face 存取權杖,才能使用本教學課程。您可以前往 Hugging Face 註冊免費帳戶。擁有帳戶後,請產生存取權杖:
在 Google Cloud 專案中啟用 Kubernetes Engine API:
在 Google Cloud 專案中啟用 Artifact Registry API:
安裝並初始化 Google Cloud CLI,然後安裝
kubectl。如果使用 Cloud Shell,這兩項工具都已預先安裝。確認專案在 TPU 容量所在區域有足夠的 SSD 配額和外部 IP 位址配額:
在 Google Cloud 控制台,前往「Quotas & System Limits」(配額與系統限制) 頁面。
依「Persistent Disk SSD (GB)」篩選,確認模型快取磁碟區至少有 1,500 GB 的可用配額。
依「使用中的區域性外部 IPv4 位址」篩選,確認目標區域有足夠的 IP 位址配額。
如要取得完成本教學課程所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
- Kubernetes Engine 管理員 (
roles/container.admin) - Compute 管理員 (
roles/compute.admin) - 服務帳戶使用者 (
roles/iam.serviceAccountUser)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定環境變數
設定驗證機制:
設定環境變數:
更改下列內容:
YOUR_PROJECT_ID: Google Cloud專案的 ID。YOUR_REGION:要部署叢集的區域,例如us-central1。YOUR_ZONE:要部署 TPU7x 節點集區的可用區,例如us-central1-c。YOUR_CLUSTER_NAME:GKE 叢集的名稱,例如tpu7x-tutorial-cluster。YOUR_RESERVATION_NAME:如果使用預留項目,請提供 TPU7x 預留項目的名稱。YOUR_HF_TOKEN:您的 Hugging Face 存取權杖。YOUR_NETWORK_NAME:Google Cloud 網路的名稱。如果您建立了自訂網路,請指定該網路。否則,請指定default。YOUR_SUBNETWORK_NAME:Google Cloud 子網路的名稱。如果您建立了自訂子網路,請指定該子網路。否則,請指定default。YOUR_VLLM_TPU_IMAGE:要使用的 vLLM TorchTPU 映像檔。如要查看公開映像檔,請參閱 vLLM TorchTPU 存放區。
建立 GKE 叢集
如要以標準模式建立 GKE 叢集,並連結單一主機 TPU7x 節點集區,請完成下列步驟:
建立區域性 GKE 叢集:
輸出結果會與下列內容相似:
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS tpu7x-tutorial-cluster us-central1 1.35.7-gke.1027000 34.63.222.246 n2-standard-16 1.35.7-gke.1027000 3 RUNNING使用預留項目,建立含有一個
tpu7x-standard-4t節點 (2x2x1拓撲中的四個 TPU7x 晶片) 的單主機 TPU7x 節點集區:除了使用特定預留項目,您也可以傳遞下列旗標,使用 Spot 容量或彈性啟動型 VM 建立節點集區:
- Spot VM:將
--reservation-affinity和--reservation旗標替換為--spot,即可使用 Spot 容量。節點集區建立後,使用 Spot 容量的執行個體可能需要一段時間才能建立,且在工作負載執行期間可能會遭到先占。如果 Pod 需要一段時間才能建立,或工作負載在執行期間停止,可能就是這個原因。 - 彈性啟動型 VM:傳遞
--flex-start旗標,使用彈性啟動用量選項佈建節點集區。詳情請參閱「使用 TPU 和彈性啟動型 VM 執行小型批次工作負載」。
輸出結果會與下列內容相似:
NAME MACHINE_TYPE DISK_SIZE_GB NODE_VERSION np-0 tpu7x-standard-4t 100 1.35.7-gke.1027000- Spot VM:將
設定
kubectl憑證,以便與叢集通訊:
設定憑證
建立名為 hf-secret 的 Kubernetes Secret,用於儲存 Hugging Face 存取權杖:
部署 vLLM TorchTPU 伺服器
工作負載資訊清單 (qwen3_5_server.yaml) 定義下列資源:
- StorageClass (
hyperdisk-balanced-qwen3-5) 和 1,500 GiB PersistentVolumeClaim (hd-claim-qwen3-5),由 Google Cloud Hyperdisk Balanced 儲存空間支援,用於儲存下載的模型權重、XLA 編譯快取和 PyTorch 編譯快取。 - 在單一 TPU7x 節點上排定的 Deployment (
vllm-qwen3-5),具有2x2x1拓撲 (google.com/tpu: '4')。容器會執行vllm serve,持續Qwen/Qwen3.5-397B-A17B-FP8,並使用--data-parallel-size=8、--tensor-parallel-size=1、--enable-expert-parallel、--kv-cache-dtype=fp8、--max-model-len=9236和--max-num-seqs=64。 - 公開通訊埠
8000的ClusterIPService (vllm-qwen3-5-service)。
如要部署及監控工作負載,請完成下列步驟:
擷取伺服器資訊清單:
或者,您也可以選擇建立名為
qwen3_5_server.yaml的檔案,並加入下列內容:將 vLLM TorchTPU 伺服器資訊清單套用至叢集:
監控伺服器部署記錄,直到應用程式啟動完成:
Pod 下載模型權重並編譯模型時,初始服務啟動作業可能需要約 20 到 30 分鐘。
如果您使用 Spot 或彈性啟動等先占式運算資源,建立節點集區後,可能需要較長時間才能建立 TPU 切片節點,而且這些節點可能會在工作負載執行期間遭到先占。如果 Pod 啟動時間比預期長,或工作負載中途停止,可能就是這個原因。詳情請參閱「Spot VM 先占」。如要確認 TPU 切片節點是否已建立,請參閱「查看節點的狀態和條件」。
請等到記錄回報
Application startup complete後,再傳送流量:(APIServer pid=1) INFO: Started server process [1] (APIServer pid=1) INFO: Waiting for application startup. (APIServer pid=1) INFO: Application startup complete.開啟第二個終端機工作階段。
在第二個終端機工作階段中,將本機通訊埠
8000轉送至vllm-qwen3-5-service:在這個終端機工作階段中,讓通訊埠轉送功能保持運作。
傳送推論要求
返回第一個終端機工作階段,並向 /v1/chat/completions 端點傳送對話完成要求:
執行基準工作負載
如要使用 InferenceX 基準套件,以 8,192 個輸入詞元和 1,024 個輸出詞元 (8k/1k) 的工作負載,對已部署的 Qwen3.5 397B 模型進行基準測試,請完成下列步驟:
擷取基準測試資訊清單:
或者,您也可以建立名為
qwen3_5-benchmark-8k1k.yaml的檔案,並在當中加入下列內容:套用基準測試 Pod 資訊清單:
監控基準測試記錄:
基準測試約需 25 到 30 分鐘才能完成。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶持續收取本教學課程所用資源的額外費用,請刪除 Kubernetes 工作負載、TPU 節點集區和 GKE 叢集:
刪除 vLLM TorchTPU 伺服器 Deployment、Service、PersistentVolumeClaim 和基準測試 Pod:
刪除 TPU7x 節點集區和 GKE 叢集:
後續步驟
- 進一步瞭解 Cloud TPU 上的 vLLM。
- 進一步瞭解 TPU7x (Ironwood)。
- 進一步瞭解 Cloud TPU。