本教學課程說明如何使用 MaxText 和 Cluster Toolkit,在 Tensor Processing Unit (TPU) v6e-32 叢集上執行多主機強化學習 (RL) 訓練。您可以使用 Cluster Toolkit 執行多主機訓練工作負載,並將結果匯出回 Hugging Face 格式,以便提供服務。
工作負載摘要
在 Cloud TPU 和 GKE 上執行這項 RL 後訓練工作負載,涉及下列元件:
- 模型:Gemma 4 26B A4B Instruct (
google/gemma-4-26b-a4b-it),這是先進的開放權重指令調整模型,在本教學課程中,模型權重會從 Hugging Face 下載,轉換為 MaxText 相容格式,並部署至採用 Cloud TPU v6e 基礎架構的 GKE 叢集。 - 增強學習 (RL) 演算法:使用 MaxText 和 Pathways 的群組相對策略最佳化 (GRPO)。這項工作負載會使用 MaxText 內建的強化學習訓練器 (
maxtext.trainers.post_train.rl.train_rl),搭配 vLLM 取樣器後端,執行可擴充的後訓練管道。GRPO 會為每個提示生成一組輸出內容,並評估相對獎勵,不需使用獨立的評論模型,即可最佳化政策。 - 資料集和範本:OpenMathInstruct-2 (
openmathinstruct2_rl.json),這是大規模的數學指令微調資料集。在強化學習推出階段,工作負載會使用結構化對話範本,強化多步驟數學推論能力。 - 基礎架構和框架:GKE,使用 Cluster Toolkit 管理,在 Cloud TPU v6e (
ct6e-standard-4t、v6e-32配量,採用4x8拓撲) 上執行。框架為 MaxText (tpu_post_training:0.2.4),搭配 Pathways 和 JAX 後端。
目標
- 安裝 Cluster Toolkit 及其依附元件。
- 部署 Cluster Toolkit 叢集。
- 將 Hugging Face 模型轉換為 MaxText 格式。
- 在 TPU v6e 叢集執行強化學習訓練工作負載。
- 將微調後的模型轉換回 Hugging Face 格式,以便提供。
費用
在本文件中,您會使用下列 Google Cloud計費元件:
您可以使用 Pricing Calculator,根據預測用量估算費用。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」一節。
事前準備
您需要 Hugging Face 存取權杖,才能使用本教學課程。您可以前往 Hugging Face 註冊免費帳戶。擁有帳戶後,請產生存取權杖:
- 在 Hugging Face 的
google/gemma-4-26b-a4b-it模型資訊卡上,接受模型的授權協議。
如要取得完成本教學課程所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
- TPU 管理員 (
roles/tpu.admin) - Kubernetes Engine 管理員 (
roles/container.admin) - Compute 管理員 (
roles/compute.admin) - 儲存空間管理員 (
roles/storage.admin) - 服務帳戶使用者 (
roles/iam.serviceAccountUser) - 服務帳戶管理員 (
roles/iam.serviceAccountAdmin) - 專案 IAM 管理員 (
roles/resourcemanager.projectIamAdmin) - 服務使用情形管理員 (
roles/serviceusage.serviceUsageAdmin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定環境變數
設定環境變數:
更改下列內容:
YOUR_PROJECT_ID: Google Cloud 專案的 ID。YOUR_REGION:TPU 預留項目所在的區域,也是您部署叢集的位置。YOUR_ZONE:TPU 預留項目和叢集部署作業所在的可用區。YOUR_CLUSTER_NAME:GKE 叢集的名稱。名稱開頭須為小寫英文字母,只能使用小寫英文字母、數字和連字號,且長度不得超過 20 個字元。YOUR_BUCKET_NAME:Cloud Storage bucket 的全域不重複名稱。YOUR_RESERVATION_NAME:TPU v6e 預留項目的名稱。YOUR_HF_TOKEN:您的 Hugging Face 存取權杖。
安裝 Cluster Toolkit 依附元件
如要透過 Linux 或 macOS 用戶端或工作站完成本教學課程,請按照 Cluster Toolkit 說明文件中「安裝依附元件」的相關步驟操作。
如果您使用的是 Cloud Shell,則可略過這個部分。
安裝 Cluster Toolkit
下載並解壓縮預先建構的套件,適用於 CLUSTER_TOOLKIT_VERSION (v1.103.0) 中定義的特定 Cluster Toolkit 版本,並將其放入目前使用的目錄:
驗證環境
執行部署指令碼前,您必須驗證 Google Cloud CLI,並設定應用程式預設憑證 (ADC)。這樣一來,Cluster Toolkit 就能代您佈建資源,並將映像檔推送至 Artifact Registry。
建立 Cluster Toolkit 叢集
如要建立及部署具有 32 個 v6e TPU 晶片的 Cluster Toolkit 叢集,請完成下列步驟:
建立 Cloud Storage bucket:
使用
gcluster deploy指令,透過藍圖gke-tpu-v6e-advanced.yaml部署 Cluster Toolkit 叢集,並使用--vars旗標傳遞必要變數:
將模型轉換為 MaxText 格式
如要以 MaxText 格式訓練模型,必須將模型從 Hugging Face 格式轉換為 MaxText 格式。
如要簡化後續指令,請使用
gcluster job config指令設定預設專案、叢集和位置:使用
gcluster job submit指令,將模型從 Hugging Face 格式轉換為 MaxText 格式,並儲存至 Cloud Storage bucket:指令包含
--await-job-completion旗標,代表指令會在目前的終端機中等待轉換完成。選用:如要在工作執行期間串流轉換記錄,請在擷取
gcluster的目前使用的目錄中開啟另一個終端機,然後執行gcluster job logs指令:在原始終端機中,確認轉換後的模型檔案位於 Cloud Storage bucket:
啟動訓練工作負載
轉換程序完成後,請啟動強化學習訓練工作負載:
檢查狀態,等待協調器 Pod 準備就緒,並串流訓練工作的記錄:
提交後,
./gcluster job list指令的輸出內容可能會短暫顯示Suspended,同時 GKE 會擴充 Pathways 協調器 CPU 節點集區 (cpu-np)。工作開始時,會在步驟 0 (Pre RL Training: ... mean_reward=...) 輸出初始預先訓練評估,在初始 XLA 編譯期間暫停記錄輸出幾分鐘,然後訓練 50 個步驟,在每個步驟輸出Reshard finished和推出生成內容,不含步驟編號。請等到記錄輸出
Post RL Training: ... mean_reward=...,且./gcluster job list指令的輸出內容顯示gemma4-training的狀態為Succeeded,再繼續下一個步驟。確認訓練檢查點已在 Cloud Storage bucket 中生成:
將訓練好的模型轉換回 Hugging Face 格式
訓練工作負載完成後,請將模型轉換回 Hugging Face 格式:
選用:如要在第一個終端機等待上述
--await-job-completion指令時,監控即時轉換記錄,請在擷取gcluster的目前使用的目錄中開啟另一個終端機,並使用gcluster job logs指令:在原始終端機中,確認訓練好的 Hugging Face 模型權重和設定檔,都已儲存在 Cloud Storage bucket:
清除所用資源
為避免產生額外費用,請使用 gcluster destroy 指令刪除在本教學課程中建立的資源:
後續步驟
- 如要進一步瞭解 Cloud TPU,請參閱「Cloud TPU 簡介」。
- 如要瞭解
v6e-32TPU 的架構和設定詳細資料,請參閱「TPU v6e」。 - 如要進一步瞭解 Cluster Toolkit,請參閱「Cluster Toolkit 總覽」。