Objectifs
Gemma 4 est la famille de modèles ouverts la plus efficace de Google, offrant de solides capacités de raisonnement et d'agent. Le contexte long, la multimodalité, le raisonnement et l'appel d'outils permettent à Gemma 4 de gérer une logique complexe, une planification en plusieurs étapes, le codage et les workflows agentifs.
Ce guide explique comment exécuter l'inférence LLM sur les GPU Cloud Run avec Gemma et Ollama, et poursuit les objectifs suivants :
- Déployer Ollama avec le Gemma 4 sur un service Cloud Run compatible GPU.
- Envoyer des invites au service Ollama sur son point de terminaison privé.
Pour découvrir une autre façon de déployer des modèles ouverts Gemma 4 sur Cloud Run à l'aide d'un conteneur vLLM, consultez Exécuter des modèles Gemma 4 sur Cloud Run.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud:
Obtenez une estimation des coûts en fonction de votre utilisation prévue,
utilisez le simulateur de coût.
Avant de commencer
-
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.
Activer l'API Cloud Run
Rôles requis pour activer les API
Pour activer les API, vous avez besoin de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.- Installez et initialisez gcloud CLI.
- Demandez le quota
Total Nvidia RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per regionsous l'API Cloud Run Admin sur la page Quotas et limites du système pour suivre ce tutoriel.
Rôles requis
Pour obtenir les autorisations nécessaires pour suivre le tutoriel, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
- Administrateur Cloud Run (
roles/run.admin) - Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin) - Utilisateur du compte de service (
roles/iam.serviceAccountUser) - Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Attribuer les rôles
Console
-
Dans la console Google Cloud , accédez à la page IAM.
Accéder à IAM - Sélectionnez le projet.
- Cliquez sur Accorder l'accès.
-
Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail utilisée pour déployer le service Cloud Run.
- Dans la liste Sélectionner un rôle, sélectionnez un rôle.
- Pour attribuer des rôles supplémentaires, cliquez sur Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
- Cliquez sur Enregistrer.
gcloud
Pour attribuer les rôles IAM requis à votre compte sur votre projet :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Remplacez :
- PROJECT_NUMBER par votre Google Cloud numéro de projet.
- PROJECT_ID par l'ID de votre Google Cloud projet.
- PRINCIPAL par le compte pour lequel vous ajoutez la liaison. Il s'agit généralement de l'adresse e-mail qui est utilisée pour déployer le service Cloud Run.
- ROLE par le rôle que vous ajoutez au compte du déployeur.
Déployer le service Ollama pour l'inférence LLM
Déployez le service dans 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"Remplacez :
SERVICE-NAMEpar un nom unique pour le service Cloud Run.PROJECTpar l'ID de votre Google Cloud projet.REGIONpar une Google Cloud région où les GPUnvidia-rtx-pro-6000sont compatibles avec Cloud Run, par exempleus-central1. Pour obtenir la liste complète des régions compatibles avec les déploiements compatibles GPU, consultez la section Configuration des GPU.MODEL_NAMEpar le nom complet d'une variante de Gemma 4.- Gemma 4 E2B:
gemma4:e2b - Gemma 4 E4B:
gemma4:e4b
- Gemma 4 E2B:
Gemma 4 26B et 31B nécessitent une configuration plus avancée de Cloud Run et de vLLM avec une sortie VPC directe et Run:ai Model Streamer.
Notez les options importantes suivantes dans cette commande :
--concurrency 16est défini pour correspondre à la valeur de la variable d'environnementOLLAMA_NUM_PARALLEL.--gpu 1avec--gpu-type nvidia-rtx-pro-6000attribue un GPU NVIDIA RTX PRO 6000 Blackwell à chaque instance Cloud Run du service.--max-instances 1spécifie le nombre maximal d'instances à mettre à l'échelle. Il doit être inférieur ou égal au quota de GPU NVIDIA RTX Pro 6000 de votre projet (Total NVIDIA RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per region).--no-allow-unauthenticatedlimite l'accès non authentifié au service. En gardant le service privé, vous pouvez vous appuyer sur l'authentification Identity and Access Management (IAM) intégrée à Cloud Run pour la communication de service à service. Consultez Gérer les accès à l'aide d'IAM.--no-cpu-throttlingest requis pour activer le GPU.--no-gpu-zonal-redundancydéfinit les options de redondance zonale en fonction de vos exigences de basculement zonal et du quota disponible. Pour en savoir plus, consultez Options de redondance zonale des GPU.
Paramètres de simultanéité pour des performances optimales
Cette section fournit le contexte des paramètres de simultanéité recommandés. Pour une
latence des requêtes optimale, assurez-vous que le paramètre --concurrency est égal à la variable d'environnement
OLLAMA_NUM_PARALLEL d'Ollama.
OLLAMA_NUM_PARALLELdétermine le nombre d'emplacements de requêtes disponibles par modèle pour gérer les requêtes d'inférence simultanément.--concurrencydétermine le nombre de requêtes que Cloud Run envoie simultanément à une instance Ollama.
Si --concurrency dépasse OLLAMA_NUM_PARALLEL, Cloud Run peut envoyer plus de requêtes à un modèle dans Ollama que le nombre d'emplacements de requêtes disponibles.
Cela entraîne une mise en file d'attente des requêtes dans Ollama, ce qui augmente la latence des requêtes mises en file d'attente. Cela entraîne également un autoscaling moins réactif, car les requêtes mises en file d'attente n'incitent pas Cloud Run à effectuer un scaling horizontal et à démarrer de nouvelles instances.
Ollama permet également de diffuser plusieurs modèles à partir d'un seul GPU. Pour éviter la mise en file d'attente des requêtes sur l'instance Ollama, définissez --concurrency pour qu'il corresponde à OLLAMA_NUM_PARALLEL.
L'augmentation de OLLAMA_NUM_PARALLEL allonge également la durée des requêtes parallèles.
Optimiser l'utilisation du GPU
Pour une utilisation optimale du GPU, augmentez --concurrency, en le maintenant dans la limite du
double de la valeur de OLLAMA_NUM_PARALLEL. Bien que cela entraîne une mise en file d'attente des requêtes dans Ollama, cela peut contribuer à améliorer l'utilisation : les instances Ollama peuvent traiter immédiatement les requêtes de leur file d'attente, et les files d'attente permettent d'absorber les pics de trafic.
Tester le service Ollama déployé avec curl
Maintenant que vous avez déployé le service Ollama, vous pouvez lui envoyer des requêtes. Toutefois, si vous envoyez une requête directement, Cloud Run répond avec HTTP 401 Unauthorized.
Ce comportement est intentionnel, car une API d'inférence LLM est destinée à être appelée par d'autres services, tels qu'une application frontend. Pour en savoir plus sur l'authentification de service à service sur Cloud Run, consultez Authentifier de service à service.
Pour envoyer des requêtes au service Ollama, ajoutez un en-tête avec un jeton OIDC valide aux requêtes, par exemple à l'aide du proxy de développement Cloud Run developer proxy :
Démarrez le proxy et, lorsque vous êtes invité à installer le composant
cloud-run-proxy, choisissezY:gcloud run services proxy SERVICE-NAME \ --project PROJECT_ID \ --region REGION \ --port=9090Envoyez-lui une requête dans un onglet de terminal distinct, en laissant le proxy en cours d'exécution. Notez que le proxy s'exécute sur
localhost:9090:curl http://localhost:9090/api/generate -d '{ "model": "MODEL_NAME", "prompt": "Why is the sky blue?", "stream": false }' | jq -r '.response'Cette commande devrait fournir un résultat de streaming semblable à celui-ci :
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**. ...
Libérer de l'espace
Pour éviter des frais supplémentaires sur votre Google Cloud compte, supprimez toutes les ressources que vous avez déployées avec ce tutoriel.
Supprimer le projet
Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous devez le conserver sans les modifications que vous avez ajoutées dans ce tutoriel, supprimez les ressources que vous avez créées pour ce tutoriel.
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
Pour supprimer le projet :
- Dans la Google Cloud console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.
Supprimer les ressources du tutoriel
Supprimez le service Cloud Run que vous avez déployé dans ce tutoriel. Les services Cloud Run n'entraînent pas de coûts tant qu'ils ne reçoivent pas de requêtes.
Pour supprimer votre service Cloud Run, exécutez la commande suivante :
gcloud run services delete SERVICE-NAME
Remplacez SERVICE-NAME par le nom de votre service.
Vous pouvez également supprimer des services Cloud Run à partir de la Google Cloud console.
Supprimez la configuration régionale
gcloudpar défaut que vous avez ajoutée lors de la configuration du tutoriel :gcloud config unset run/regionSupprimez la configuration du projet :
gcloud config unset project