Melatih model menggunakan TPU7x (Ironwood)
Dokumen ini menjelaskan cara menyediakan resource TPU7x dan memberikan contoh men-deploy workload pelatihan menggunakan MaxText dan Cluster Toolkit.
TPU7x adalah rilis pertama dalam keluarga 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 Resep Pelatihan untuk TPU Ironwood di GitHub.
Men-deploy workload pelatihan dengan MaxText dan Cluster Toolkit
Gunakan Cluster Toolkit untuk membuat cluster GKE yang siap produksi dan menjalankan workload pelatihan.
Bagian berikut menunjukkan cara men-deploy workload pelatihan menggunakan MaxText dan Cluster Toolkit.
Sebelum memulai
Sebelum memulai, selesaikan langkah-langkah berikut:
- Pastikan Anda memiliki Google Cloud project dengan penagihan yang diaktifkan.
- Instal dan lakukan inisialisasi Google Cloud CLI.
- Instal Cluster Toolkit.
Tetapkan variabel lingkungan berikut:
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 cluster akan dibuat.
- YOUR_CLUSTER_NAME: Nama cluster baru.
- YOUR_BUCKET_NAME: Nama bucket Cloud Storage Anda, yang akan menjadi direktori output untuk pelatihan model.
Jika Anda belum memiliki bucket Cloud Storage, buat bucket menggunakan perintah berikut:
gcloud storage buckets create ${BASE_OUTPUT_DIR} \ --project=${PROJECT_ID} \ --location=US \ --default-storage-class=STANDARD \ --uniform-bucket-level-access
Deploy cluster TPU7x (Ironwood)
Deploy cluster TPU7x GKE dengan mengikuti petunjuk di Men-deploy cluster TPU 7x GKE. Pastikan topologi node pool cluster Anda cocok dengan persyaratan workload pelatihan Anda (seperti 4x4x8 untuk contoh workload MaxText di bawah).
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}
Tentukan perintah pelatihan MaxText
Siapkan perintah untuk menjalankan skrip pelatihan Anda dalam container Docker.
Model MaxText 1B adalah konfigurasi dalam framework MaxText yang dirancang untuk melatih model bahasa dengan sekitar 1 miliar parameter. Gunakan model ini untuk bereksperimen dengan 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"
Men-deploy workload pelatihan
Kirim tugas pelatihan Anda menggunakan gcluster job submit. Untuk mengetahui detail 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 beban kerja harus unik dalam cluster. Dalam contoh ini, $(date
+%H%M) ditambahkan ke nama beban kerja untuk memastikan keunikan.
Langkah berikutnya
- Gunakan platform Diagnostik ML Google Cloud untuk mengoptimalkan dan mendiagnosis beban kerja Anda
- Menjalankan beban kerja pelatihan menggunakan resep yang dioptimalkan untuk TPU7x
- Menjalankan microbenchmark TPU7x