本教學課程說明如何使用 MaxText 和 Cluster Toolkit,在 Tensor 處理單元 (TPU) v6e-32 叢集上執行多主機強化學習 (RL) 訓練。您可以使用 Cluster Toolkit 執行多主機訓練工作負載,並將結果匯出為 Hugging Face 格式,以供服務使用。
目標
- 安裝 Cluster Toolkit 及其依附元件。
- 部署 Cluster Toolkit 叢集。
- 將 Hugging Face 模型轉換為 MaxText 格式。
- 在 TPU v6e 叢集上執行 RL 訓練工作負載。
- 將微調模型轉換回 Hugging Face 格式,以供服務使用。
費用
在本文件中,您將使用下列 Google Cloud計費元件:
如要根據預測用量估算費用,請使用 Pricing Calculator。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」一節。
事前準備
您需要 Hugging Face 存取權杖,才能使用本教學課程。你可以在 Hugging Face 註冊免費帳戶。擁有帳戶後,請產生存取權杖:
- 在 Hugging Face 網站上,接受要訓練模型的授權協議。本教學課程使用
qwen3-30b-a3b模型。
如要取得完成本教學課程所需的權限,請要求管理員在專案中授予您下列 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:專案的 ID。 Google Cloud
- YOUR_REGION:要部署叢集的區域。
- YOUR_ZONE:要部署叢集的可用區。
- YOUR_CLUSTER_NAME:Google Kubernetes Engine 叢集的名稱 (最多 20 個字元)。
- YOUR_BUCKET_NAME:Cloud Storage bucket 的全域不重複名稱。
- YOUR_RESERVATION_NAME:預訂名稱。
- YOUR_HF_TOKEN:您的 Hugging Face 存取權杖。
安裝 Cluster Toolkit 依附元件
如要從 Linux 或 macOS 用戶端或工作站完成本教學課程,請按照 Cluster Toolkit 說明文件中的「安裝依附元件」一節,執行相關步驟。
如果您使用 Cloud Shell,可以略過這個部分。
安裝 Cluster Toolkit
按照「安裝 Cluster Toolkit」一文中的指示,在目前的工作目錄中安裝 Cluster Toolkit 的預先建構套件。
舉例來說,您可以按照下列步驟,將套件下載並解壓縮至目前的工作目錄:
將套件解壓縮至目前的工作目錄,即可取得後續步驟中使用的 gcluster二進位檔和 examples/ 藍圖。
建立 Cluster Toolkit 叢集
如要建立及部署含有 32 個 v6e TPU 晶片的 Cluster Toolkit 叢集,請完成下列步驟:
建立 Cloud Storage bucket:
將 Cluster Toolkit 藍圖複製到目前的工作目錄:
根據預設,叢集節點集區服務帳戶沒有寫入 Cloud Storage bucket 的必要權限。如要允許節點集區服務帳戶寫入 Cloud Storage bucket,您必須授予該帳戶
Storage Admin角色。如要授予這個角色,請編輯gke-tpu-v6e-advanced.yaml檔案,更新名為node_pool_service_account的service-account模組:使用
gcluster deploy指令,透過藍圖gke-tpu-v6e-advanced.yaml部署 Cluster Toolkit 叢集,並使用--vars旗標傳遞必要變數:設定 Container Registry 驗證,並將儲存空間管理員角色 (
roles/storage.admin) 授予 GKE 服務帳戶:
將模型轉換為 MaxText 格式
如要以 MaxText 格式訓練模型,必須將模型從 Hugging Face 格式轉換為 MaxText 格式。
如要簡化後續指令,請使用
gcluster job config指令設定預設專案、叢集和位置:使用
gcluster job submit指令,將模型從 Hugging Face 格式轉換為 MaxText 格式,並儲存在 Cloud Storage bucket 中:使用
gcluster job logs指令檢查轉換作業的狀態:確認轉換後的模型檔案是否位於 Cloud Storage bucket 中:
啟動訓練工作負載
轉換程序完成後,請啟動 RL 訓練工作負載:
如要查看訓練工作的狀態,請按照下列步驟操作:
如要確認訓練檢查點是否已在 Cloud Storage bucket 中產生,請按照下列步驟操作:
將訓練好的模型轉換回 Hugging Face 格式
訓練工作負載完成後,請將模型轉換回 Hugging Face 格式:
如要查看轉換工作的狀態,請按照下列步驟操作:
如要確認訓練好的 Hugging Face 模型權重和設定檔是否位於 Cloud Storage bucket 中,請按照下列步驟操作:
清除所用資源
為避免產生額外費用,請使用 gcluster destroy 指令刪除在本教學課程中建立的資源:
後續步驟
- 如要進一步瞭解 Cloud TPU,請參閱「Cloud TPU 簡介」。
- 如要瞭解
v6e-32TPU 的架構和設定詳細資料,請參閱「TPU v6e」。 - 如要進一步瞭解 Cluster Toolkit,請參閱「Cluster Toolkit 總覽」。