Tutorial ini menunjukkan cara menyesuaikan model bahasa besar (LLM) Gemma 3 pada cluster GKE Autopilot multi-host di Google Cloud. Cluster ini menggunakan dua instance virtual machine (VM) A4 dengan total 16 GPU NVIDIA B200.
Dua proses utama yang dijelaskan dalam tutorial ini adalah sebagai berikut:
- Deploy cluster GKE multi-host berperforma tinggi menggunakan GKE Autopilot. Sebagai bagian dari deployment ini, Anda akan membuat image VM kustom dengan software yang diperlukan sudah diinstal sebelumnya.
- Setelah cluster di-deploy, Anda menjalankan tugas penyesuaian terdistribusi dengan menggunakan kumpulan skrip yang menyertai tutorial ini. Tugas ini memanfaatkan library Hugging Face Accelerate.
Tutorial ini ditujukan untuk engineer, peneliti, administrator, dan operator platform machine learning (ML), serta spesialis data dan AI yang tertarik untuk men-deploy cluster GKE di Google Cloud untuk melatih LLM.
Tujuan
Akses model Gemma 3 menggunakan Hugging Face.
Siapkan lingkungan Anda.
Buat dan deploy cluster GKE A4.
Sesuaikan model Gemma 3 menggunakan library Hugging Face Accelerate dengan paralel data yang sepenuhnya di-shard (FSDP).
Pantau tugas Anda.
Jalankan pembersihan.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
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
container.googleapis.com file.googleapis.com logging.googleapis.com cloudresourcemanager.googleapis.com servicenetworking.googleapis.com -
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
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
container.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/cloudbuild.builds.editor, roles/artifactregistry.admin, 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 pengguna Anda. Misalnya,myemail@example.com.ROLE: Peran IAM yang Anda berikan ke akun pengguna Anda.
- Aktifkan akun layanan default untuk project Google Cloud Anda:
export PROJECT_NUMBER="$(gcloud projects describe "PROJECT_ID" --format "value(project_number)")" gcloud iam service-accounts enable "${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \ --project=PROJECT_ID
- Berikan peran Editor (
roles/editor) ke akun layanan default:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --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, lakukan langkah-langkah berikut:
- Login ke Hugging Face
- Buat token akses
writeHugging Face.
Klik Profil Anda > Setelan > Token akses > +Buat token baru. - Salin dan simpan nilai token
write access. Anda akan menggunakannya nanti dalam tutorial ini.
Menyiapkan lingkungan Anda
Untuk menyiapkan lingkungan Anda, tetapkan hal berikut:
Ganti kode berikut:
PROJECT_ID: nama Google Cloud project tempat Anda ingin membuat cluster GKE.
CLUSTER_NAME: nama cluster GKE yang akan dibuat.
CLUSTER_REGION: region tempat Anda ingin membuat cluster GKE. Anda hanya dapat membuat cluster di region tempat reservasi Anda berada.
RESERVATION: ID untuk kapasitas yang dipesan.
HF_TOKEN: token akses Hugging Face yang Anda buat di bagian sebelumnya.
ARTIFACT_REPO_LOCATION: lokasi tempat Anda ingin membuat repositori Artifact Registry.
NUM_NODES: jumlah node yang Anda inginkan untuk cluster GKE.
NETWORK: jaringan yang akan digunakan.
Membuat cluster GKE multi-host dalam mode Autopilot
Buat cluster GKE multi-host dalam mode Autopilot:
Mungkin perlu waktu beberapa saat untuk menyelesaikan pembuatan cluster GKE. Untuk memverifikasi bahwa Google Cloud telah selesai membuat cluster Anda, buka Kubernetes clusters di konsol Google Cloud .
Mendapatkan kredensial untuk cluster GKE Anda
Konfigurasi kubectl untuk berkomunikasi dengan cluster GKE yang baru dibuat dengan menjalankan perintah berikut:
Buat secret Kubernetes untuk kredensial Hugging Face
Untuk membuat secret Kubernetes untuk kredensial Hugging Face, ikuti langkah-langkah berikut:
Konfigurasi
kubectluntuk berkomunikasi dengan cluster GKE Anda:Buat secret Kubernetes untuk menyimpan token Hugging Face Anda:
Menyiapkan workload Anda
Untuk menyiapkan workload, Anda perlu melakukan hal berikut:
Membuat skrip beban kerja
Untuk membuat skrip yang digunakan workload fine-tuning Anda, lakukan hal berikut:
Buat direktori untuk skrip beban kerja. Gunakan direktori ini sebagai direktori kerja Anda.
Buat file
cloudbuild.yamluntuk menggunakan Google Cloud Build. File ini membuat container workload Anda dan menyimpannya di Artifact Registry:Buat file
Dockerfileuntuk menentukan lingkungan dan menginstal dependensi yang diperlukan untuk menyelesaikan tugas penyesuaian:Buat file
accel_fsdp_gemma3_config.yaml. File konfigurasi ini mengarahkan Hugging Face Accelerate untuk membagi tugas penyesuaian di beberapa GPU.Buat file
finetune.yaml:Buat file
finetune.py:
Menggunakan Docker dan Cloud Build untuk membuat container penyesuaian
Buat repositori Docker Artifact Registry:
Instal definisi resource kustom (CRD) JobSet yang diperlukan untuk mengatur workload multi-host.
JobSet adalah ekstensi Kubernetes yang digunakan untuk mengelola grup tugas terkait. Untuk informasi selengkapnya tentang JobSet, lihat dokumentasi JobSet eksternal.
Di direktori
llm-finetuning-gemmayang Anda buat pada langkah sebelumnya, jalankan perintah berikut untuk membuat image penyesuaian dan mengirimkannya ke Artifact Registry.Ekspor URL gambar. Anda akan menggunakannya pada langkah selanjutnya dalam tutorial ini:
Mulai workload penyesuaian
Untuk memulai workload penyesuaian, lakukan hal berikut:
Terapkan manifes penyesuaian untuk membuat tugas penyesuaian:
Karena Anda menggunakan cluster dalam mode GKE Autopilot, mungkin diperlukan waktu beberapa menit untuk memulai node yang mendukung GPU.
Pantau tugas dengan menjalankan perintah berikut:
Periksa log dari pod pekerja utama dengan menjalankan perintah berikut:
Resource tugas mendownload data model, lalu menyetel model secara halus di semua delapan GPU. Proses download akan memerlukan waktu sekitar lima menit. Setelah download selesai, proses penyesuaian memerlukan waktu sekitar dua jam 30 menit untuk diselesaikan.
Memantau workload Anda
Anda dapat memantau penggunaan GPU di cluster GKE untuk memverifikasi bahwa tugas penyesuaian Anda berjalan secara efisien. Untuk melakukannya, buka link berikut di browser Anda:
Saat memantau workload, Anda dapat melihat hal berikut:
- Penggunaan GPU: untuk tugas penyesuaian yang berjalan lancar, Anda dapat melihat penggunaan semua 8 GPU Anda meningkat dan stabil ke tingkat yang tinggi selama pelatihan.
- Durasi tugas: tugas akan memerlukan waktu sekitar 10 menit untuk diselesaikan di cluster A4 yang ditentukan.
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 resource
Untuk menghapus JobSet, jalankan perintah berikut:
Untuk menghapus cluster GKE, jalankan perintah berikut:
Untuk menghapus repositori Artifact Registry, jalankan perintah berikut:
Menghapus project Anda
Menghapus Google Cloud project:
gcloud projects delete PROJECT_ID