Objetivos
Gemma 4 es la familia de modelos abiertos más eficiente de Google, que ofrece sólidas capacidades de razonamiento y de agente. El contexto largo, la multimodalidad, el razonamiento y la llamada a herramientas permiten que Gemma 4 controle la lógica compleja, la planificación de varios pasos, la codificación y los flujos de trabajo de agente.
En esta guía, se muestra cómo ejecutar la inferencia de LLM en GPUs de Cloud Run con Gemma y Ollama, y tiene los siguientes objetivos:
- Implementa Ollama con el Gemma 4 en un servicio de Cloud Run habilitado para GPU.
- Envía instrucciones al servicio de Ollama en su extremo privado.
Para aprender una forma alternativa de implementar modelos abiertos de Gemma 4 en Cloud Run con un contenedor vLLM, consulta Ejecuta modelos de Gemma 4 en Cloud Run.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Antes de comenzar
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Habilitar la API de Cloud Run
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.- Instala e inicializa gcloud CLI.
- Solicita una cuota de
Total Nvidia RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per regionen la API de Cloud Run Admin en la página Cuotas y límites del sistema para completar este instructivo.
Roles obligatorios
Si quieres obtener los permisos que necesitas para completar el instructivo, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Administrador de Cloud Run (
roles/run.admin) -
Administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin) -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) -
Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Otorga los roles
Console
-
En la Google Cloud consola de, dirígete a la página IAM.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Grant access.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Por lo general, es la dirección de correo electrónico que se usa para implementar el servicio de Cloud Run.
- En la lista Seleccionar un rol, elige uno.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
- Haz clic en Guardar.
gcloud
Para otorgar los roles de IAM necesarios a tu cuenta en tu proyecto, haz lo siguiente:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Reemplaza lo siguiente:
- PROJECT_NUMBER por el número de tu Google Cloud proyecto
- PROJECT_ID por el ID del Google Cloud proyecto.
- PRINCIPAL por la cuenta a la que agregarás la vinculación. Por lo general, es la dirección de correo electrónico que se usa para implementar el servicio de Cloud Run.
- ROLE por el rol que agregas a la cuenta del implementador.
Implementa el servicio de Ollama para la inferencia de LLM
Implementa el servicio en Cloud Run:
gcloud beta run deploy SERVICE-NAME \
--image "ollama/ollama:latest" \
--project PROJECT_ID \
--region REGION \
--no-allow-unauthenticated \
--cpu 20 \
--memory 80Gi \
--gpu 1 \
--gpu-type nvidia-rtx-pro-6000 \
--no-gpu-zonal-redundancy \
--max-instances 1 \
--concurrency 16 \
--timeout 600 \
--set-env-vars=OLLAMA_NUM_PARALLEL=16 \
--set-env-vars=OLLAMA_HOST=0.0.0.0:8080 \
--set-env-vars=OLLAMA_DEBUG=false \
--set-env-vars=OLLAMA_KEEP_ALIVE=-1 \
--startup-probe tcpSocket.port=8080,initialDelaySeconds=240,failureThreshold=1,timeoutSeconds=240,periodSeconds=240 \
--command "bash" \
--args="-c,(sleep 15 && ollama pull MODEL_NAME) & ollama serve"Reemplaza lo siguiente:
SERVICE-NAMEpor un nombre único para el servicio de Cloud Run.PROJECTpor el ID de tu Google Cloud proyecto.REGIONpor una Google Cloud región en la que se admitan las GPUsnvidia-rtx-pro-6000para Cloud Run, comous-central1. Para obtener una lista completa de las regiones admitidas para implementaciones habilitadas para GPU, consulta Configuración de GPU.MODEL_NAMEpor el nombre completo de una variante de Gemma 4.- Gemma 4 E2B:
gemma4:e2b - Gemma 4 E4B:
gemma4:e4b
- Gemma 4 E2B:
Gemma 4 26B y 31B requieren una configuración más avanzada de Cloud Run y vLLM con salida directa de VPC y Run:ai Model Streamer.
Ten en cuenta las siguientes marcas importantes en este comando:
--concurrency 16se configura para que coincida con el valor de la variable de entornoOLLAMA_NUM_PARALLEL.--gpu 1con--gpu-type nvidia-rtx-pro-6000asigna 1 GPU NVIDIA RTX PRO 6000 Blackwell a cada instancia de Cloud Run en el servicio.--max-instances 1especifica la cantidad máxima de instancias para escalar. Debe ser igual o inferior a la cuota de GPU NVIDIA RTX Pro 6000 de tu proyecto (Total NVIDIA RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per region).--no-allow-unauthenticatedrestringe el acceso no autenticado al servicio. Si mantienes el servicio privado, puedes confiar en la autenticación integrada de Identity and Access Management (IAM) de Cloud Run para la comunicación entre servicios. Consulta Administra el acceso mediante IAM.- Se requiere
--no-cpu-throttlingpara habilitar la GPU. --no-gpu-zonal-redundancyestablece opciones de redundancia zonal según tus requisitos de conmutación por error zonal y la cuota disponible. Consulta las opciones de redundancia zonal de GPU para obtener más detalles.
Configuración de simultaneidad para un rendimiento óptimo
En esta sección, se proporciona contexto sobre la configuración de simultaneidad recomendada. Para obtener una latencia de solicitud óptima, asegúrate de que la configuración --concurrency sea igual a la variable de entorno OLLAMA_NUM_PARALLEL de Ollama.
OLLAMA_NUM_PARALLELdetermina cuántos espacios de solicitud están disponibles por cada modelo para controlar las solicitudes de inferencia de forma simultánea.--concurrencydetermina cuántas solicitudes envía Cloud Run a una instancia de Ollama al mismo tiempo.
Si --concurrency excede OLLAMA_NUM_PARALLEL, Cloud Run puede enviar más solicitudes a un modelo en Ollama que para las ranuras de solicitud disponibles.
Esto lleva a que se pongan en cola las solicitudes dentro de Ollama, lo que aumenta la latencia de las solicitudes en cola. También genera un ajuste de escala automático menos responsivo, ya que las solicitudes en fila no activan Cloud Run para escalar horizontalmente y comenzar instancias nuevas.
Ollama también admite la entrega de varios modelos desde una GPU. Para evitar que las solicitudes se pongan en cola en la instancia de Ollama, configura --concurrency para que coincida con OLLAMA_NUM_PARALLEL.
Aumentar OLLAMA_NUM_PARALLEL también hace que las solicitudes paralelas tarden más.
Optimiza la utilización de GPU
Para obtener un uso de GPU óptimo, aumenta --concurrency y mantenlo dentro del
doble del valor de OLLAMA_NUM_PARALLEL. Si bien esto genera colas de solicitudes en Ollama, puede ayudar a mejorar la utilización: las instancias de Ollama pueden procesar inmediatamente las solicitudes de su cola, y las colas ayudan a absorber los aumentos repentinos del tráfico.
Prueba el servicio de Ollama implementado con curl
Ahora que implementaste el servicio de Ollama, puedes enviarle solicitudes. Sin embargo, si envías una solicitud directamente, Cloud Run responde con HTTP 401 Unauthorized.
Esto es intencional, ya que una API de inferencia de LLM está diseñada para que otros servicios la llamen, como una aplicación de frontend. Para obtener más información sobre la autenticación de servicio a servicio en Cloud Run, consulta Autenticación de servicio a servicio.
Para enviar solicitudes al servicio de Ollama, agrega un encabezado con un token de OIDC válido a las solicitudes, por ejemplo, mediante el proxy de desarrollador de Cloud Run:
Inicia el proxy y, cuando se te solicite instalar el componente
cloud-run-proxy, eligeY:gcloud run services proxy SERVICE-NAME \ --project PROJECT_ID \ --region REGION \ --port=9090Envía una solicitud a él en una pestaña separada de la terminal para dejar el proxy en ejecución. Ten en cuenta que el proxy se ejecuta en
localhost:9090:curl http://localhost:9090/api/generate -d '{ "model": "MODEL_NAME", "prompt": "Why is the sky blue?", "stream": false }' | jq -r '.response'Este comando debe proporcionar un resultado de transmisión similar al siguiente:
This is one of the most beautiful and fundamental questions in physics! The reason the sky appears blue is due to a phenomenon called **Rayleigh Scattering**. ...
Limpia
Para evitar cargos adicionales en tu Google Cloud cuenta, borra todos los recursos que implementaste con este instructivo.
Borra el proyecto
Si creaste un proyecto nuevo para este instructivo, bórralo. Si usaste un proyecto existente y necesitas conservarlo sin los cambios que agregaste en este instructivo, borra los recursos que creaste para el instructivo.
La manera más fácil de eliminar la facturación es borrar el proyecto que tú creaste para el instructivo.
Para borrar el proyecto, sigue estos pasos:
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que tú quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Elimina recursos de instructivos
Borra el servicio de Cloud Run que implementaste en este instructivo. Los servicios de Cloud Run no generan costos hasta que reciben solicitudes.
Para borrar tu servicio de Cloud Run, ejecuta el siguiente comando:
gcloud run services delete SERVICE-NAME
Reemplaza SERVICE-NAME por el nombre del servicio
También puedes borrar los servicios de Cloud Run desde la Google Cloud consola.
Quita la configuración de región predeterminada de
gcloudque agregaste durante la configuración en el instructivo:gcloud config unset run/regionQuita la configuración del proyecto:
gcloud config unset project