本教學課程提供逐步指南,說明如何使用 Cloud TPU 上的 MaxText,對 Qwen3-14b 模型執行監督式微調 (SFT)。您將瞭解如何建構專用容器映像檔、使用 Accelerated Processing Kit (XPK),透過 Pathways 佈建 Google Kubernetes Engine (GKE) 叢集,以及執行多主機訓練工作負載。
目標
- 瞭解如何建構自訂 MaxText 容器映像檔,並針對訓練後作業進行最佳化。
- 使用 XPK 佈建 GKE 叢集,並啟用 Pathways。
- 將 Qwen3 14b 模型從 Hugging Face 格式轉換為 MaxText 格式。
- 在 Cloud TPU 上執行多主機 SFT 訓練工作負載。
- 將微調模型轉換回 Hugging Face 格式,以供使用。
費用
在本文件中,您會使用下列 Google Cloud的計費元件:
- Google Kubernetes Engine
- Cloud TPU
- Cloud Storage
- Artifact Registry
- Compute Engine, for the temporary build virtual machine (VM)
如要根據預測用量估算費用,請使用 Pricing Calculator。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」。
事前準備
- 確認使用者帳戶或服務帳戶具備下列角色:
roles/compute.admin,建立建構 VMroles/artifactregistry.admin,管理 Docker 存放區roles/storage.admin,管理資料 bucketroles/container.admin,建立及管理 Google Kubernetes Engine 叢集roles/iam.serviceAccountAdmin,建立工作負載服務帳戶roles/resourcemanager.projectIamAdmin,設定身分與存取權管理 (IAM) 政策roles/iam.serviceAccountUser,以服務帳戶身分執行動作
- 安裝並初始化 Google Cloud CLI。
- 確認工作站已安裝 Python 3.12 以上版本。
如要使用本教學課程,您需要 Hugging Face 存取權杖。您可以在 Hugging Face 申請免費帳戶。擁有帳戶後,請產生存取權杖:
設定環境
執行下列指令碼,設定環境變數:
更改下列內容:
- YOUR_PROJECT_ID:您的 Google Cloud 專案 ID
- YOUR_REGION:要使用的區域
- YOUR_ZONE:要使用的可用區
- YOUR_CLUSTER_NAME:Google Kubernetes Engine 叢集的名稱
- YOUR_GCS_BUCKET:Cloud Storage bucket 的專屬名稱
- YOUR_RESERVATION_NAME:運算資源預留項目
- YOUR_HF_TOKEN:您的 Hugging Face 存取權杖
準備 MaxText 容器映像檔
如要準備 MaxText 容器映像檔 (包括安裝必要依附元件),請完成下列步驟:
建立 Cloud Storage bucket:
建立 Artifact Registry 存放區:
在存放區的根目錄中建立名為
cloudbuild.yaml的檔案,並加入以下內容:使用 Cloud Build 建構 MaxText Docker 映像檔:
建立 Google Kubernetes Engine 叢集
如要在 Qwen3 14b 模型上執行 SFT 訓練,您需要配備 TPU 晶片的 Google Kubernetes Engine 叢集。安裝 Accelerated Processing Kit (XPK),並建立支援 Pathways 的 GKE 叢集。
準備訓練模型
使用 CPU 型工作負載,將基礎模型轉換為 MaxText 格式。請勿在多部機器上並行執行這項工作。下列指令包含檢查,確保轉換只在一個 TPU 節點上執行。
追蹤模型轉換進度
如要追蹤轉換進度,請按照下列步驟操作:
- 如要列出 GKE 叢集上排定的 Pod,請執行
kubectl get pod指令。 - 找出名為
qwen-hf-to-mt-slice-job-0-0-HASH的 Pod。 - 如要即時檢查 Pod 的輸出內容,請執行
kubectl logs -f POD_NAME指令。
開始訓練工作負載
轉換程序完成後,您可以使用 XPK 啟動 SFT 微調工作負載。
監控訓練工作負載
使用 XPK 指令列介面 (CLI) 監控工作負載狀態。
xpk workload list --cluster ${CLUSTER_NAME} --project ${PROJECT} --zone ${ZONE}
如要查看記錄和 TPU 使用率,請使用 Google Cloud 控制台。您也可以執行下列指令來查看記錄:
kubectl logs -f qwen-training-pathways-head-0-0-HASH
將 HASH 替換為 Pod 名稱中的數字雜湊。如要驗證這個雜湊值,請執行 kubectl get pod 指令,並檢查傳回的 Pod 清單。
將訓練好的模型轉換回 Hugging Face 格式
訓練工作負載完成後,請將檢查點轉換回 Hugging Face 格式。
如要追蹤轉換進度,請執行 kubectl logs -f qwen-mt-to-hf-slice-job-0-0-HASH 指令,並將 HASH 替換為 Pod 名稱中的數字雜湊。
轉換完成後,儲存在 gs://$GCS_BUCKET/qwen-3-14b/hf-trained/ 中的調整後模型即可使用。
清除所用資源
為避免產生額外費用,請刪除本教學課程中建立的資源,包括 Google Kubernetes Engine 叢集、Cloud Storage 值區和 Artifact Registry 存放區。
如要刪除您為本教學課程建立的資源,請執行下列指令:
後續步驟
- 如要進一步瞭解 Cloud TPU,請參閱「Cloud TPU 簡介」。
- 如要瞭解
v6e-32TPU 的架構和設定詳情,請參閱 TPU v6e。