1. Giriş
Genel Bakış
Cloud Run, Google Cloud'da bulunan bir kapsayıcı platformudur. Küme yönetmenizi gerektirmeden kodunuzu kapsayıcıda çalıştırmanızı kolaylaştırır.
Cloud Run, L4 veya NVIDIA RTX PRO 6000 Blackwell GPU sunar. Cloud Run örneği başına bir GPU vardır ve Cloud Run otomatik ölçeklendirme özelliği, istek olmadığında sıfır örneğe ölçeklendirme de dahil olmak üzere geçerliliğini korur.
GPU'ların kullanım alanlarından biri, kendi açık büyük dil modellerinizi (LLM'ler) çalıştırmaktır. Bu eğitim, LLM çalıştıran bir hizmeti dağıtma konusunda size yol gösterir.
Bu codelab'de, vLLM çıkarım kitaplığı içeren önceden oluşturulmuş bir kapsayıcı kullanarak Cloud Run'da Gemma 4 açık modellerinin nasıl dağıtılacağı açıklanmaktadır.
Neler öğreneceksiniz?
- Cloud Run'da GPU'ları kullanma
- Google'ın Gemma 4 2B talimat için ayarlanmış modelini, çıkarım motoru olarak vLLM kullanarak Cloud Run'da dağıtma.
2. Kurulum ve Gereksinimler
Ön koşullar
- Cloud Console'a giriş yapmış olmanız gerekir.
- Daha önce bir Cloud Run hizmeti dağıtmış olmanız gerekir. Örneğin, başlamak için Kaynak koddan web hizmeti dağıtma hızlı başlangıç kılavuzunu inceleyebilirsiniz.
3. API'leri etkinleştirme ve ortam değişkenlerini ayarlama
API'leri etkinleştir
Bu codelab'i kullanmaya başlamadan önce etkinleştirmeniz gereken birkaç API vardır. Bu codelab'de aşağıdaki API'lerin kullanılması gerekir. Bu API'leri aşağıdaki komutu çalıştırarak etkinleştirebilirsiniz:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com
Ortam değişkenlerini ayarlama
Proje kimliğinizi aşağıda yapılandırın.
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. Hizmet hesabı oluşturma
Bu hizmet hesabı, Cloud Run hizmet kimliği olarak kullanılır.
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="Cloud Run gemma 4 SA"
5. Hizmeti dağıtma
Gemma modellerini Cloud Run'da dağıtmak için aşağıdaki gcloud CLI komutunu önerilen ayarlarla birlikte kullanın:
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. Hizmeti test etme
Dağıtım tamamlandıktan sonra, sizin için otomatik olarak kimlik jetonu ekleyen Cloud Run geliştirme proxy hizmetini kullanabilir veya hizmet URL'sini doğrudan curl komutuyla çağırabilirsiniz.
Cloud Run geliştirme proxy hizmetini kullanma
Öncelikle proxy'yi başlatın.
gcloud run services proxy $SERVICE_NAME \
--project $PROJECT \
--region $REGION \
--port=9090
Proxy'yi çalışır durumda bırakarak ayrı bir terminal sekmesinde istek göndermek için aşağıdaki komutu çalıştırın. Proxy, localhost:9090 üzerinde çalışır.
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
}'
Şuna benzer bir çıkış alırsınız:
{
"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
}
}
Hizmet URL'sini doğrudan kullanma
Öncelikle dağıtılan hizmetin URL'sini alın.
SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region $REGION --format 'value(status.url)')
Hizmeti kıvırma
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. Tebrikler!
Codelab'i tamamladığınız için tebrikler.
Cloud Run belgelerini incelemenizi öneririz.
İşlediğimiz konular
- Cloud Run'da GPU'ları kullanma
- Çıkarım motoru olarak vLLM'yi kullanarak Google'ın Gemma 4 (2B) modelini Cloud Run'da dağıtma.
8. Temizleme
Yanlışlıkla ücretlendirilmemek için (örneğin, Cloud Run hizmetleri ücretsiz katmandaki aylık Cloud Run çağırma kotanızdan daha fazla sayıda çağrılırsa) Cloud Run'ı veya 2. adımda oluşturduğunuz projeyi silebilirsiniz.
Cloud Run hizmetini silmek için https://console.cloud.google.com/run adresinden Cloud Run Cloud Console'a gidin ve gemma4-cr-codelab hizmetini silin. gemma4-cr-codelab-sa hizmet hesabını da silmek isteyebilirsiniz.
Projenin tamamını silmeyi tercih ederseniz https://console.cloud.google.com/cloud-resource-manager adresine gidebilir, 2. adımda oluşturduğunuz projeyi seçip Sil'i tıklayabilirsiniz. Projeyi silerseniz Cloud SDK'nızda projeleri değiştirmeniz gerekir. gcloud projects list komutunu çalıştırarak kullanılabilir tüm projelerin listesini görüntüleyebilirsiniz.