Menyajikan LLM terbuka di GKE dengan arsitektur yang telah dikonfigurasi sebelumnya

Halaman ini menunjukkan cara men-deploy dan menayangkan model bahasa besar (LLM) open source populer dengan cepat di GKE untuk inferensi menggunakan arsitektur referensi yang telah dikonfigurasi sebelumnya dan siap produksi. Pendekatan ini menggunakan Infrastruktur sebagai Kode (IaC), dengan Terraform yang di-wrap dalam skrip CLI, untuk membuat lingkungan GKE yang standar, aman, dan skalabel yang dirancang untuk beban kerja inferensi AI.

Dalam panduan ini, Anda akan men-deploy dan menyajikan LLM menggunakan node GPU host tunggal di GKE dengan framework penayangan vLLM. Panduan ini memberikan petunjuk dan konfigurasi untuk men-deploy model terbuka berikut:

Panduan ini ditujukan untuk engineer Machine Learning (ML) serta spesialis Data dan AI yang tertarik untuk mempelajari kemampuan orkestrasi container Kubernetes dalam menyajikan model terbuka untuk inferensi. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang dirujuk dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE umum.

Untuk analisis mendetail tentang performa dan biaya penayangan model untuk model terbuka ini, Anda juga dapat menggunakan alat Panduan Memulai Inferensi GKE. Untuk mempelajari lebih lanjut, lihat Panduan memulai Inferensi GKE dan notebook Colab yang menyertainya.

Mendapatkan akses ke model

Untuk mengakses model melalui Hugging Face, Anda memerlukan token Hugging Face.

Ikuti langkah-langkah berikut untuk membuat token baru jika Anda belum memilikinya:

  1. Klik Profil Anda > Setelan > Token Akses.
  2. Pilih New Token.
  3. Tentukan Nama pilihan Anda dan Peran minimal Baca.
  4. Pilih Generate a token.
  5. Salin token yang dihasilkan ke papan klip Anda.

Menyediakan lingkungan inferensi GKE

Di bagian ini, Anda akan men-deploy infrastruktur yang diperlukan untuk menayangkan model.

Meluncurkan Cloud Shell

Panduan ini menggunakan Cloud Shell untuk menjalankan perintah. Cloud Shell telah diinstal sebelumnya dengan alat yang diperlukan, termasuk gcloud, kubectl, dan git.

Di konsol Google Cloud , mulai instance Cloud Shell:

Buka Cloud Shell

Tindakan ini akan meluncurkan sesi di panel bawah konsol Google Cloud .

Men-deploy arsitektur dasar

Untuk menyediakan cluster GKE dan resource yang diperlukan untuk mengakses model dari Hugging Face, ikuti langkah-langkah berikut:

  1. Di Cloud Shell, clone repositori berikut:

    git clone https://github.com/GoogleCloudPlatform/accelerated-platforms --branch hf-model-tutorial && \
    cd accelerated-platforms && \
    export ACP_REPO_DIR="$(pwd)"
    
  2. Tetapkan variabel lingkungan Anda:

    export TF_VAR_platform_default_project_id=PROJECT_ID
    export HF_TOKEN_READ=HF_TOKEN
    

    Ganti nilai berikut:

    • PROJECT_ID: Google Cloud project ID Anda.
    • HF_TOKEN: token Hugging Face yang Anda buat sebelumnya.
  3. Panduan ini memerlukan Terraform versi 1.8.0 atau yang lebih baru. Cloud Shell telah menginstal Terraform v1.5.7 secara default.

    Untuk mengupdate versi Terraform di Cloud Shell, Anda dapat menjalankan skrip berikut. Skrip ini menginstal alat terraform-switcher dan membuat perubahan pada lingkungan shell Anda.

    "${ACP_REPO_DIR}/tools/bin/install_terraform.sh"
    source ~/.bashrc
    
  4. Jalankan skrip deployment berikut. Skrip deployment mengaktifkan API yang diperlukan dan menyediakan infrastruktur yang diperlukan untuk panduan ini. Google Cloud Hal ini mencakup jaringan VPC baru, cluster GKE dengan node pribadi, dan resource pendukung lainnya. Skrip dapat memerlukan waktu beberapa menit untuk menyelesaikan prosesnya.

    Anda dapat menyajikan model menggunakan GPU di cluster GKE Autopilot atau Standard. Cluster Autopilot memberikan pengalaman Kubernetes yang terkelola sepenuhnya. Untuk mengetahui informasi selengkapnya tentang memilih mode operasi GKE yang paling sesuai untuk workload Anda, lihat Tentang mode operasi GKE.

    Autopilot

    "${ACP_REPO_DIR}/platforms/gke/base/tutorials/hf-gpu-model/deploy-ap.sh"
    

    Standar

    "${ACP_REPO_DIR}/platforms/gke/base/tutorials/hf-gpu-model/deploy-standard.sh"
    

    Setelah skrip ini selesai, Anda akan memiliki cluster GKE yang siap untuk beban kerja inferensi.

  5. Jalankan perintah berikut untuk menetapkan variabel lingkungan dari konfigurasi bersama:

    source "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/terraform/_shared_config/scripts/set_environment_variables.sh"
    
  6. Skrip deployment membuat secret di Secret Manager untuk menyimpan token Hugging Face Anda. Anda harus menambahkan token secara manual ke secret ini sebelum men-deploy cluster. Di Cloud Shell, jalankan perintah ini untuk menambahkan token ke Secret Manager.

    echo ${HF_TOKEN_READ} | gcloud secrets versions add ${huggingface_hub_access_token_read_secret_manager_secret_name} \
        --data-file=- \
        --project=${huggingface_secret_manager_project_id}
    

