1. Pengantar
Ringkasan
Cloud Run adalah platform container di Google Cloud yang memudahkan Anda menjalankan kode dalam container, tanpa mengharuskan Anda mengelola cluster.
Cloud Run menawarkan GPU L4 atau NVIDIA RTX PRO 6000 Blackwell. Ada satu GPU per instance Cloud Run, dan penskalaan otomatis Cloud Run masih berlaku, termasuk penskalaan hingga nol instance saat tidak ada permintaan.
Salah satu kasus penggunaan GPU adalah menjalankan model bahasa besar (LLM) terbuka Anda sendiri. Tutorial ini akan memandu Anda men-deploy layanan yang menjalankan LLM.
Codelab ini menjelaskan cara men-deploy model terbuka Gemma 4 di Cloud Run menggunakan container bawaan dengan library inferensi vLLM.
Yang akan Anda pelajari
- Cara menggunakan GPU di Cloud Run.
- Cara men-deploy model Gemma 4 2B yang disesuaikan dengan petunjuk Google di Cloud Run menggunakan vLLM sebagai mesin inferensi.
2. Penyiapan dan Persyaratan
Prasyarat
- Anda login ke Konsol Cloud.
- Anda telah men-deploy layanan Cloud Run sebelumnya. Misalnya, Anda dapat mengikuti panduan memulai men-deploy layanan web dari kode sumber untuk memulai.
3. Mengaktifkan API dan Menetapkan Variabel Lingkungan
Mengaktifkan API
Sebelum dapat mulai menggunakan codelab ini, ada beberapa API yang perlu Anda aktifkan. Codelab ini mengharuskan penggunaan API berikut. Anda dapat mengaktifkan API tersebut dengan menjalankan perintah berikut:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com
Menetapkan Variabel Lingkungan
Konfigurasi ID project Anda di bawah.
export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=europe-west4
export SERVICE_NAME=gemma4-cr-codelab
export SERVICE_ACCOUNT_NAME=gemma4-cr-sa
export SERVICE_ACCOUNT_ADDRESS=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
4. Membuat akun layanan
Akun layanan ini digunakan sebagai identitas layanan Cloud Run.
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="Cloud Run gemma 4 SA"
5. Men-deploy layanan
Untuk men-deploy model Gemma di Cloud Run, gunakan perintah gcloud CLI berikut dengan setelan yang direkomendasikan:
CONTAINER_ARGS=(
"serve"
"google/gemma-4-E2B-it"
"--enable-chunked-prefill"
"--enable-prefix-caching"
"--generation-config=auto"
"--enable-auto-tool-choice"
"--tool-call-parser=gemma4"
"--reasoning-parser=gemma4"
"--dtype=bfloat16"
"--max-num-seqs=64"
"--gpu-memory-utilization=0.95"
"--tensor-parallel-size=1"
"--port=8080"
"--host=0.0.0.0"
)
gcloud beta run deploy $SERVICE_NAME \
--image "us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:gemma4" \
--project $PROJECT_ID \
--region $REGION \
--execution-environment gen2 \
--no-allow-unauthenticated \
--cpu 20 \
--memory 80Gi \
--gpu 1 \
--gpu-type nvidia-rtx-pro-6000 \
--no-gpu-zonal-redundancy \
--no-cpu-throttling \
--max-instances 3 \
--concurrency 64 \
--timeout 600 \
--service-account $SERVICE_ACCOUNT_ADDRESS \
--startup-probe tcpSocket.port=8080,initialDelaySeconds=240,failureThreshold=1,timeoutSeconds=240,periodSeconds=240 \
--command "vllm" \
--args=$(IFS=','; echo "${CONTAINER_ARGS[*]}")
6. Menguji layanan
Setelah di-deploy, Anda dapat menggunakan layanan proxy pengembangan Cloud Run yang otomatis menambahkan token ID untuk Anda atau Anda dapat melakukan curl pada URL layanan secara langsung.
Menggunakan layanan proxy pengembangan Cloud Run
Pertama, mulai proxy
gcloud run services proxy $SERVICE_NAME \
--project $PROJECT \
--region $REGION \
--port=9090
Jalankan perintah berikut untuk mengirim permintaan di tab terminal terpisah, sehingga proxy tetap berjalan. Proxy berjalan di localhost:9090
curl http://localhost:9090/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemma-4-E2B-it",
"messages": [{"role": "user", "content": "Why is the sky blue?"}],
"chat_template_kwargs": {
"enable_thinking": true
},
"skip_special_tokens": false
}'
Anda akan melihat output yang mirip dengan berikut ini:
{
"id": "chatcmpl-9cf1ab1450487047",
"object": "chat.completion",
"created": 1774904187,
"model": "google/gemma-4-E2B-it",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The short answer is a phenomenon called **Rayleigh scattering**...",
"function_call": null,
"tool_calls": [],
"reasoning": "* Question: \"Why is the sky blue?\"\n..."
},
"finish_reason": "stop",
"stop_reason": 106
}
],
"usage": {
"prompt_tokens": 21,
"total_tokens": 877,
"completion_tokens": 856
}
}
Menggunakan URL layanan secara langsung
Pertama, ambil URL untuk layanan yang di-deploy.
SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region $REGION --format 'value(status.url)')
Lakukan curl pada layanan
curl $SERVICE_URL/v1/chat/completions \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemma-4-E2B-it",
"messages": [{"role": "user", "content": "Why is the sky blue?"}],
"chat_template_kwargs": {
"enable_thinking": true
},
"skip_special_tokens": false
}'
7. Selamat!
Selamat, Anda telah menyelesaikan codelab ini.
Sebaiknya tinjau dokumentasi Cloud Run
Yang telah kita bahas
- Cara menggunakan GPU di Cloud Run.
- Cara men-deploy model Gemma 4 (2B) Google di Cloud Run menggunakan vLLM sebagai mesin inferensi.
8. Pembersihan
Untuk menghindari biaya yang tidak disengaja, (misalnya, jika layanan Cloud Run tidak sengaja dipanggil lebih banyak dari alokasi pemanggilan Cloud Run bulanan Anda di paket gratis), Anda dapat menghapus Cloud Run atau menghapus project yang Anda buat di Langkah 2.
Untuk menghapus layanan Cloud Run, buka Konsol Cloud Cloud Run di https://console.cloud.google.com/run dan hapus layanan gemma4-cr-codelab. Anda mungkin juga ingin menghapus akun layanan gemma4-cr-codelab-sa.
Jika Anda memilih untuk menghapus seluruh project, Anda dapat membuka https://console.cloud.google.com/cloud-resource-manager, memilih project yang Anda buat di Langkah 2, dan memilih Hapus. Jika Anda menghapus project, Anda harus mengubah project di Cloud SDK. Anda dapat melihat daftar semua project yang tersedia dengan menjalankan gcloud projects list.