Latih Llama2 dengan Megatron-LM di virtual machine A3 Mega
Ringkasan
Dalam panduan memulai ini, Anda akan mempelajari cara menjalankan Megatron-LM berbasis container Workload PyTorch di A3 Mega. Kode ini tersedia di repositori GitHub ini: megatron-gke.
Sebelum memulai
Lakukan langkah-langkah berikut untuk mengaktifkan Google Kubernetes Engine (GKE) API:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API GKE.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API GKE.
-
Make sure that you have the following role or roles on the project: roles/container.admin, roles/compute.networkAdmin, roles/iam.serviceAccountUser
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Buka IAM - Pilih project.
- Klik Berikan akses.
-
Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.
- Di daftar Pilih peran, pilih peran.
- Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
- Klik Simpan.
Membuat cluster A3 Mega
Buat cluster GKE A3 Mega dengan GPUDirect-TCPXO dan multi-jaringan. Untuk informasi selengkapnya, lihat Memaksimalkan bandwidth jaringan GPU dengan GPUDirect dan multi-jaringan.
-
Menyiapkan lingkungan Anda
Membuat variabel lingkungan untuk beberapa parameter umum
export CLUSTER_NAME=CLUSTER_NAME export REGION=REGION export ZONE=ZONE export PROJECT_ID=PROJECT_ID
Ganti kode berikut:
CLUSTER_NAME
: nama cluster A3 Mega GKE Anda yang mengaktifkan GPUDirect-TCPXO dan multi-jaringan.REGION
: region tempat Anda membuat cluster.ZONE
: zona tempat Anda membuat cluster.PROJECT_ID
: Project ID Google Cloud Anda.
Konfigurasikan Google Cloud CLI agar dapat menggunakan kredensial Google Cloud Anda untuk autentikasi:
gcloud auth login
Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi untuk menggunakan Google Cloud CLI.
Instal
kubectl
dan plugin gcloud CLI GKE:sudo apt-get install kubectl sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
Ambil kredensial untuk cluster GKE Anda:
gcloud container clusters get-credentials ${CLUSTER_NAME} \ --zone=${ZONE} \ --project=${PROJECT_ID}
Jika belum diinstal, instal Helm:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh && rm get_helm.sh sudo chmod +x /usr/local/bin/helm
Menggunakan penjadwal sesuai topologi untuk men-deploy Pod
Anda dapat menggunakan penjadwal sesuai topologi untuk men-deploy Pod GKE ke node yang memiliki topologi GPU tertentu.
Dalam perintah kubectl
berikut, Anda akan menggunakan file langsung dari
repositori resource. Atau, Anda dapat meng-clone repositori secara lokal dan kubectl
sebagai gantinya dapat merujuk
file lokal.
Untuk mengetahui informasi selengkapnya, lihat penjadwal Topologi.
Siapkan akun layanan:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/gpudirect-tcpxo/topology-scheduler/service-account.yaml
Instal skrip penjadwal topologi di configmap:
curl -OL https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/gpudirect-tcpxo/topology-scheduler/schedule-daemon.py curl -OL https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/gpudirect-tcpxo/topology-scheduler/label-nodes-daemon.py kubectl -n kube-system create configmap topology-scheduler-scripts \ --from-file=schedule-daemon.py=schedule-daemon.py \ --from-file=label-nodes-daemon.py=label-nodes-daemon.py
Instal Pod penjadwal label topologi dan penjadwal topologi:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/gpudirect-tcpxo/topology-scheduler/label-nodes-daemon.yaml $ kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/gpudirect-tcpxo/topology-scheduler/schedule-daemon.yaml
Amati tindakan penjadwal topologi:
kubectl -n kube-system logs topology-scheduler-pod
Menjalankan beban kerja
Membangun Dockerfile dan mengirim ke Google Cloud Artifact Registry
Buat bucket Cloud Storage dan repositori Docker. Di
scripts/setup-and-configure-resources.sh script
, ganti bucket dan nama repositori dengan yang Anda buat, lalu jalankan skrip:bash scripts/setup-and-configure-resources.sh
Bangun dan kirim image
pytorch-megatron:23.11-py3
ke repositori Anda. Pastikan nama repositori Docker discripts/build-and-push-docker-image.sh
cocok dengan nama repositori yang Anda gunakan dalamscripts/setup-and-configure-resources.sh
{i>script<i}. Anda juga dapat mengedit nama tag image Docker sebelum mengirim.bash scripts/build-and-push-docker-image.sh
Meluncurkan benchmark Megatron-LM Llama2
Edit file
helm/values.yaml
untuk menentukan bucket Cloud Storage Anda dan Image Docker yang dibuat di bagian sebelumnya. Untuk beberapa contoh konfigurasi, lihat sample-configurations.Opsional: Anda juga dapat mengedit file
selected-configuration.sh
untuk ditentukan perubahan yang Anda buat pada konfigurasi Helm {i>default<i}.helm install HELM_EXPERIMENT_NAME helm/ --values helm/values.yaml
Ganti
HELM_EXPERIMENT_NAME
dengan nama acak untuk eksperimen Anda.
Eksperimen ini menulis metrik dari alat profiling Nsight Systems ke bucket Cloud Storage
yang ditentukan di direktori megatron-experiments
.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Hapus cluster GKE:
Buka halaman Cluster:
- Pilih kotak centang untuk CLUSTER_NAME.
- Klik Delete.
- Untuk mengonfirmasi penghapusan, ketik CLUSTER_NAME, lalu klik Delete.
Menghapus bucket Cloud Storage
Buka halaman Bucket:
Pilih kotak centang untuk bucket Cloud Storage yang Anda buat untuk bucket ini panduan memulai.
Klik
Delete.Untuk mengonfirmasi penghapusan, ketik
DELETE
, lalu klik Delete.