Objectifs
Gemma 4 est la famille de modèles ouverts la plus efficace de Google. Elle offre de solides capacités de raisonnement et d'agentivité. Le contexte long, la multimodalité, le raisonnement et l'appel d'outils permettent à Gemma 4 de gérer la logique complexe, la planification en plusieurs étapes, le codage et les workflows d'agent.
Ce guide explique comment exécuter l'inférence LLM sur les GPU Cloud Run avec Gemma et Ollama. Il a les objectifs suivants :
- Déployez Ollama avec le modèle Gemma 4 sur un service Cloud Run compatible avec les GPU.
- Envoyez des requêtes 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 :
Pour obtenir une estimation des coûts en fonction de votre utilisation prévue, utilisez le simulateur de coût.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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.
Activer l'API Cloud Run
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.- Installez et initialisez la 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 dans votre projet :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Remplacez :
- PROJECT_NUMBER par le numéro de votre projet Google Cloud .
- PROJECT_ID par l'ID de votre projet Google Cloud .
- PRINCIPAL par le compte pour lequel vous ajoutez la liaison. Il s'agit généralement de l'adresse e-mail utilisée pour déployer le service Cloud Run.
- ROLE par le rôle que vous ajoutez au compte 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 projet Google Cloud .REGIONpar une région Google Cloud où les GPUnvidia-rtx-pro-6000sont compatibles avec Cloud Run, commeus-central1. Pour obtenir la liste complète des régions acceptant les déploiements compatibles avec les GPU, consultez Configuration des GPU.MODEL_NAMEpar le nom complet d'une variante Gemma 4.- Gemma 4 E2B :
gemma4:e2b - Gemma 4 E4B :
gemma4:e4b
- Gemma 4 E2B :
Gemma 4 26B et 31B nécessitent une configuration Cloud Run et vLLM plus avancée avec Direct VPC Egress et Run:ai Model Streamer.
Notez les indicateurs importants suivants 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 (Total NVIDIA RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per region) de votre projet.--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 nécessaire 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 des informations sur les 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ête disponibles pour chaque modèle afin de 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 la 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 ne déclenchent pas le effectuer un scaling horizontal de Cloud Run ni le démarrage 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 de sorte que ses valeurs correspondent à celle de 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 veillant à ce qu'il reste 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 aident à 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.
C'est intentionnel, car une API d'inférence LLM est destinée à être appelée par d'autres services, tels qu'une application d'interface. Pour en savoir plus sur l'authentification de service à service sur Cloud Run, consultez Authentification 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 :
Démarrez le proxy et, lorsque vous êtes invité à installer le composant
cloud-run-proxy, sélectionnezY: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 flux de sortie 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**. ...
Effectuer un nettoyage
Pour éviter des frais supplémentaires sur votre compte Google Cloud , 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 le 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 console Google Cloud , 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 sur 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 des coûts que lorsqu'ils reçoivent des 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 du service.
Vous pouvez également supprimer des services Cloud Run à partir de la consoleGoogle Cloud .
Supprimez la configuration régionale par défaut
gcloudque vous avez ajoutée lors de la configuration du tutoriel :gcloud config unset run/regionSupprimez la configuration du projet :
gcloud config unset project