Tutorial ini menunjukkan cara menyesuaikan model bahasa besar (LLM) Gemma 3 pada cluster Slurm multi-node yang menggunakan dua instance virtual machine (VM) A4. Sebagai bagian dari tutorial ini, Anda akan melakukan hal berikut:
Membuat image kustom.
Konfigurasi jaringan RDMA.
Jalankan tugas penyesuaian terdistribusi. Untuk pelatihan multi-node yang efisien, Anda menggunakan library Hugging Face Accelerate dengan Fully Sharded Data Parallel (FSDP).
Tutorial ini ditujukan untuk engineer machine learning (ML), administrator dan operator platform, serta spesialis data dan AI yang tertarik menggunakan kemampuan penjadwalan tugas Slurm untuk menangani workload penyesuaian.
Tujuan
Akses Gemma 3 menggunakan Hugging Face.
Siapkan lingkungan Anda.
Buat cluster Slurm A4.
Siapkan workload Anda.
Jalankan tugas penyesuaian.
Pantau tugas Anda.
Jalankan pembersihan.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
- Compute Engine
- Google Kubernetes Engine (GKE) Enterprise edition
- Filestore
- Cloud Storage
- Cloud Logging
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
-
Instal Google Cloud CLI.
-
Konfigurasi gcloud CLI agar menggunakan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Login ke gcloud CLI dengan identitas gabungan Anda.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
Aktifkan API yang diperlukan:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.gcloud services enable compute.googleapis.com file.googleapis.com logging.googleapis.com cloudresourcemanager.googleapis.com servicenetworking.googleapis.com
-
Memberikan peran ke akun pengguna Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut:
roles/compute.admin, roles/iam.serviceAccountUser, roles/file.editor, roles/storage.admin, roles/serviceusage.serviceUsageAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Ganti kode berikut:
PROJECT_ID: Project ID Anda.USER_IDENTIFIER: ID untuk akun akun. Untuk melihat contoh, lihat Merepresentasikan pengguna workforce pool dalam kebijakan IAM.ROLE: Peran IAM yang Anda berikan ke akun pengguna Anda.
- Aktifkan akun layanan default untuk project Google Cloud Anda:
gcloud iam service-accounts enable PROJECT_NUMBER-compute@ \ --project=PROJECT_ID
Ganti PROJECT_NUMBER dengan nomor project Anda. Untuk meninjau nomor project Anda, lihat Mendapatkan project yang sudah ada.
- Berikan peran Editor (
roles/editor) ke akun layanan default:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@" \ --role=roles/editor
- Buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
- Aktifkan Login OS untuk project Anda:
gcloud compute project-info add-metadata --metadata=enable-oslogin=TRUE
- Login atau buat akun Hugging Face.
Mengakses Gemma 3 menggunakan Hugging Face
Untuk menggunakan Hugging Face guna mengakses Gemma 3, ikuti langkah-langkah berikut:
Buat token akses
readHugging Face. Klik Profil Anda > Setelan > Token akses > +Buat token baruSalin dan simpan nilai token
read access. Anda akan menggunakannya nanti dalam tutorial ini.
Instal Cluster Toolkit
Untuk mengetahui informasi selengkapnya tentang cara menggunakan gcluster dan mengelola cluster, lihat Ringkasan Cluster Toolkit.
Siapkan versi Cluster Toolkit:
Download rilis:
Tentukan jalur
gcluster:
Menyiapkan lingkungan Anda
Untuk menyiapkan lingkungan Anda, ikuti langkah-langkah berikut:
Tetapkan variabel lingkungan default:
Ganti kode berikut:
YOUR_PROJECT_ID: ID projectGoogle Cloud tempat Anda ingin membuat bucket Cloud Storage.YOUR_ZONE: zona tempat pemesanan Anda berada.YOUR_REGION: region tempat pemesanan Anda berada.RESERVATION_NAME: URL atau nama reservasi yang ingin Anda gunakan untuk membuat cluster Slurm.YOUR_CLUSTER_NAME: nama cluster Slurm yang ingin Anda buat.YOUR_GCS_BUCKET: nama untuk bucket Cloud Storage Anda yang mengikuti persyaratan penamaan bucket.YOUR_HF_TOKEN: token akses Hugging Face yang Anda buat di bagian sebelumnya.
Membuat bucket Cloud Storage:
Membuat cluster Slurm A4
Untuk membuat cluster Slurm A4, ikuti langkah-langkah berikut:
Buat file
a4high-slurm-deployment.yaml:Siapkan manifes:
Buat manifes Terraform:
Patch manifes:
Deploy cluster:
Perintah
gcluster deployadalah proses dua fase, yang dijelaskan sebagai berikut:Fase pertama membuat image kustom dengan semua software yang sudah diinstal sebelumnya, yang dapat memerlukan waktu hingga 45 menit untuk diselesaikan.
Fase kedua men-deploy cluster menggunakan image kustom tersebut. Proses ini umumnya memerlukan waktu lebih singkat untuk diselesaikan daripada fase pertama.
Jika fase pertama berhasil, tetapi fase kedua gagal, Anda dapat mencoba men-deploy cluster Slurm lagi dengan melewati fase pertama:
Menyiapkan workload Anda
Untuk menyiapkan beban kerja Anda, ikuti langkah-langkah berikut:
Membuat skrip beban kerja
Untuk membuat skrip yang akan digunakan workload penyesuaian, ikuti langkah-langkah berikut:
Untuk menyiapkan lingkungan virtual Python, buat file
install_environment.shdengan konten berikut:Untuk menentukan konfigurasi tugas penyesuaian, buat file
accelerate_config.yamldengan konten berikut:Untuk menentukan tugas yang akan dijalankan pada cluster Slurm, buat file
submit.slurmdengan konten berikut:Untuk menentukan dependensi bagi tugas penyesuaian Anda, buat file
requirements.txtdengan konten berikut:Untuk menentukan petunjuk bagi tugas Anda, buat file
train.pydengan konten berikut:
Mengupload skrip ke cluster Slurm
Untuk mengupload skrip yang Anda buat di bagian sebelumnya ke cluster Slurm, ikuti langkah-langkah berikut:
Tetapkan variabel
LOGIN_NODEdengan mengambil nama node login untuk cluster Anda:Variabel
LOGIN_NODEmenyimpan nilai yang mirip dengan${CLUSTER_NAME}-login-001.Upload skrip Anda ke direktori utama node login:
Menghubungkan ke cluster Slurm
Hubungkan ke node login, dan sebarkan token Hugging Face Anda ke sesi baru:
Menginstal framework dan alat
Setelah terhubung ke node login, siapkan lingkungan virtual Python dengan dependensi yang diperlukan:
Mulai workload penyesuaian
Untuk memulai workload penyesuaian, ikuti langkah-langkah berikut:
Kirim tugas ke penjadwal Slurm dan kumpulkan ID pekerjaan:
Di node login di cluster Slurm, Anda dapat memantau progres tugas dengan memeriksa file output yang dibuat di direktori
home:Jika tugas Anda berhasil dimulai, file
.errakan menampilkan status progres yang diperbarui seiring progres tugas Anda.
Memantau workload Anda
Anda dapat memantau penggunaan GPU di cluster Slurm untuk memverifikasi bahwa tugas penyesuaian Anda berjalan secara efisien. Untuk melakukannya, buka link berikut di browser Anda:
https://console.cloud.google.com/monitoring/metrics-explorer?project=PROJECT_ID&pageState=%7B%22xyChart%22%3A%7B%22dataSets%22%3A%5B%7B%22timeSeriesFilter%22%3A%7B%22filter%22%3A%22metric.type%3D%5C%22agent.googleapis.com%2Fgpu%2Futilization%5C%22%20resource.type%3D%5C%22gce_instance%5C%22%22%2C%22perSeriesAligner%22%3A%22ALIGN_MEAN%22%7D%2C%22plotType%22%3A%22LINE%22%7D%5D%7D%7D
Saat memantau workload, Anda dapat melihat hal berikut:
Penggunaan GPU: untuk tugas penyesuaian yang berjalan lancar, Anda dapat melihat penggunaan semua 16 GPU (delapan GPU untuk setiap VM dalam cluster) meningkat dan stabil ke tingkat tertentu selama pelatihan.
Durasi tugas: tugas akan memerlukan waktu sekitar satu jam untuk diselesaikan.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus cluster Slurm
Untuk menghapus cluster Slurm Anda:
Jika Anda perlu menghapus semua jaringan VPC, aturan firewall, router, IP, dan subnet yang terkait dengan project, lakukan hal berikut:
Menghapus project Anda
Menghapus Google Cloud project:
gcloud projects delete PROJECT_ID