Melatih Llama2 dengan Megatron-LM di virtual machine A3 Mega
Ringkasan
Dalam panduan memulai ini, Anda akan mempelajari cara menjalankan workload PyTorch Megatron-LM berbasis container di A3 Mega. Kode 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE API.
-
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 column 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 Akun utama baru, masukkan ID pengguna Anda. Biasanya berupa 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 mengetahui informasi selengkapnya, lihat Memaksimalkan bandwidth jaringan GPU dengan GPUDirect dan multi-jaringan.
-
Menyiapkan lingkungan Anda
Buat 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 GKE A3 Mega Anda yang telah mengaktifkan GPUDirect-TCPXO dan multi-jaringan.REGION
: region tempat Anda membuat cluster.ZONE
: zona tempat Anda membuat cluster.PROJECT_ID
: ID project Google Cloud Anda.
Konfigurasi Google Cloud CLI untuk menggunakan kredensial Google Cloud Anda untuk autentikasi:
gcloud auth login
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi 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 yang kompatibel dengan topologi untuk men-deploy Pod
Anda dapat menggunakan penjadwal yang kompatibel dengan topologi untuk men-deploy Pod GKE ke node yang memiliki topologi GPU tertentu.
Dalam perintah kubectl
berikut, Anda akan menggunakan file langsung dari
repositori. Atau, Anda dapat membuat clone repositori secara lokal dan perintah kubectl
dapat mereferensikan 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 daemonset label topologi dan Pod 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 workload
Bangun Dockerfile dan kirim ke Google Cloud Artifact Registry
Buat bucket Cloud Storage dan repositori Docker. Di
scripts/setup-and-configure-resources.sh script
, ganti nama bucket dan repositori dengan nama 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 dalam filescripts/build-and-push-docker-image.sh
cocok dengan nama repositori yang Anda gunakan dalam skripscripts/setup-and-configure-resources.sh
. Anda juga dapat mengedit nama tag image Docker sebelum mengirim.bash scripts/build-and-push-docker-image.sh
Luncurkan benchmark Megatron-LM Llama2
Edit file
helm/values.yaml
untuk menentukan bucket Cloud Storage 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 menentukan perubahan apa pun yang Anda lakukan pada konfigurasi Helm default.helm install HELM_EXPERIMENT_NAME helm/ --values helm/values.yaml
Ganti
HELM_EXPERIMENT_NAME
dengan nama arbitrer untuk eksperimen Anda.
Eksperimen menulis metrik dari alat pembuatan profil Nsight Systems ke bucket Cloud Storage yang ditentukan di direktori megatron-experiments
.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya 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:
Centang kotak untuk bucket Cloud Storage yang Anda buat untuk panduan memulai ini.
Klik
Delete.Untuk mengonfirmasi penghapusan, ketik
DELETE
, lalu klik Delete.