Tutorial ini menunjukkan cara menyesuaikan model bahasa besar (LLM) Gemma 4 pada cluster Google Kubernetes Engine (GKE) host tunggal dan multi-GPU 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 menggunakan Cloud Build untuk mem-build image container kustom dengan software yang diperlukan sudah diinstal sebelumnya.
- Setelah cluster di-deploy, Anda menjalankan tugas penyesuaian yang menggunakan Fully
Sharded Data Parallel (FSDP) untuk melakukan sharding model di delapan GPU dari satu node
A4 (
a4-highgpu-8g). Tugas ini menggunakan kumpulan skrip yang disertakan dalam tutorial ini dan 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.
Menyiapkan lingkungan Anda.
Buat dan deploy cluster GKE A4.
Sesuaikan model Gemma 4 menggunakan library Hugging Face Accelerate dengan fully sharded data parallel (FSDP).
Pantau tugas Anda.
Jalankan pembersihan.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
- Compute Engine
- Google Kubernetes Engine (GKE)
- Artifact Registry
- Cloud Build
- Cloud Storage
- Cloud Logging
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 Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.gcloud services enable compute.googleapis.com
container.googleapis.com artifactregistry.googleapis.com cloudbuild.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/artifactregistry.writer" "roles/cloudbuild.builds.builder" "roles/logging.logWriter" "roles/monitoring.metricWriter" "roles/monitoring.viewer" "roles/stackdriver.resourceMetadata.writer" "roles/storage.objectViewer") for role in "${ROLES[@]}"; do gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \ --role="${role}" 1>/dev/null done unset ROLES
Untuk memverifikasi bahwa peran telah diberikan, jalankan perintah berikut:
gcloud projects get-iam-policy YOUR_PROJECT_ID \ --flatten="bindings[].members" \ --filter="bindings.members:serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \ --format="table(bindings.role)"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 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) - Artifact Registry Administrator (
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 Your Profile > Settings > Access tokens > +Create new token - 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 project Google Cloud 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 pemesanan 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 pengambilan 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 membuat cluster GKE. Untuk memastikan bahwa Google Cloud telah selesai membuat cluster, buka cluster Kubernetes di konsol Google Cloud .
Membuat 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, lakukan hal berikut:
Membuat skrip workload
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 fine-tuning: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 fine-tuning
Buat Repositori Docker Artifact Registry:
Di direktori
llm-finetuning-gemmayang Anda buat di langkah sebelumnya, jalankan perintah berikut untuk membuat image fine-tuning dan mengirimkannya ke Artifact Registry.Ekspor URL gambar. Anda akan menggunakannya di langkah selanjutnya dalam tutorial ini:
Memulai workload fine-tuning
Untuk memulai workload fine-tuning, lakukan hal berikut:
Terapkan manifes finetune untuk membuat tugas fine-tuning:
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 fine-tuning memerlukan waktu sekitar 45 menit untuk selesai. Tugas ini menyimpan checkpoint setiap 20 langkah dan mengirimkan adaptor Low-Rank Adaptation (LoRA) yang telah disesuaikan ke repositori Hugging Face pribadi bernama
gemma-31b-text-to-sql.Setelah tugas selesai, dapatkan URL model yang telah Anda sesuaikan di Hugging Face, lalu buka URL tersebut di browser:
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 fine-tuning yang sehat, Anda akan melihat penggunaan semua 8 GPU Anda meningkat dan stabil ke tingkat yang tinggi selama pelatihan.
- Durasi tugas: tugas akan memerlukan waktu sekitar 45 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 fine-tuning, jalankan perintah berikut:
Untuk menghapus cluster GKE, jalankan perintah berikut:
Untuk menghapus repositori Artifact Registry, jalankan perintah berikut: