本教學課程說明如何使用 MaxText 和 Cluster Toolkit,在 Tensor 處理單元 (TPU) v6e 叢集上執行監督式微調 (SFT)。您可以使用 Cluster Toolkit 執行多主機訓練工作負載,並將結果匯出回 Hugging Face 格式以供服務。
目標
- 安裝 Cluster Toolkit 及其依附元件。
- 安裝 MaxText 及其依附元件。
- 部署 Cluster Toolkit 叢集。
- 將 Hugging Face 模型轉換為 MaxText 格式。
- 在 TPU 上執行 SFT 訓練工作負載。
- 將微調模型轉換回 Hugging Face 格式,以供使用。
費用
在本文件中,您會使用下列 Google Cloud的計費元件:
如要根據預測用量估算費用,請使用 Pricing Calculator。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」一節。
事前準備
如要使用本教學課程,您需要 Hugging Face 存取權杖。你可以在 Hugging Face 申請免費帳戶。建立帳戶後,請產生存取權杖:
- 在「Welcome to Hugging Face」(歡迎使用 Hugging Face) 頁面中,按一下帳戶顯示圖片,然後選取「Access tokens」(存取權杖)。
- 在「存取權杖」頁面,按一下「建立新權杖」。
- 選取「讀取」權杖類型,然後輸入權杖名稱。
- 畫面上會顯示存取權杖。將權杖儲存在安全的地方。
- 在 Hugging Face 網站上,接受要訓練模型的授權協議。本教學課程使用
gemma4-31b模型。
如要取得完成本教學課程所需的權限,請要求管理員在專案中授予您下列 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_REPOSITORY_NAME:MaxText 圖片的 Artifact Registry 存放區名稱。
- YOUR_RESERVATION_NAME:預訂名稱。
- YOUR_HF_TOKEN:您的 Hugging Face 存取權杖。
- YOUR_BUCKET_NAME:Cloud Storage bucket 的全域不重複名稱。
安裝 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 叢集
如要建立及部署含有 32 個 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模組:使用藍圖
gke-tpu-v6e-advanced.yaml部署 Cluster Toolkit 叢集,並使用--vars旗標傳遞必要變數:
將模型轉換為 MaxText 格式
如要以 MaxText 格式訓練模型,必須將模型從 Hugging Face 格式轉換為 MaxText 格式。
建立 Cluster Toolkit 叢集後,請設定 Docker:
如要簡化後續指令,請設定預設專案、叢集和位置:
如要將模型從 Hugging Face 格式轉換為 MaxText 格式,並儲存在 Cloud Storage bucket 中,請執行下列指令碼:
如要檢查轉換工作的狀態,請執行下列指令:
開始訓練工作負載
轉換程序完成後,您可以執行下列指令來啟動 SFT 工作負載:
如要檢查訓練工作的狀態,請執行下列指令:
將訓練好的模型轉換回 Hugging Face 格式
訓練工作負載完成後,請將模型轉換回 Hugging Face 格式:
如要檢查轉換工作的狀態,請執行下列指令:
清除所用資源
為避免產生額外費用,請刪除在本教學課程中建立的資源。
後續步驟
- 如要進一步瞭解 Cloud TPU,請參閱「Cloud TPU 簡介」。
- 如要瞭解
v6e-32TPU 的架構和設定詳情,請參閱 TPU v6e。