Melatih Llama2 dengan Megatron-LM di mesin virtual A3 Mega
Ringkasan
Dalam panduan memulai ini, Anda akan mempelajari cara menjalankan workload PyTorch Megatron-LM berbasis container 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:
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the GKE API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Pastikan Anda memiliki peran berikut di project: roles/container.admin, roles/compute.networkAdmin, roles/iam.serviceAccountUser
Memeriksa peran
-
Di Cloud de Confiance konsol, buka halaman IAM.
Buka IAM - Pilih project.
-
Di kolom Akun utama, temukan semua baris yang mengidentifikasi Anda atau grup yang Anda ikuti. Untuk mengetahui grup mana yang Anda ikuti, hubungi administrator Anda.
- Untuk semua baris yang menentukan atau menyertakan Anda, periksa kolom Peran untuk melihat apakah daftar peran menyertakan peran yang diperlukan.
Memberikan peran
-
Di Cloud de Confiance konsol, buka halaman IAM.
Buka IAM - Pilih project.
- Klik Grant access.
-
Di kolom New principals, masukkan ID pengguna Anda. Biasanya, ini adalah ID untuk pengguna dalam workforce identity pool. Untuk mengetahui detailnya, baca bagian Merepresentasikan pengguna workforce pool dalam kebijakan IAM, atau hubungi administrator Anda.
- Klik Select a role, lalu telusuri peran.
- Untuk memberikan peran tambahan, klik Add another role , lalu tambahkan tiap peran tambahan.
- Klik Save.
-
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 CONTROL_PLANE_LOCATION=CONTROL_PLANE_LOCATION export PROJECT_ID=PROJECT_ID
Ganti kode berikut:
CLUSTER_NAME: nama cluster GKE A3 Mega Anda yang mengaktifkan GPUDirect-TCPXO dan multi-jaringan.CONTROL_PLANE_LOCATION: lokasi Compute Engine dari control plane cluster Anda. Berikan region untuk cluster regional, atau zona untuk cluster zona.PROJECT_ID: project ID Anda Cloud de Confiance .
Konfigurasi Google Cloud CLI untuk menggunakankredensial Anda untuk autentikasi: Cloud de Confiance by S3NS
gcloud auth login
Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi untuk Google Cloud CLI.
Instal
kubectldan plugin GKE gcloud CLI: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} \ --location=${CONTROL_PLANE_LOCATION} \ --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 mendukung topologi untuk men-deploy Pod
Anda dapat menggunakan penjadwal yang mendukung 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 meng-clone repositori secara lokal dan perintah kubectl dapat mereferensikan file lokal.
Untuk mengetahui informasi selengkapnya, lihat Penjadwal topologi.
Menyiapkan 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.pyInstal 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.yamlAmati tindakan penjadwal topologi:
kubectl -n kube-system logs topology-scheduler-pod
Menjalankan workload
Mem-build Dockerfile dan mengirim ke Cloud de Confiance by S3NS Artifact Registry
Buat bucket Cloud Storage dan repositori Docker. Dalam
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
Build dan kirim image
pytorch-megatron:23.11-py3ke repositori Anda. Pastikan nama repositori Docker dalam filescripts/build-and-push-docker-image.shcocok 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
Meluncurkan benchmark Megatron-LM Llama2
Edit file
helm/values.yamluntuk menentukan bucket Cloud Storage dan image Docker yang dibuat di bagian sebelumnya. Untuk beberapa contoh konfigurasi, lihat contoh-konfigurasi.Opsional: Anda juga dapat mengedit file
selected-configuration.shuntuk menentukan perubahan yang Anda buat pada konfigurasi Helm default.helm install HELM_EXPERIMENT_NAME helm/ --values helm/values.yaml
Ganti
HELM_EXPERIMENT_NAMEdengan nama arbitrer untuk eksperimen Anda.
Eksperimen ini menulis metrik dari alat pembuatan profil Nsight Systems ke bucket Cloud Storage
yang ditentukan dalam direktori megatron-experiments.
Pembersihan
Agar akunAnda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut. Cloud de Confiance
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 panduan memulai ini.
Klik Delete.
Untuk mengonfirmasi penghapusan, ketik
DELETE, lalu klik Delete.