本教學向您展示如何使用 MaxText 和 Cluster Toolkit 在 Tensor Processing Unit (TPU) v6e-64 叢集上執行多主機強化學習 (RL) 訓練。您可以利用 Cluster Toolkit 執行多主機訓練工作負載,並將結果匯出為 Hugging Face 格式以進行服務。
目標
- 安裝 Cluster Toolkit 及其依附元件。
- 安裝 MaxText 及其依附元件。
- 部署 Cluster Toolkit 叢集。
- 將 Hugging Face 模型轉換為 MaxText 格式。
- 在 TPU v6e 叢集上執行 RL 訓練工作負載。
- 將微調模型轉換回 Hugging Face 格式,以供使用。
費用
在本文件中,您會使用下列 Google Cloud的計費元件:
如要根據預測用量估算費用,請使用 Pricing Calculator。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」一節。
事前準備
如要使用本教學課程,您需要 Hugging Face 存取權杖。您可以在 Hugging Face 註冊一個免費帳戶。註冊帳號後,產生訪問令牌:
- 在「Welcome to Hugging Face」(歡迎使用 Hugging Face) 頁面中,按一下帳戶顯示圖片,然後選取「Access tokens」(存取權杖)。
- 在「存取權杖」頁面,按一下「建立新權杖」。
- 選取「讀取」權杖類型,然後輸入權杖名稱。
- 您的訪問令牌已顯示。將權杖儲存在安全的地方。
- 在 Hugging Face 網站上,接受要訓練模型的授權協議。本教學課程使用
gemma4-26b模型。
如要取得完成本教學課程所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
- 如要完成本教學課程:
-
準備 MaxText 容器映像檔:
- Cloud Build 編輯者 (
roles/cloudbuild.builds.editor) - Artifact Registry 管理員 (
roles/artifactregistry.admin) - 儲存管理員 (
roles/storage.admin) - 服務使用情形管理員 (
roles/serviceusage.serviceUsageAdmin)
- Cloud Build 編輯者 (
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定環境變數
設定環境變數:
更改下列內容:
- YOUR_PROJECT_ID:專案的 ID。 Google Cloud
- YOUR_REGION:要部署叢集的區域。
- YOUR_ZONE:要部署叢集的可用區。
- YOUR_CLUSTER_NAME:Google Kubernetes Engine 叢集的名稱。
- YOUR_REPOSITORY_NAME:MaxText 圖片的 Artifact Registry 存放區名稱。
- 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 的預先建構套件。
準備 MaxText 容器映像檔
如要準備 MaxText 容器映像檔 (包括安裝必要依附元件),請完成下列步驟:
建立 Cloud Storage bucket:
建立 Artifact Registry 存放區;
在存放區的根目錄中建立名為
cloudbuild.yaml的檔案,並加入以下內容:使用 Cloud Build 建構 MaxText Docker 映像檔:
建立 Cluster Toolkit 叢集
如要建立及部署含有 64 個 v6e TPU 晶片的 Cluster Toolkit 叢集,請完成下列步驟:
建立名為
gke.gcsfuse.profileUser的自訂 Identity and Access Management (IAM) 角色:建立 Cloud Storage bucket:
依預設,叢集節點集區服務帳戶不具備寫入 Cloud Storage bucket 的必要權限。如要允許節點集區服務帳戶寫入 Cloud Storage bucket,請授予
Storage Admin角色。如要授予這個角色,請編輯gke-tpu-v6e-advanced.yaml檔案,更新名為node_pool_service_account的service-account模組:將自訂設定套用至
gke-tpu-v6e-cluster區塊,覆寫預設的 IPv6 和機器類型設定:使用藍圖
gke-tpu-v6e-advanced.yaml部署 Cluster Toolkit 叢集,並使用--vars旗標傳遞必要變數:
將模型轉換為 MaxText 格式
如要以 MaxText 格式訓練模型,必須將模型從 Hugging Face 格式轉換為 MaxText 格式。
建立 Cluster Toolkit 叢集後,請設定 Docker:
如要簡化後續指令,請設定預設專案、叢集和位置:
將模型從 Hugging Face 格式轉換為 MaxText 格式,並將其儲存在您的雲端儲存桶中:
檢查轉換作業的狀態:
開始訓練工作負載
轉換過程完成後,開始強化學習訓練工作負荷:
查看培訓工作的狀態:
將訓練好的模型轉換回 Hugging Face 格式
訓練完成後,將模型轉換回 Hugging Face 格式:
檢查轉換作業的狀態:
清除所用資源
為避免產生額外費用,請刪除本教學課程中建立的資源:
後續步驟
- 有關 Cloud TPU 的更多信息,請參閱 Cloud TPU 簡介。
- 如要瞭解
v6e-64TPU 的架構和設定詳情,請參閱 TPU v6e。 - 有關集群工具包的更多信息,請參閱集群工具包概述。