Men-deploy model terbuka

Sekarang Anda siap mendownload dan men-deploy model.

  1. Tetapkan variabel lingkungan untuk model yang ingin Anda deploy:

    Gemma 3 27B-it

    export ACCELERATOR_TYPE="h100"
    export HF_MODEL_ID="google/gemma-3-27b-it"
    

    Llama 4 Scout 17B-16E-Instruct

    export ACCELERATOR_TYPE="h100"
    export HF_MODEL_ID="meta-llama/llama-4-scout-17b-16e-instruct"
    

    Qwen3 32B

    export ACCELERATOR_TYPE="h100"
    export HF_MODEL_ID="qwen/qwen3-32b"
    

    gpt-oss 20B

    export ACCELERATOR_TYPE="h100"
    export HF_MODEL_ID="openai/gpt-oss-20b"
    

    Untuk konfigurasi tambahan, termasuk varian model dan jenis GPU lainnya, lihat manifes yang tersedia di repositori GitHub accelerated-platforms.

  2. Dapatkan variabel lingkungan dari deployment Anda. Variabel lingkungan ini berisi detail konfigurasi yang diperlukan dari infrastruktur yang Anda sediakan.

    source "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/terraform/_shared_config/scripts/set_environment_variables.sh"
    
  3. Jalankan skrip berikut untuk mengonfigurasi Job Kubernetes yang mendownload model ke Cloud Storage:

    "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/model-download/configure_huggingface.sh"
    
  4. Deploy Tugas download model:

    kubectl apply --kustomize "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/model-download/huggingface"
    
  5. Tunggu hingga download selesai. Pantau status Tugas dan saat COMPLETIONS adalah 1/1, tekan Ctrl+C untuk keluar.

    watch --color --interval 5 --no-title "kubectl --namespace=${huggingface_hub_downloader_kubernetes_namespace_name} get job/${HF_MODEL_ID_HASH}-hf-model-to-gcs
    
  6. Deploy workload inferensi ke cluster GKE Anda.

    "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/online-inference-gpu/configure_deployment.sh"
    
    kubectl apply --kustomize "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/online-inference-gpu/vllm/${ACCELERATOR_TYPE}-${HF_MODEL_NAME}"
    

Menguji deployment Anda

  1. Tunggu hingga Pod server inferensi siap. Saat kolom READY adalah 1/1, tekan Ctrl+C untuk keluar.

    watch --color --interval 5 --no-title "kubectl --namespace=${ira_online_gpu_kubernetes_namespace_name} get deployment/vllm-${ACCELERATOR_TYPE}-${HF_MODEL_NAME}"
    
  2. Jalankan skrip berikut untuk menyiapkan penerusan port dan mengirim permintaan contoh ke model. Contoh ini menggunakan format payload untuk model Gemma 3 27b-it.

    kubectl --namespace=${ira_online_gpu_kubernetes_namespace_name} port-forward service/vllm-${ACCELERATOR_TYPE}-${HF_MODEL_NAME} 8000:8000 >/dev/null &
    PF_PID=$!
    curl http://127.0.0.1:8000/v1/chat/completions \
      --data '{
        "model": "/gcs/'${HF_MODEL_ID}'",
        "messages": [ { "role": "user", "content": "What is GKE?" } ]
      }' \
      --header "Content-Type: application/json" \
      --request POST \
      --show-error \
      --silent | jq
    kill -9 ${PF_PID}
    

    Anda akan melihat respons JSON dari model yang menjawab pertanyaan.

Pembersihan

Untuk menghindari timbulnya tagihan, hapus semua resource yang Anda buat.

  1. Hapus workload inferensi:

    kubectl delete --ignore-not-found --kustomize "${ACP_REPO_DIR}/platforms/gke/base/use-cases/inference-ref-arch/kubernetes-manifests/online-inference-gpu/vllm/${ACCELERATOR_TYPE}-${HF_MODEL_NAME}"
    
  2. Hapus cluster GKE dasar:

    Autopilot

    "${ACP_REPO_DIR}/platforms/gke/base/tutorials/hf-gpu-model/teardown-ap.sh"
    

    Standar

    "${ACP_REPO_DIR}/platforms/gke/base/tutorials/hf-gpu-model/teardown-standard.sh"
    

Langkah berikutnya