Tutorial ini menunjukkan cara menjalankan supervised fine-tuning (SFT) pada cluster Tensor Processing Unit (TPU) v6e multi-host menggunakan MaxText dan Cluster Toolkit. Anda menggunakan Cluster Toolkit untuk menjalankan workload pelatihan multi-host dan mengekspor hasilnya kembali ke format Hugging Face untuk inferensi.
Ringkasan workload
Menjalankan workload SFT ini di Cloud TPU dan GKE melibatkan komponen berikut:
- Model: Gemma 4 31B (
google/gemma-4-31b-it), model open-weights yang canggih. Dalam tutorial ini, bobot model didownload dari Hugging Face, dikonversi ke format yang kompatibel dengan MaxText, dan di-deploy di cluster GKE dengan infrastruktur Cloud TPU v6e (v6e-32). - Metode pelatihan: SFT menggunakan MaxText. Workload ini menjalankan pipeline fine-tuning yang skalabel di Cloud TPU v6e menggunakan JAX. Model ini mengoptimalkan parameter model selama 1.000 langkah menggunakan pelatih SFT bawaan MaxText (
maxtext.trainers.post_train.sft.train_sft) dan set data penyesuaian instruksi. - Set data dan template: UltraChat 200k (
HuggingFaceH4/ultrachat_200k), set data dialog multi-turn berskala besar dan berkualitas tinggi. Workload menggunakan set data ini untuk menyesuaikan model dan meningkatkan kemampuan percakapan serta mengikuti petunjuk. - Infrastruktur dan framework: GKE, yang dikelola menggunakan Cluster Toolkit, di Cloud TPU v6e (
v6e-32, dengan topologi4x8). Framework-nya adalah MaxText (tpu_post_training:0.2.4) dengan backend JAX.
Tujuan
- Instal Cluster Toolkit dan dependensinya.
- Men-deploy cluster Cluster Toolkit.
- Mengonversi model Hugging Face ke format MaxText.
- Menjalankan workload pelatihan SFT di TPU.
- Mengonversi kembali model yang telah disesuaikan ke format Hugging Face untuk inferensi.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
Anda memerlukan token akses Hugging Face untuk menggunakan tutorial ini. Anda dapat mendaftar untuk mendapatkan akun gratis di Hugging Face. Setelah Anda memiliki akun, buat token akses:
- Di halaman Welcome to Hugging Face, klik avatar akun Anda, lalu pilih Token akses.
- Di halaman Token akses, klik Create new token.
- Pilih jenis token Read dan masukkan nama untuk token Anda.
- Token akses Anda akan ditampilkan. Simpan token di tempat yang aman.
- Di kartu model
google/gemma-4-31b-itdi Hugging Face, setujui perjanjian lisensi untuk model tersebut.
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tutorial ini, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
-
Untuk menyelesaikan tutorial ini:
- TPU Admin (
roles/tpu.admin) - Service Account User (
roles/iam.serviceAccountUser) - Compute Admin (
roles/compute.admin) - Storage Admin (
roles/storage.admin) - Kubernetes Engine Admin (
roles/container.admin) - Service Account Admin (
roles/iam.serviceAccountAdmin) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Service Usage Admin (
roles/serviceusage.serviceUsageAdmin)
- TPU Admin (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menyiapkan variabel lingkungan Anda
Siapkan variabel lingkungan Anda:
Ganti kode berikut:
YOUR_PROJECT_ID: ID project Google Cloud Anda.YOUR_REGION: region tempat pemesanan TPU Anda berada dan tempat Anda men-deploy cluster.YOUR_ZONE: zona tempat pemesanan TPU Anda berada dan tempat Anda men-deploy cluster.YOUR_CLUSTER_NAME: nama cluster GKE Anda. Nama harus diawali dengan huruf kecil, hanya berisi huruf kecil, angka, dan tanda hubung, serta terdiri dari 20 karakter atau kurang, sehingga ID akun layanan yang didasarkan pada hal ini tetap berada dalam batas 30 karakter.YOUR_BUCKET_NAME: nama unik global untuk bucket Cloud Storage.YOUR_RESERVATION_NAME: nama pemesanan TPU v6e Anda.YOUR_HF_TOKEN: token akses Hugging Face Anda.
Secara default, skrip menetapkan MODEL_NAME ke gemma4-31b (nama model MaxText untuk google/gemma-4-31b-it).
Menginstal dependensi Cluster Toolkit
Untuk menyelesaikan tutorial ini dari klien atau workstation Linux atau macOS, ikuti langkah-langkah yang relevan di bagian Menginstal dependensi dalam dokumentasi Cluster Toolkit.
Jika Anda menggunakan Cloud Shell, Anda dapat melewati bagian ini.
Menginstal Cluster Toolkit
Download dan ekstrak paket bawaan untuk versi Cluster Toolkit tertentu yang ditentukan dalam CLUSTER_TOOLKIT_VERSION (v1.103.0) ke direktori kerja Anda saat ini:
Mengautentikasi lingkungan Anda
Untuk memastikan Cluster Toolkit dapat menyediakan resource dan mengirim image ke Artifact Registry atas nama Anda, autentikasi Google Cloud CLI dan tetapkan Kredensial Default Aplikasi Anda:
Membuat cluster Cluster Toolkit Anda
Untuk membuat dan men-deploy cluster Cluster Toolkit dengan 32 chip TPU v6e,
selesaikan langkah-langkah berikut:
Membuat bucket Cloud Storage:
Tempatkan konfigurasi blueprint dan salin contoh blueprint deployment ke direktori kerja yang terisolasi:
Perbarui
tmp/gke-tpu-v6e-advanced.yamluntuk memberi akun layanan node pool cluster Anda (gke-np-sa) peran Storage Admin (roles/storage.admin) untuk menulis checkpoint ke bucket Cloud Storage Anda, alihkan jenis mesin node pool sistem kee2-standard-8, dan sematkan node pool sistem ke zona target Anda untuk menghindari kehabisan stok jenis mesin regional:Gunakan perintah
gcluster deployuntuk men-deploy cluster Cluster Toolkit menggunakan blueprinttmp/gke-tpu-v6e-advanced.yamldan meneruskan variabel yang diperlukan menggunakan flag--vars:
Mengonversi model ke format MaxText
Untuk melatih model dalam format MaxText, Anda harus mengonversinya dari format Hugging Face ke format MaxText.
Untuk menyederhanakan perintah berikutnya, gunakan perintah
gcluster job configuntuk mengonfigurasi project, cluster, dan lokasi default Anda:Gunakan perintah
gcluster job submituntuk mengonversi model dari format Hugging Face ke format MaxText dan menyimpannya di bucket Cloud Storage Anda:Perintah ini menyertakan flag
--await-job-completion, yang berarti perintah tersebut menunggu di terminal Anda saat ini hingga konversi selesai.Opsional: Untuk melakukan streaming log konversi saat tugas berjalan, buka terminal terpisah di direktori kerja tempat Anda mengekstrak
gcluster, dan jalankan perintahgcluster job logs:Di terminal asli, pastikan file model yang dikonversi tersedia di bucket Cloud Storage Anda:
Memulai workload pelatihan
Setelah proses konversi selesai, mulai workload SFT:
Perintah ini menyertakan flag
--await-job-completion, yang berarti perintah tersebut menunggu di terminal Anda saat ini hingga tugas pelatihan selesai.Opsional: Untuk melakukan streaming log pelatihan langsung saat tugas berjalan, buka terminal terpisah di direktori kerja tempat Anda mengekstrak
gcluster, dan jalankan perintahgcluster job logs:Setelah kompilasi XLA awal selesai, koordinator akan mencatat progres output untuk setiap langkah di seluruh operasi 1.000 langkah dalam format
completed step: <step>, seconds: ..., TFLOP/s/device: ..., loss: ..., dengan penurunan loss pelatihan dari sekitar1.57pada langkah 5 menjadi sekitar0.82pada langkah 1000. Sebelum melanjutkan ke bagian berikutnya, tunggu hingga langkah 1000 selesai dan output dari perintah./gcluster job listmenunjukkan statussftsebagaiSucceeded.Di terminal asli Anda, pastikan checkpoint pelatihan SFT dibuat di bucket Cloud Storage Anda:
Mengonversi kembali model terlatih ke format Hugging Face
Setelah workload pelatihan selesai, konversikan kembali model ke format Hugging Face:
Perintah ini menyertakan flag
--await-job-completion, yang berarti perintah tersebut menunggu di terminal Anda saat ini hingga konversi selesai.Opsional: Untuk melakukan streaming log konversi langsung saat tugas berjalan, buka terminal terpisah di direktori kerja tempat Anda mengekstrak
gcluster, dan jalankan perintahgcluster job logs:Di terminal asli Anda, pastikan bobot Hugging Face Safetensors akhir dibuat di bucket Cloud Storage Anda:
Pembersihan
Agar tidak menimbulkan biaya tambahan, gunakan perintah gcluster destroy untuk menghapus resource yang dibuat selama tutorial ini:
Langkah berikutnya
- Untuk mengetahui informasi selengkapnya tentang Cloud TPU, lihat Pengantar Cloud TPU.
- Untuk mengetahui detail arsitektur dan konfigurasi TPU
v6e-32, lihat TPU v6e.