Melatih model menggunakan TPU7x (Ironwood)
Dokumen ini menjelaskan cara menyediakan resource TPU v7x dengan Cluster Toolkit dan men-deploy workload pelatihan menggunakan MaxText (JAX) atau TorchTitan di TPU (PyTorch).
TPU7x adalah rilis pertama dalam rangkaian Ironwood,TPU generasi ketujuh Google Cloud. Generasi Ironwood dirancang untuk pelatihan dan inferensi AI berskala besar. Untuk mengetahui informasi selengkapnya, lihat TPU7x.
Untuk contoh lainnya yang dioptimalkan untuk TPU7x, lihat repositori berikut di GitHub:
Sebelum memulai
Sebelum memulai, pastikan Anda memenuhi persyaratan berikut:
- Anda memiliki project Google Cloud dengan penagihan diaktifkan.
- Anda telah menginstal dan melakukan inisialisasi Google Cloud CLI.
- Anda telah menginstal Cluster Toolkit.
Kemudian, selesaikan langkah-langkah penyiapan berikut:
Tetapkan variabel lingkungan untuk project dan cluster Anda:
export PROJECT_ID=YOUR_PROJECT_ID export ZONE=YOUR_ZONE export CLUSTER_NAME=YOUR_CLUSTER_NAME export BASE_OUTPUT_DIR="gs://YOUR_BUCKET_NAME"
Ganti kode berikut:
- YOUR_PROJECT_ID: Project ID Google Cloud Anda.
- YOUR_ZONE: Zona tempat membuat cluster.
- YOUR_CLUSTER_NAME: Nama cluster baru.
- YOUR_BUCKET_NAME: Nama bucket Cloud Storage Anda untuk output pelatihan.
Jika Anda belum memiliki bucket Cloud Storage, buatlah:
gcloud storage buckets create ${BASE_OUTPUT_DIR} \ --project=${PROJECT_ID} \ --location=US \ --default-storage-class=STANDARD \ --uniform-bucket-level-access
Men-deploy cluster TPU7x (Ironwood)
Deploy cluster TPU7x Google Kubernetes Engine (GKE) dengan mengikuti petunjuk di Men-deploy cluster TPU 7x GKE. Pastikan topologi node pool cluster Anda sesuai dengan persyaratan workload pelatihan, seperti 4x4x8 untuk contoh MaxText atau 2x2x4 untuk contoh TorchTitan.
Men-deploy workload pelatihan dengan MaxText
Bagian berikut menunjukkan cara membangun image container dan mengirimkan tugas pelatihan MaxText dengan Cluster Toolkit.
Membangun dan mengupload image Docker MaxText
Bangun dan kirim image Docker MaxText:
# Clone MaxText
git clone https://github.com/AI-Hypercomputer/maxtext.git
cd maxtext
git checkout maxtext-tutorial-v1.0.0
# Build the Docker image
bash docker_build_dependency_image.sh MODE=stable JAX_VERSION=0.8.2
export CLOUD_IMAGE_NAME="${USER}-maxtext-runner"
bash docker_upload_runner.sh CLOUD_IMAGE_NAME=${CLOUD_IMAGE_NAME}
Menentukan perintah pelatihan MaxText
Siapkan perintah untuk menjalankan skrip pelatihan Anda di dalam container Docker.
Konfigurasi model MaxText 1B melatih model bahasa dengan sekitar 1 miliar parameter. Gunakan model ini untuk menguji skala chip kecil. Performa tidak dioptimalkan.
export MAXTEXT_COMMAND="JAX_PLATFORMS=tpu,cpu \
ENABLE_PJRT_COMPATIBILITY=true \
python3 src/MaxText/train.py src/MaxText/configs/base.yml \
base_output_directory=${BASE_OUTPUT_DIR} \
dataset_type=synthetic \
per_device_batch_size=2 \
enable_checkpointing=false \
gcs_metrics=true \
run_name=maxtext_training \
steps=30"
Mengirim tugas pelatihan MaxText
Kirim tugas pelatihan Anda menggunakan gcluster job submit. Untuk mengetahui detail tentang opsi pengiriman tugas, lihat Panduan Tugas Cluster Toolkit:
gcluster job submit \
--name="maxtext-1b-$(date +%H%M)" \
--cluster=${CLUSTER_NAME} \
--project=${PROJECT_ID} \
--location=${ZONE} \
--compute-type=tpu7x-standard-4t \
--topology=4x4x8 \
--image="gcr.io/${PROJECT_ID}/${CLOUD_IMAGE_NAME}" \
--command="${MAXTEXT_COMMAND}"
Nama workload harus unik dalam cluster. Contoh ini menambahkan $(date
+%H%M) ke nama workload.
Men-deploy workload pelatihan dengan TorchTitan
TorchTitan menggunakan TorchTPU untuk menjalankan pelatihan PyTorch terdistribusi di Cloud TPU. Untuk mengetahui informasi selengkapnya, lihat README TorchTitan di TPU.
Langkah berikutnya
- Pelajari PyTorch di Cloud TPU
- Menggunakan platform Google Cloud ML Diagnostics untuk mengoptimalkan dan mendiagnosis workload Anda
- Menjalankan workload pelatihan menggunakan resep yang dioptimalkan untuk TPU7x
- Pelajari resep TorchTitan Ironwood
- Menjalankan microbenchmark TPU7x