1. Introducción
Descripción general
Cloud Run es una plataforma de contenedores en Google Cloud que facilita la ejecución de tu código en un contenedor sin necesidad de administrar un clúster.
Cloud Run ofrece una GPU L4 o NVIDIA RTX PRO 6000 Blackwell. Hay una GPU por instancia de Cloud Run, y el ajuste de escala automático de Cloud Run sigue aplicándose, incluido el ajuste a cero instancias cuando no hay solicitudes.
Un caso de uso de las GPUs es ejecutar tus propios modelos de lenguaje grandes (LLM) abiertos. En este instructivo, se explica cómo implementar un servicio que ejecuta un LLM.
En este codelab, se describe cómo implementar modelos abiertos de Gemma 4 en Cloud Run con un contenedor compilado previamente con la biblioteca de inferencia de vLLM.
Qué aprenderás
- Cómo usar GPUs en Cloud Run
- Cómo implementar el modelo Gemma 4 2B ajustado para instrucciones de Google en Cloud Run con vLLM como motor de inferencia
2. Configuración y requisitos
Requisitos previos
- Accediste a la consola de Cloud.
- Ya implementaste un servicio de Cloud Run. Por ejemplo, puedes seguir la guía de inicio rápido para implementar un servicio web a partir del código fuente para comenzar.
3. Habilita las APIs y establece las variables de entorno
Habilita las APIs
Antes de comenzar a usar este codelab, deberás habilitar varias APIs. En este codelab, se requiere el uso de las siguientes APIs. Para habilitar esas APIs, ejecuta el siguiente comando:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com
Configura variables de entorno
Configura el ID del proyecto a continuació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. Crea una cuenta de servicio
Esta cuenta de servicio se usa como la identidad del servicio de Cloud Run.
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="Cloud Run gemma 4 SA"
5. Implemente el servicio
Para implementar modelos de Gemma en Cloud Run, usa el siguiente comando de la CLI de gcloud con la configuración recomendada:
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. Prueba el servicio
Una vez que se implemente, puedes usar el servicio de proxy de desarrollo de Cloud Run, que agrega automáticamente un token de ID por ti, o bien puedes usar curl en la URL del servicio directamente.
Usa el servicio de proxy de desarrollo de Cloud Run
Primero, inicia el proxy
gcloud run services proxy $SERVICE_NAME \
--project $PROJECT \
--region $REGION \
--port=9090
Ejecuta el siguiente comando para enviar una solicitud en una pestaña separada de la terminal y dejar el proxy en ejecución. El proxy se ejecuta en 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
}'
Debería ver un resultado similar al siguiente:
{
"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
}
}
Cómo usar la URL del servicio directamente
Primero, recupera la URL del servicio implementado.
SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region $REGION --format 'value(status.url)')
Ejecuta curl en el servicio
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. ¡Felicitaciones!
¡Felicitaciones por completar el codelab!
Te recomendamos que revises la documentación de Cloud Run.
Temas abordados
- Cómo usar GPUs en Cloud Run
- Cómo implementar el modelo Gemma 4 (2B) de Google en Cloud Run con vLLM como motor de inferencia
8. Limpia
Para evitar cargos involuntarios (por ejemplo, si los servicios de Cloud Run se invocan de forma involuntaria más veces que tu asignación mensual de invocaciones de Cloud Run en el nivel gratuito), puedes borrar Cloud Run o el proyecto que creaste en el paso 2.
Para borrar el servicio de Cloud Run, ve a la consola de Cloud Run en https://console.cloud.google.com/run y borra el servicio gemma4-cr-codelab. También puedes borrar la cuenta de servicio gemma4-cr-codelab-sa.
Si decides borrar todo el proyecto, puedes ir a https://console.cloud.google.com/cloud-resource-manager, seleccionar el proyecto que creaste en el paso 2 y elegir Borrar. Si borras el proyecto, deberás cambiar de proyecto en el SDK de Cloud. Para ver la lista de todos los proyectos disponibles, ejecuta gcloud projects list.