Tutorial ini menunjukkan cara men-deploy dan menyajikan Qwen3 model bahasa besar (LLM) dengan framework penyajian vLLM. Anda men-deploy model pada satu instance virtual machine (VM) A4 di Google Kubernetes Engine (GKE).
Tutorial ini ditujukan untuk engineer machine learning (ML), administrator dan operator platform, serta spesialis data dan AI yang tertarik menggunakan kemampuan orkestrasi container Kubernetes untuk menangani workload inferensi.
Tujuan
Mengakses Qwen3 menggunakan Hugging Face.
Menyiapkan lingkungan Anda.
Membuat cluster GKE dalam mode Autopilot.
Membuat secret Kubernetes untuk kredensial Hugging Face.
Men-deploy container vLLM ke cluster GKE Anda.
Berinteraksi dengan Qwen3 menggunakan curl.
Jalankan pembersihan.
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan Kalkulator Harga.
Sebelum memulai
- Login ke akun Anda. Google Cloud 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
- Memilih 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 Google Cloud project yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama Google Cloud project Anda.
-
Pastikan penagihan diaktifkan untuk Google Cloud project Anda.
Aktifkan API yang diperlukan:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable container.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
- Memilih 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 Google Cloud project yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama Google Cloud project Anda.
-
Pastikan penagihan diaktifkan untuk Google Cloud project Anda.
Aktifkan API yang diperlukan:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable container.googleapis.com
-
Berikan peran ke akun pengguna Anda. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut:
roles/container.admingcloud 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.
- Login ke atau buat akun Hugging Face.
Mengakses Qwen3 menggunakan Hugging Face
Untuk menggunakan Hugging Face guna mengakses Qwen3, ikuti langkah-langkah berikut:
- Login ke Hugging Face
- Buat token akses
readHugging Face. Klik Your Profile > Settings > Access Tokens > +Create new token. - Tentukan nama pilihan Anda untuk token, lalu pilih peran. Tingkat izin peran minimum yang dapat Anda pilih untuk tutorial ini adalah Read.
- Pilih Create token.
- Salin dan simpan token yang dihasilkan ke papan klip Anda. Anda akan menggunakannya nanti dalam tutorial ini.
Menyiapkan lingkungan Anda
Untuk menyiapkan lingkungan Anda, tetapkan variabel lingkungan default:
gcloud config set project PROJECT_ID
gcloud config set billing/quota_project PROJECT_ID
export PROJECT_ID=$(gcloud config get project)
export RESERVATION_URL=RESERVATION_URL
export REGION=REGION
export CLUSTER_NAME=CLUSTER_NAME
export HUGGING_FACE_TOKEN=HUGGING_FACE_TOKEN
export NETWORK=NETWORK_NAME
export SUBNETWORK=SUBNETWORK_NAME
Ganti kode berikut:
PROJECT_ID: ID project tempat Anda ingin membuat cluster GKE . Google CloudRESERVATION_URL: URL pemesanan yang ingin Anda gunakan untuk membuat cluster GKE. Berdasarkan project tempat pemesanan berada, tentukan salah satu nilai berikut:Pemesanan ada di project Anda:
RESERVATION_NAMEPemesanan ada di project lain, dan project Anda dapat menggunakan pemesanan:
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAME
REGION: region tempat Anda ingin membuat cluster GKE. Anda hanya dapat membuat cluster di region tempat pemesanan Anda berada.CLUSTER_NAME: nama cluster GKE yang akan dibuat.HUGGING_FACE_TOKEN: token akses Hugging Face yang Anda buat di bagian sebelumnya.NETWORK_NAME: jaringan yang digunakan cluster GKE. Tentukan salah satu nilai berikut:Jika Anda membuat jaringan kustom, tentukan nama jaringan Anda.
Jika tidak, tentukan
default.
SUBNETWORK_NAME: subnetwork yang digunakan cluster GKE. Tentukan salah satu nilai berikut:Jika Anda membuat subnetwork kustom, tentukan nama subnetwork Anda. Anda hanya dapat menentukan subnetwork yang ada di region yang sama dengan pemesanan.
Jika tidak, tentukan
default.
Membuat cluster GKE dalam mode Autopilot
Untuk membuat cluster GKE dalam mode Autopilot, jalankan perintah berikut:
gcloud container clusters create-auto $CLUSTER_NAME \
--project=$PROJECT_ID \
--region=$REGION \
--release-channel=rapid \
--network=$NETWORK \
--subnetwork=$SUBNETWORK
Pembuatan cluster GKE mungkin memerlukan waktu beberapa saat hingga selesai. Untuk memverifikasi bahwa Google Cloud telah selesai membuat cluster Anda, buka cluster Kubernetes di Google Cloud konsol.
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:gcloud container clusters get-credentials $CLUSTER_NAME \ --location=$REGIONBuat secret Kubernetes untuk menyimpan token Hugging Face Anda:
kubectl create secret generic hf-secret \ --from-literal=hf_token=${HUGGING_FACE_TOKEN} \ --dry-run=client -o yaml | kubectl apply -f -
Men-deploy container vLLM ke cluster GKE Anda
Untuk men-deploy container vLLM guna menyajikan model Qwen3 menggunakan Deployment Kubernetes, lakukan hal berikut:
Buat file
qwen3-235b-deploy.yamldengan deployment vLLM yang Anda pilih. :apiVersion: apps/v1 kind: Deployment metadata: name: vllm-qwen3-deployment spec: replicas: 1 selector: matchLabels: app: qwen3-server template: metadata: labels: app: qwen3-server ai.gke.io/model: Qwen3-235B-A22B-Instruct-2507 ai.gke.io/inference-server: vllm spec: containers: - name: qwen-inference-server image: us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250801_0916_RC01 resources: requests: cpu: "10" memory: "1000Gi" ephemeral-storage: "500Gi" nvidia.com/gpu: "8" limits: cpu: "10" memory: "1000Gi" ephemeral-storage: "500Gi" nvidia.com/gpu: "8" command: ["python3", "-m", "vllm.entrypoints.openai.api_server"] args: - --model=$(MODEL_ID) - --tensor-parallel-size=8 - --host=0.0.0.0 - --port=8000 - --max-model-len=8192 - --max-num-seqs=4 - --dtype=bfloat16 env: - name: MODEL_ID value: "Qwen/Qwen3-235B-A22B-Instruct-2507" - name: HUGGING_FACE_HUB_TOKEN valueFrom: secretKeyRef: name: hf-secret key: hf_token volumeMounts: - mountPath: /dev/shm name: dshm livenessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 1320 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 1320 periodSeconds: 5 volumes: - name: dshm emptyDir: medium: Memory nodeSelector: cloud.google.com/gke-accelerator: nvidia-b200 cloud.google.com/reservation-name: RESERVATION_URL cloud.google.com/reservation-affinity: "specific" cloud.google.com/gke-gpu-driver-version: latest --- apiVersion: v1 kind: Service metadata: name: qwen3-service spec: selector: app: qwen3-server type: ClusterIP ports: - protocol: TCP port: 8000 targetPort: 8000 --- apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: vllm-qwen3-monitoring spec: selector: matchLabels: app: qwen3-server endpoints: - port: 8000 path: /metrics interval: 30sTerapkan file
qwen3-235b-deploy.yamlke cluster GKE Anda:kubectl apply -f qwen3-235b-deploy.yamlSelama proses deployment, container harus mendownload model
Qwen3-235B-A22B-Instruct-2507dari Hugging Face. Oleh karena itu, deployment container mungkin memerlukan waktu hingga 30 menit hingga selesai.Untuk melihat status penyelesaian, jalankan perintah berikut:
kubectl wait \ --for=condition=Available \ --timeout=1500s deployment/vllm-qwen3-deploymentFlag
--timeout=1500smemungkinkan perintah memantau deployment hingga 25 menit.
Berinteraksi dengan Qwen3 menggunakan curl
Untuk memverifikasi model Qwen3 yang Anda deploy, lakukan hal berikut:
Siapkan penerusan port ke Qwen3:
kubectl port-forward service/qwen3-service 8000:8000Buka jendela terminal baru. Kemudian, Anda dapat melakukan chat dengan model Anda menggunakan
curl:curl http://127.0.0.1:8000/v1/chat/completions \ -X POST \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen/Qwen3-235B-A22B-Instruct-2507", "messages": [ { "role": "user", "content": "Describe a GPU in one short sentence?" } ] }'Outputnya mirip dengan hal berikut ini:
{ "id": "chatcmpl-a926ddf7ef2745ca832bda096e867764", "object": "chat.completion", "created": 1755023619, "model": "Qwen/Qwen3-235B-A22B-Instruct-2507", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "A GPU is a specialized electronic circuit designed to rapidly process and render graphics and perform parallel computations.", "refusal": null, "annotations": null, "audio": null, "function_call": null, "tool_calls": [], "reasoning_content": null }, "logprobs": null, "finish_reason": "stop", "stop_reason": null } ], "service_tier": null, "system_fingerprint": null, "usage": { "prompt_tokens": 16, "total_tokens": 36, "completion_tokens": 20, "prompt_tokens_details": null }, "prompt_logprobs": null, "kv_transfer_params": null }
Mengamati performa model
Jika ingin mengamati performa model, Anda dapat menggunakan integrasi dasbor vLLM di Cloud Monitoring. Dasbor ini membantu Anda melihat metrik performa penting untuk model Anda seperti throughput token, latensi jaringan, dan rasio error. Untuk mengetahui informasi selengkapnya, lihat vLLM dalam dokumentasi Monitoring.
Jalankan 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 project Anda
Hapus a Google Cloud project:
gcloud projects delete PROJECT_ID
Menghapus cluster GKE Anda
Untuk menghapus cluster GKE Anda, jalankan perintah berikut:
gcloud container clusters delete $CLUSTER_NAME \
--region=$REGION
Menghapus resource
Untuk menghapus file qwen3-235b-deploy.yaml dan secret Kubernetes dari cluster GKE, jalankan perintah berikut:
kubectl delete -f qwen3-235b-deploy.yaml
kubectl delete secret hf-secret