1. Introduction
Présentation
Cloud Run est une plate-forme de conteneurs sur Google Cloud qui vous permet d'exécuter facilement votre code dans un conteneur, sans avoir à gérer de cluster.
Cloud Run propose un GPU L4 ou NVIDIA RTX PRO 6000 Blackwell. Il y a un GPU par instance Cloud Run, et l'autoscaling Cloud Run s'applique toujours, y compris la réduction à zéro instance en l'absence de requêtes.
Les GPU peuvent, par exemple, être utilisés pour exécuter vos propres grands modèles de langage (LLM) ouverts. Ce tutoriel vous explique comment déployer un service qui exécute un LLM.
Cet atelier de programmation explique comment déployer des modèles ouverts Gemma 4 sur Cloud Run à l'aide d'un conteneur prédéfini avec la bibliothèque d'inférence vLLM.
Points abordés
- Utiliser des GPU sur Cloud Run
- Découvrez comment déployer le modèle Gemma 2 4B de Google affiné par instruction sur Cloud Run à l'aide de vLLM comme moteur d'inférence.
2. Préparation
Prérequis
- Vous êtes connecté à la console Cloud.
- Vous avez déjà déployé un service Cloud Run. Par exemple, vous pouvez suivre le guide de démarrage rapide pour déployer un service Web à partir du code source pour commencer.
3. Activer les API et définir les variables d'environnement
Activer les API
Avant de pouvoir commencer à utiliser cet atelier de programmation, vous devez activer plusieurs API. Cet atelier de programmation nécessite l'utilisation des API suivantes. Vous pouvez activer ces API en exécutant la commande suivante :
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com
Définir des variables d'environnement
Configurez l'ID de votre projet ci-dessous.
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. Créer un compte de service
Ce compte de service est utilisé comme identité du service Cloud Run.
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="Cloud Run gemma 4 SA"
5. Déployer le service
Pour déployer des modèles Gemma sur Cloud Run, utilisez la commande gcloud CLI suivante avec les paramètres recommandés :
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. Tester le service
Une fois déployé, vous pouvez utiliser le service de proxy de développement Cloud Run, qui ajoute automatiquement un jeton d'identité pour vous, ou vous pouvez envoyer une requête cURL directement à l'URL du service.
Utiliser le service de proxy de développement Cloud Run
Commencez par démarrer le proxy.
gcloud run services proxy $SERVICE_NAME \
--project $PROJECT \
--region $REGION \
--port=9090
Exécutez la commande suivante pour envoyer une requête dans un onglet de terminal distinct, en laissant le proxy en cours d'exécution. Le proxy s'exécute sur 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
}'
La sortie obtenue doit ressembler à ceci :
{
"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
}
}
Utiliser directement l'URL du service
Tout d'abord, récupérez l'URL du service déployé.
SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region $REGION --format 'value(status.url)')
Envoyer une requête Curl au service
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. Félicitations !
Bravo ! Vous avez terminé cet atelier de programmation.
Nous vous recommandons de consulter la documentation Cloud Run.
Points abordés
- Utiliser des GPU sur Cloud Run
- Découvrez comment déployer le modèle Gemma 4 (2B) de Google sur Cloud Run à l'aide de vLLM comme moteur d'inférence.
8. Effectuer un nettoyage
Pour éviter des frais involontaires (par exemple, si les services Cloud Run sont invoqués par inadvertance plus de fois que votre quota mensuel d'invocations Cloud Run dans le niveau sans frais), vous pouvez supprimer Cloud Run ou le projet que vous avez créé à l'étape 2.
Pour supprimer le service Cloud Run, accédez à la console Cloud Run à l'adresse https://console.cloud.google.com/run, puis supprimez le service gemma4-cr-codelab. Vous pouvez également supprimer le compte de service gemma4-cr-codelab-sa.
Si vous choisissez de supprimer l'intégralité du projet, vous pouvez accéder à https://console.cloud.google.com/cloud-resource-manager, sélectionner le projet que vous avez créé à l'étape 2, puis choisir "Supprimer". Si vous supprimez le projet, vous devrez changer de projet dans votre SDK Cloud. Vous pouvez afficher la liste de tous les projets disponibles en exécutant gcloud projects list.