本教學課程提供逐步指南,說明如何使用 MaxText,在 Google Cloud 的單一 v6e-8 Tensor Processing Unit (TPU) 虛擬機器 (VM) 執行個體上執行監督式微調 (SFT)。MaxText 是以 JAX 為基礎的高效能大型語言模型 (LLM) 訓練堆疊。
工作負載摘要
在 Cloud TPU VM 上執行這項 SFT 工作負載時,會涉及下列元件:
- 模型:Gemma 3 4B (
gemma3-4b),開放權重的輕量語言模型。在本教學課程中,模型權重會從 Hugging Face 格式轉換為與 MaxText 相容的格式 (mt-format),並準備使用 JAX 在單一 Cloud TPUv6e-8VM 上執行。 - 訓練方法:使用 MaxText 進行 SFT。工作負載會使用 JAX,在單一 Cloud TPU
v6e-8執行個體上執行微調 pipeline。這項工作會使用 MaxText 內建的 SFT 訓練器 (maxtext.trainers.post_train.sft.train_sft) 和對話式指令微調資料集,在 1,000 個步驟中最佳化模型參數。 - 資料集和範本:UltraChat 200k (
HuggingFaceH4/ultrachat_200k),這是大規模的高品質多輪對話資料集 (以messages資料欄分割train_sft)。用於微調模型,提升對話和指令遵循能力。 - 基礎架構和架構:單一 Cloud TPU
v6e-8VM 執行個體 (ct6e-standard-8t)。架構為 MaxText (maxtext[tpu-post-train]),由 JAX 提供支援。
目標
- 設定 Cloud TPU VM 執行個體。
- 安裝 MaxText 及其依附元件。
- 將 Hugging Face 模型轉換為 MaxText 格式。
- 在 TPU 上執行 SFT 訓練工作負載。
- 將微調後的模型轉換回 Hugging Face 格式,以便提供。
費用
在本文件中,您將使用下列 Google Cloud計費元件:
您可以使用 Pricing Calculator,根據預測用量估算費用。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」一節。
事前準備
您需要 Hugging Face 存取權杖,才能使用本教學課程。你可以在 Hugging Face 註冊免費帳戶。擁有帳戶後,請產生存取權杖:
- 在 Hugging Face 網站上,接受您要訓練的模型授權協議。本教學課程使用
gemma3-4b模型。
如要取得完成本教學課程所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
- TPU 管理員 (
roles/tpu.admin) - 服務帳戶使用者 (
roles/iam.serviceAccountUser) - Compute 編輯者 (
roles/compute.editor)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
設定環境
執行下列指令碼,設定環境變數:
更改下列內容:
- YOUR_PROJECT_ID:您的 Google Cloud 專案 ID
- YOUR_ZONE:要使用的可用區
- YOUR_RESERVATION_NAME:運算資源預留項目
- YOUR_TPU_NAME:Cloud TPU VM 執行個體的名稱
執行下列指令,向 Google Cloud 進行驗證:
gcloud auth login
建立 Cloud TPU VM
建立 Cloud TPU VM 執行個體,並搭載 8 個 v6e TPU 晶片,繫結至預留運算資源。
建立 VM 執行個體後,請使用 SSH 連線至該執行個體。
在 TPU VM 執行個體中完成下列步驟。
安裝 MaxText
更新 TPU VM 執行個體中的系統套件。
安裝 MaxText 必備的 Python 3.12 及其虛擬環境套件。
使用 uv 加速安裝 Python 套件。
建立名為 maxtext_venv 的虛擬環境並啟用。
安裝 MaxText 和後續訓練工作所需的依附元件。
執行下列指令,安裝其餘必要依附元件:
將模型轉換為 MaxText 格式
如要以 MaxText 格式訓練模型,必須將模型從 Hugging Face 格式轉換為 MaxText 格式。
指定環境變數,例如 Hugging Face 存取權杖、要使用的模型名稱,以及要以 MaxText 格式儲存模型的目錄。
將 YOUR_HF_TOKEN 替換為先前建立的 Hugging Face 存取權杖。
如要將模型從 Hugging Face 格式轉換為 MaxText 格式,請執行下列指令碼。這項轉換作業大約需要五分鐘才能完成。
啟動訓練工作負載
轉換程序完成後,即可啟動 SFT 工作負載。
設定 SFT 工作負載訓練參數。
啟動訓練工作。在
v6e-8VM 執行個體上,這項作業約需 10 分鐘。
將訓練好的模型轉換回 Hugging Face 格式
訓練工作負載完成後,將模型轉換回 Hugging Face 格式。
設定匯出路徑和訓練參數。
執行轉換,改回 Hugging Face 格式。
轉換完成後,儲存在 /dev/shm/gemma3-4b/hf-trained 的調整後模型即可使用。VM 重新啟動時,您會失去 /dev/shm 資料夾內容的存取權,因此請將微調後的模型移至永久儲存空間,或上傳至 Hugging Face Hub。
清除所用資源
為避免產生額外費用,請刪除在本教學課程中建立的資源。
刪除 TPU VM 執行個體
退出 Cloud TPU VM 執行個體,然後刪除該執行個體。
後續步驟
- 如要進一步瞭解 Cloud TPU,請參閱「Cloud TPU 簡介」。
- 如要瞭解
v6e-8TPU 的架構和設定詳細資料,請參閱「TPU v6e」。