Tutorial ini menunjukkan cara menyesuaikan model bahasa besar (LLM) Gemma 4 di cluster Google Kubernetes Engine (GKE) multi-GPU satu host di Google Cloud. Cluster ini menggunakan satu instance virtual machine (VM) A4 dengan 8 GPU NVIDIA B200 terpasang.
Dua proses utama yang dijelaskan dalam tutorial ini adalah sebagai berikut:
- Deploy cluster GKE 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 4 menggunakan Hugging Face.
Siapkan lingkungan Anda.
Buat dan deploy cluster GKE A4.
Sesuaikan model Gemma 4 menggunakan library Hugging Face Accelerate dengan paralelisme 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
Aktifkan API yang diperlukan, jika ada yang belum diaktifkan:
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 Aktifkan akun layanan default untuk project Google Cloud Anda:
export PROJECT_NUMBER="$(gcloud projects describe "YOUR_PROJECT_ID" --format "value(project_number)")" gcloud iam service-accounts enable "${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \ --project=YOUR_PROJECT_ID
Berikan peran yang diperlukan akun layanan default untuk menjalankan beban kerja penyesuaian:
ROLES=("roles/aiplatform.user" "roles/container.developer" "roles/storage.objectUser") for role in "${ROLES[@]}"; do gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \ --role="${role}" done unset ROLES
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 \ --project=YOUR_PROJECT_ID
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tutorial ini, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
- Kubernetes Engine Admin (
roles/container.admin) - Compute Admin (
roles/compute.admin) - Storage Admin (
roles/storage.admin) - Administrator Artifact Registry (
roles/artifactregistry.admin) - Editor Cloud Build (
roles/cloudbuild.builds.editor) - Service Account User (
roles/iam.serviceAccountUser) - Service Account Admin (
roles/iam.serviceAccountAdmin) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Service Usage Admin (
roles/serviceusage.serviceUsageAdmin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengakses Gemma 4 menggunakan Hugging Face
Untuk menggunakan Hugging Face guna mengakses Gemma 4, lakukan hal 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:
YOUR_PROJECT_ID: ID Google Cloud project tempat Anda ingin membuat cluster GKE.
YOUR_CLUSTER_NAME: nama cluster GKE yang akan dibuat.
YOUR_REGION: region tempat Anda ingin membuat cluster GKE. Anda hanya dapat membuat cluster di region tempat reservasi Anda berada.
YOUR_RESERVATION_NAME: ID untuk kapasitas yang dipesan.
YOUR_HF_TOKEN: token akses Hugging Face yang Anda buat di bagian sebelumnya.
YOUR_ARTIFACT_REGISTRY_LOCATION: Google Cloud region tempat Anda ingin membuat repositori Artifact Registry. Untuk meminimalkan latensi penarikan image, sebaiknya gunakan region yang sama dengan yang Anda gunakan untuk YOUR_REGION.
Membuat cluster GKE dalam mode Autopilot
Untuk membuat cluster GKE dalam mode Autopilot, jalankan perintah berikut:
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 .
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 menjalankan tugas penyesuaian:Buat file
accel_fsdp_gemma4_config.yaml. File konfigurasi ini mengarahkan Hugging Face Accelerate untuk membagi tugas penyetelan di delapan GPU lokal pada satu host Anda dengan menggunakan FSDP:Buat file
finetune.yaml:Buat file
finetune.py:
Menggunakan Docker dan Cloud Build untuk membuat container penyesuaian
Buat Repositori Docker Artifact Registry:
Di direktori
llm-finetuning-gemmayang Anda buat di langkah sebelumnya, jalankan perintah berikut untuk membuat image penyesuaian dan mengirimkannya ke Artifact Registry.Ekspor URL gambar. Anda akan menggunakannya di langkah selanjutnya dalam tutorial ini:
Mulai workload penyesuaian Anda
Untuk memulai workload penyesuaian, lakukan hal berikut:
Terapkan manifes penyesuaian untuk membuat tugas penyesuaian:
Karena Anda menggunakan cluster dalam mode GKE Autopilot, mungkin perlu waktu beberapa menit untuk memulai node yang mendukung GPU.
Pantau tugas dengan menjalankan perintah berikut:
Setelah pod berjalan, periksa log tugas:
Resource tugas mendownload data model, lalu menyetel model 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 dua jam 30 menit untuk diselesaikan di cluster A4 yang ditentukan.
Pembersihan
Agar tidak menimbulkan biaya tambahan, hapus resource yang dibuat selama tutorial ini.
Menghapus resource
Untuk menghapus tugas penyesuaian, jalankan perintah berikut:
Untuk menghapus cluster GKE, jalankan perintah berikut: