Dans ce tutoriel, vous utilisez Model Garden pour déployer le modèle ouvert Gemma 1B sur un point de terminaison Vertex AI basé sur un GPU. Vous devez déployer un modèle sur un point de terminaison avant de pouvoir utiliser ce modèle pour livrer des prédictions en ligne. Le déploiement d'un modèle associe des ressources physiques au modèle afin qu'il puisse générer des prédictions en ligne avec une faible latence.
Après avoir déployé le modèle Gemma 1B, vous pouvez exécuter l'inférence du modèle entraîné à l'aide de PredictionServiceClient
pour obtenir des prédictions en ligne. Les prédictions en ligne sont le résultat de requêtes synchrones adressées à un modèle déployé sur un point de terminaison.
Objectifs
Ce tutoriel vous explique comment effectuer les tâches suivantes :
- Déployer le modèle ouvert Gemma 1B sur un point de terminaison basé sur un GPU à l'aide de Model Garden
- Utiliser
PredictionServiceClient
pour obtenir des prédictions en ligne
Coûts
Dans ce document, vous utilisez les composants facturables de Google Cloudsuivants :
Vous pouvez obtenir une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
Exigences liées au tutoriel :
- Configurer un projet Google Cloud et activer l'API Vertex AI
- Sur votre ordinateur local :
- Installer et initialiser la Google Cloud CLI, et s'authentifier
- Installer le SDK correspondant à votre langage
Configurer un projet Google Cloud
Configurez votre projet Google Cloud et activez l'API Vertex AI.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
Installez et initialisez la Google Cloud CLI.
-
Si vous avez déjà installé la gcloud CLI, exécutez la commande suivante pour vous assurer que vos composants
gcloud
sont à jour.gcloud components update
-
Pour vous authentifier avec la gcloud CLI, générez un fichier local Identifiants par défaut de l'application (ADC) en exécutant la commande ci-dessous. Le flux Web lancé par la commande permet de fournir vos identifiants utilisateur.
gcloud auth application-default login
Pour en savoir plus, consultez Configuration d'authentification sur gcloud CLI et configuration des ADC.
Installez et mettez à jour le SDK Vertex AI pour Python en exécutant la commande suivante.
pip3 install --upgrade "google-cloud-aiplatform>=1.64"
Installez la bibliothèque Protocol Buffers pour Python en exécutant la commande suivante.
pip3 install --upgrade "protobuf>=5.28"
- Bibliothèque cliente Go
aiplatform
- Compatibilité de Go avec les tampons de protocole
- Extensions d'API Google pour Go (gax-go)
Listez les modèles que vous pouvez déployer et enregistrez l'ID de celui que vous voulez déployer. Vous pouvez éventuellement lister les modèles Hugging Face compatibles dans Model Garden et même les filtrer par nom de modèle. La sortie n'inclut aucun modèle réglé.
Affichez les spécifications de déploiement d'un modèle à l'aide de son ID obtenu à l'étape précédente. Vous pouvez afficher le type de machine, le type d'accélérateur et l'URI de l'image de conteneur que Model Garden a validés pour un modèle particulier.
Déployer un modèle sur un point de terminaison Model Garden utilise la configuration de déploiement par défaut, sauf si vous spécifiez un argument et des valeurs supplémentaires.
Listez les modèles que vous pouvez déployer en exécutant la commande
gcloud ai model-garden models list
. Cette commande liste tous les ID de modèle et ceux que vous pouvez déployer vous-même.gcloud ai model-garden models list --model-filter=gemma
Dans la sortie, recherchez l'ID du modèle à déployer. L'exemple suivant montre une sortie abrégée.
MODEL_ID CAN_DEPLOY CAN_PREDICT google/gemma2@gemma-2-27b Yes No google/gemma2@gemma-2-27b-it Yes No google/gemma2@gemma-2-2b Yes No google/gemma2@gemma-2-2b-it Yes No google/gemma2@gemma-2-9b Yes No google/gemma2@gemma-2-9b-it Yes No google/gemma3@gemma-3-12b-it Yes No google/gemma3@gemma-3-12b-pt Yes No google/gemma3@gemma-3-1b-it Yes No google/gemma3@gemma-3-1b-pt Yes No google/gemma3@gemma-3-27b-it Yes No google/gemma3@gemma-3-27b-pt Yes No google/gemma3@gemma-3-4b-it Yes No google/gemma3@gemma-3-4b-pt Yes No google/gemma3n@gemma-3n-e2b Yes No google/gemma3n@gemma-3n-e2b-it Yes No google/gemma3n@gemma-3n-e4b Yes No google/gemma3n@gemma-3n-e4b-it Yes No google/gemma@gemma-1.1-2b-it Yes No google/gemma@gemma-1.1-2b-it-gg-hf Yes No google/gemma@gemma-1.1-7b-it Yes No google/gemma@gemma-1.1-7b-it-gg-hf Yes No google/gemma@gemma-2b Yes No google/gemma@gemma-2b-gg-hf Yes No google/gemma@gemma-2b-it Yes No google/gemma@gemma-2b-it-gg-hf Yes No google/gemma@gemma-7b Yes No google/gemma@gemma-7b-gg-hf Yes No google/gemma@gemma-7b-it Yes No google/gemma@gemma-7b-it-gg-hf Yes No
La sortie n'inclut aucun modèle réglé ni modèle Hugging Face. Pour afficher les modèles Hugging Face compatibles, ajoutez l'option
--can-deploy-hugging-face-models
.Pour afficher les spécifications de déploiement d'un modèle, exécutez la commande
gcloud ai model-garden models list-deployment-config
. Vous pouvez afficher le type de machine, le type d'accélérateur et l'URI de l'image de conteneur que Model Garden accepte pour un modèle particulier.gcloud ai model-garden models list-deployment-config \ --model=MODEL_ID
Remplacez MODEL_ID par l'ID du modèle de la commande list précédente, par exemple
google/gemma@gemma-2b
oustabilityai/stable-diffusion-xl-base-1.0
.Déployez un modèle sur un point de terminaison en exécutant la commande
gcloud ai model-garden models deploy
. Model Garden génère un nom à afficher pour votre point de terminaison et utilise la configuration de déploiement par défaut, sauf si vous spécifiez un argument et des valeurs supplémentaires.Pour exécuter la commande de manière asynchrone, incluez l'option
--asynchronous
.gcloud ai model-garden models deploy \ --model=MODEL_ID \ [--machine-type=MACHINE_TYPE] \ [--accelerator-type=ACCELERATOR_TYPE] \ [--endpoint-display-name=ENDPOINT_NAME] \ [--hugging-face-access-token=HF_ACCESS_TOKEN] \ [--reservation-affinity reservation-affinity-type=any-reservation] \ [--reservation-affinity reservation-affinity-type=specific-reservation, key="compute.googleapis.com/reservation-name", values=RESERVATION_RESOURCE_NAME] \ [--asynchronous]
Remplacez les espaces réservés suivants :
- MODEL_ID : ID du modèle de la commande list précédente. Pour les modèles Hugging Face, utilisez le format d'URL de modèle Hugging Face, tel que
stabilityai/stable-diffusion-xl-base-1.0
. - MACHINE_TYPE : définit l'ensemble de ressources à déployer pour votre modèle, par exemple
g2-standard-4
. - ACCELERATOR_TYPE : spécifie les accélérateurs à ajouter à votre déploiement pour améliorer les performances lorsque vous utilisez des charges de travail intensives, telles que
NVIDIA_L4
. - ENDPOINT_NAME : nom du point de terminaison Vertex AI déployé.
- HF_ACCESS_TOKEN : pour les modèles Hugging Face, si l'accès au modèle est restreint, fournissez un jeton d'accès.
- RESERVATION_RESOURCE_NAME : pour utiliser une réservation Compute Engine spécifique, spécifiez le nom de votre réservation. Si vous spécifiez une réservation spécifique, vous ne pouvez pas spécifier
any-reservation
.
La sortie inclut la configuration de déploiement utilisée par Model Garden, l'ID de point de terminaison et l'ID d'opération de déploiement, que vous pouvez utiliser pour vérifier l'état du déploiement.
Using the default deployment configuration: Machine type: g2-standard-12 Accelerator type: NVIDIA_L4 Accelerator count: 1 The project has enough quota. The current usage of quota for accelerator type NVIDIA_L4 in region us-central1 is 0 out of 28. Deploying the model to the endpoint. To check the deployment status, you can try one of the following methods: 1) Look for endpoint `ENDPOINT_DISPLAY_NAME` at the [Vertex AI] -> [Online prediction] tab in Cloud Console 2) Use `gcloud ai operations describe OPERATION_ID --region=LOCATION` to find the status of the deployment long-running operation
- MODEL_ID : ID du modèle de la commande list précédente. Pour les modèles Hugging Face, utilisez le format d'URL de modèle Hugging Face, tel que
Pour afficher les détails de votre déploiement, exécutez la commande
gcloud ai endpoints list --list-model-garden-endpoints-only
:gcloud ai endpoints list --list-model-garden-endpoints-only \ --region=LOCATION_ID
Remplacez LOCATION_ID par la région dans laquelle vous avez déployé le modèle.
La sortie inclut tous les points de terminaison créés à partir de Model Garden, ainsi que des informations telles que l'ID du point de terminaison, son nom et s'il est associé à un modèle déployé. Pour trouver votre déploiement, recherchez le nom du point de terminaison renvoyé par la commande précédente.
- PROJECT_ID : ID de votre projet Google Cloud .
- QUERY_PARAMETERS : pour lister les modèles Model Garden, ajoutez ces paramètres de requête
listAllVersions=True&filter=is_deployable(true)
. Pour lister les modèles Hugging Face, définissez le filtre suralt=json&is_hf_wildcard(true)+AND+labels.VERIFIED_DEPLOYMENT_CONFIG%3DVERIFIED_DEPLOYMENT_SUCCEED&listAllVersions=True
. - LOCATION : région où le modèle est déployé.
- PROJECT_ID : ID de votre projet Google Cloud .
- MODEL_ID : ID du modèle à déployer, que vous pouvez obtenir en listant tous les modèles déployables. L'ID utilise le format suivant : publishers/PUBLISHER_NAME/models/MODEL_NAME@MODEL_VERSION.
- LOCATION : région où le modèle est déployé.
- PROJECT_ID : ID de votre projet Google Cloud .
- MODEL_ID : ID du modèle Hugging Face à déployer, que vous pouvez obtenir en listant tous les modèles déployables. L'ID utilise le format suivant : PUBLISHER_NAME/MODEL_NAME.
- ACCESS_TOKEN : si l'accès au modèle est restreint, fournissez un jeton d'accès.
- LOCATION : région où le modèle est déployé.
- PROJECT_ID : ID de votre projet Google Cloud .
- MODEL_ID : ID du modèle à déployer, que vous pouvez obtenir en listant tous les modèles déployables. L'ID utilise le format suivant : publishers/PUBLISHER_NAME/models/MODEL_NAME@MODEL_VERSION, par exemple
google/gemma@gemma-2b
oustabilityai/stable-diffusion-xl-base-1.0
. - MACHINE_TYPE : définit l'ensemble de ressources à déployer pour votre modèle, par exemple
g2-standard-4
. - ACCELERATOR_TYPE : spécifie les accélérateurs à ajouter à votre déploiement pour améliorer les performances lorsque vous utilisez des charges de travail intensives, telles que
NVIDIA_L4
. - ACCELERATOR_COUNT : nombre d'accélérateurs à utiliser dans votre déploiement.
reservation_affinity_type
: pour utiliser une réservation Compute Engine existante pour votre déploiement, spécifiez n'importe quelle réservation ou une spécifique. Si vous spécifiez cette valeur, ne spécifiez passpot
.spot
: indique si vous devez utiliser des VM Spot pour votre déploiement.- IMAGE_URI : emplacement de l'image de conteneur à utiliser, par exemple
us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20241016_0916_RC00_maas
. - CONTAINER_ARGS : arguments à transmettre au conteneur lors du déploiement.
- CONTAINER_PORT : numéro de port pour votre conteneur.
fast_tryout_enabled
: lorsque vous testez un modèle, vous pouvez choisir d'utiliser un déploiement plus rapide. Cette option n'est disponible que pour les modèles très utilisés avec certains types de machines. Si cette option est activée, vous ne pouvez pas spécifier de configurations de modèle ou de déploiement.Dans la console Google Cloud , accédez à la page Model Garden.
Recherchez un modèle compatible que vous souhaitez déployer, puis cliquez sur sa fiche.
Cliquez sur Déployer pour ouvrir le volet Déployer le modèle.
Dans le volet Déployer le modèle, spécifiez les détails de votre déploiement.
- Utilisez ou modifiez le nom du modèle et celui du point de terminaison générés.
- Sélectionnez un emplacement pour créer le point de terminaison de votre modèle.
- Sélectionnez un type de machine à utiliser pour chaque nœud de votre déploiement.
Pour utiliser une réservation Compute Engine, sélectionnez Avancé dans la section Paramètres de déploiement.
Dans le champ Type de réservation, sélectionnez un type de réservation. La réservation doit correspondre aux spécifications de votre machine.
- Utiliser automatiquement la réservation créée : Vertex AI sélectionne automatiquement une réservation autorisée avec des propriétés correspondantes. Si la réservation sélectionnée automatiquement ne dispose d'aucune capacité, Vertex AI utilise le pool de ressources Google Cloudgénéral.
- Sélectionner des réservations spécifiques : Vertex AI utilise une réservation spécifique. Si la capacité de votre réservation sélectionnée est insuffisante, une erreur est générée.
- Ne pas utiliser (par défaut) : Vertex AI utilise le pool de ressourcesGoogle Cloud général. Cette valeur a le même effet que si vous ne spécifiez pas de réservation.
Cliquez sur Déployer.
PROJECT_ID
: pour trouver l'ID de votre projet, procédez comme suit.Accédez à la page d'accueil de la console Google Cloud .
Dans le sélecteur de projets situé en haut de la page, sélectionnez votre projet.
Le nom ainsi que le numéro et l'ID du projet apparaissent après l'en-tête Bienvenue.
ENDPOINT_REGION
: région dans laquelle vous avez déployé le point de terminaison.ENDPOINT_ID
: pour trouver l'ID de votre point de terminaison, affichez-le dans la console ou exécutez la commandegcloud ai endpoints list
. Vous aurez besoin du nom et de la région du point de terminaison dans le volet Déployer le modèle.Console
Vous pouvez afficher les détails du point de terminaison en cliquant sur Prédiction en ligne > Points de terminaison et en sélectionnant votre région. Notez le nombre qui s'affiche dans la colonne
ID
.gcloud
Vous pouvez afficher les détails du point de terminaison en exécutant la commande
gcloud ai endpoints list
.gcloud ai endpoints list \ --region=ENDPOINT_REGION \ --filter=display_name=ENDPOINT_NAME
Le résultat ressemble à ceci :
Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- Annuler le déploiement du modèle et supprimer le point de terminaison
- Supprimer le modèle de Model Registry
Dans la console Google Cloud , cliquez sur Prédiction en ligne, puis sur Points de terminaison.
Dans la liste déroulante Région, sélectionnez la région dans laquelle vous avez déployé votre point de terminaison.
Cliquez sur le nom du point de terminaison pour ouvrir la page d'informations. Par exemple :
gemma2-2b-it-mg-one-click-deploy
.Sur la ligne correspondant au modèle
Gemma 2 (Version 1)
, cliquez sur Actions, puis sur Annuler le déploiement du modèle sur le point de terminaison.Dans la boîte de dialogue Annuler le déploiement du modèle sur le point de terminaison, cliquez sur Annuler le déploiement.
Cliquez sur le bouton Retour pour revenir à la page Points de terminaison.
Au bout de la ligne
gemma2-2b-it-mg-one-click-deploy
, cliquez sur Actions, puis sélectionnez Supprimer le point de terminaison.Dans l'invite de confirmation, cliquez sur Confirmer.
- PROJECT_ID par le nom de votre projet ;
- LOCATION_ID par la région dans laquelle vous avez déployé le modèle et le point de terminaison ;
- ENDPOINT_ID par l'ID du point de terminaison ;
- DEPLOYED_MODEL_NAME par le nom à afficher du modèle ;
- DEPLOYED_MODEL_ID par l'ID du modèle.
Obtenez l'ID du point de terminaison en exécutant la commande
gcloud ai endpoints list
. Cette commande liste les ID de tous les points de terminaison de votre projet. Notez l'ID du point de terminaison utilisé dans ce tutoriel.gcloud ai endpoints list \ --project=PROJECT_ID \ --region=LOCATION_ID
Le résultat ressemble à ceci : Dans la sortie, l'ID est appelé
ENDPOINT_ID
.Using endpoint [https://us-central1-aiplatform.googleapis.com/] ENDPOINT_ID: 1234567891234567891 DISPLAY_NAME: gemma2-2b-it-mg-one-click-deploy
Obtenez l'ID du modèle en exécutant la commande
gcloud ai models describe
. Notez l'ID du modèle que vous avez déployé dans ce tutoriel.gcloud ai models describe DEPLOYED_MODEL_NAME \ --project=PROJECT_ID \ --region=LOCATION_ID
Le résultat abrégé se présente comme suit. Dans la sortie, l'ID est appelé
deployedModelId
.Using endpoint [https://us-central1-aiplatform.googleapis.com/] artifactUri: [URI removed] baseModelSource: modelGardenSource: publicModelName: publishers/google/models/gemma2 ... deployedModels: - deployedModelId: '1234567891234567891' endpoint: projects/12345678912/locations/us-central1/endpoints/12345678912345 displayName: gemma2-2b-it-12345678912345 etag: [ETag removed] modelSourceInfo: sourceType: MODEL_GARDEN name: projects/123456789123/locations/us-central1/models/gemma2-2b-it-12345678912345 ...
Annulez le déploiement du modèle à partir du point de terminaison. Vous aurez besoin des ID de point de terminaison et de modèle utilisés dans les commandes précédentes.
gcloud ai endpoints undeploy-model ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID \ --deployed-model-id=DEPLOYED_MODEL_ID
Cette commande n'affiche aucun résultat.
Exécutez la commande
gcloud ai endpoints delete
pour supprimer le point de terminaison.gcloud ai endpoints delete ENDPOINT_ID \ --project=PROJECT_ID \ --region=LOCATION_ID
Lorsque vous y êtes invité, saisissez
y
pour confirmer. Cette commande n'affiche aucun résultat.Accédez à la page Model Registry depuis la section Vertex AI de la console Google Cloud .
Dans la liste déroulante Région, sélectionnez la région dans laquelle vous avez déployé votre modèle.
À la fin de la ligne
gemma2-2b-it-1234567891234
, cliquez sur Actions.Sélectionnez Supprimer le modèle.
Lorsque vous supprimez le modèle, toutes les versions et évaluations de modèle associées sont également supprimées de votre projet Google Cloud .
Dans l'invite de confirmation, cliquez sur Supprimer.
- Apprenez-en davantage sur les modèles ouverts Gemma.
- Lisez les Conditions d'utilisation de Gemma.
- Apprenez-en davantage sur les modèles ouverts.
- Découvrez comment déployer un modèle réglé.
- Découvrez comment déployer Gemma 2 sur Google Kubernetes Engine avec HuggingFace Textgen Inference (TGI).
- Apprenez-en davantage sur
PredictionServiceClient
dans votre langage préféré : Python, Node.js, Java ou Go.
Configurer la Google Cloud CLI
Sur votre ordinateur local, configurez la Google Cloud CLI.
Configurer le SDK correspondant à votre langage de programmation
Pour configurer l'environnement utilisé dans ce tutoriel, vous devez installer le SDK Vertex AI pour votre langage et la bibliothèque Protocol Buffers. Les exemples de code utilisent des fonctions de la bibliothèque Protocol Buffers pour convertir le dictionnaire d'entrée au format JSON attendu par l'API.
Sur votre ordinateur local, cliquez sur l'un des onglets suivants pour installer le SDK correspondant à votre langage de programmation.
Python
Sur votre ordinateur local, cliquez sur l'un des onglets suivants pour installer le SDK correspondant à votre langage de programmation.
Node.js
Installez ou mettez à jour le SDK aiplatform
pour Node.js en exécutant la commande suivante.
npm install @google-cloud/aiplatform
Java
Pour ajouter google-cloud-aiplatform
en tant que dépendance, ajoutez le code approprié pour votre environnement.
Maven avec BOM
Ajoutez le code HTML suivant à votre pom.xml
:
<dependencyManagement> <dependencies> <dependency> <artifactId>libraries-bom</artifactId> <groupId>com.google.cloud</groupId> <scope>import</scope> <type>pom</type> <version>26.34.0</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-aiplatform</artifactId> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java-util</artifactId> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> </dependencies>
Maven sans BOM
Ajoutez le code suivant à votre pom.xml
:
<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-aiplatform</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java-util</artifactId> <version>5.28</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.11.0</version> </dependency>
Gradle sans BOM
Ajoutez le code suivant à votre build.gradle
:
implementation 'com.google.cloud:google-cloud-aiplatform:1.1.0'
Go
Installez ces packages Go en exécutant les commandes suivantes.
go get cloud.google.com/go/aiplatform go get google.golang.org/protobuf go get github.com/googleapis/gax-go/v2
Déployer Gemma à l'aide de Model Garden
Vous pouvez déployer Gemma 1B à l'aide de sa fiche dans la console Google Cloud ou de façon programmatique.
Pour en savoir plus sur la configuration du SDK Google Gen AI ou de la Google Cloud CLI, consultez la présentation du SDK Google Gen AI ou Installer Google Cloud CLI.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
gcloud
Avant de commencer, spécifiez un projet de quota pour exécuter les commandes suivantes. Les commandes que vous exécutez sont comptabilisées dans les quotas de ce projet. Pour en savoir plus, consultez Définir le projet de quota.
REST
Listez tous les modèles déployables, puis obtenez l'ID du modèle à déployer. Vous pouvez ensuite déployer le modèle avec sa configuration et son point de terminaison par défaut. Vous pouvez également choisir de personnaliser votre déploiement, par exemple en définissant un type de machine spécifique ou en utilisant un point de terminaison dédié.
Lister les modèles que vous pouvez déployer
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
Méthode HTTP et URL :
GET https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
"https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/publishers/*/models?QUERY_PARAMETERS" | Select-Object -Expand Content
Vous recevez une réponse JSON de ce type :
{ "publisherModels": [ { "name": "publishers/google/models/gemma3", "versionId": "gemma-3-1b-it", "openSourceCategory": "GOOGLE_OWNED_OSS_WITH_GOOGLE_CHECKPOINT", "supportedActions": { "openNotebook": { "references": { "us-central1": { "uri": "https://colab.research.google.com/github/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_gradio_streaming_chat_completions.ipynb" } }, "resourceTitle": "Notebook", "resourceUseCase": "Chat Completion Playground", "resourceDescription": "Chat with deployed Gemma 2 endpoints via Gradio UI." }, "deploy": { "modelDisplayName": "gemma-3-1b-it", "containerSpec": { "imageUri": "us-docker.pkg.dev/vertex-ai/vertex-vision-model-garden-dockers/pytorch-vllm-serve:20250312_0916_RC01", "args": [ "python", "-m", "vllm.entrypoints.api_server", "--host=0.0.0.0", "--port=8080", "--model=gs://vertex-model-garden-restricted-us/gemma3/gemma-3-1b-it", "--tensor-parallel-size=1", "--swap-space=16", "--gpu-memory-utilization=0.95", "--disable-log-stats" ], "env": [ { "name": "MODEL_ID", "value": "google/gemma-3-1b-it" }, { "name": "DEPLOY_SOURCE", "value": "UI_NATIVE_MODEL" } ], "ports": [ { "containerPort": 8080 } ], "predictRoute": "/generate", "healthRoute": "/ping" }, "dedicatedResources": { "machineSpec": { "machineType": "g2-standard-12", "acceleratorType": "NVIDIA_L4", "acceleratorCount": 1 } }, "publicArtifactUri": "gs://vertex-model-garden-restricted-us/gemma3/gemma3.tar.gz", "deployTaskName": "vLLM 128K context", "deployMetadata": { "sampleRequest": "{\n \"instances\": [\n {\n \"@requestFormat\": \"chatCompletions\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"What is machine learning?\"\n }\n ],\n \"max_tokens\": 100\n }\n ]\n}\n" } }, ...
Déployer un modèle
Déployez un modèle depuis Model Garden ou depuis Hugging Face. Vous pouvez également personnaliser le déploiement en spécifiant des champs JSON supplémentaires.
Déployez un modèle avec sa configuration par défaut.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
Corps JSON de la requête :
{ "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
cat > request.json << 'EOF' { "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } } EOF
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "publisher_model_name": "MODEL_ID", "model_config": { "accept_eula": "true" } } '@ | Out-File -FilePath request.json -Encoding utf8
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
Vous recevez une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata", "genericMetadata": { "createTime": "2025-03-13T21:44:44.538780Z", "updateTime": "2025-03-13T21:44:44.538780Z" }, "publisherModel": "publishers/google/models/gemma3@gemma-3-1b-it", "destination": "projects/PROJECT_ID/locations/LOCATION", "projectNumber": "PROJECT_ID" } }
Déployer un modèle Hugging Face
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
Corps JSON de la requête :
{ "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
cat > request.json << 'EOF' { "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } } EOF
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "hugging_face_model_id": "MODEL_ID", "hugging_face_access_token": "ACCESS_TOKEN", "model_config": { "accept_eula": "true" } } '@ | Out-File -FilePath request.json -Encoding utf8
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
Vous recevez une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/locations/us-central1LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata", "genericMetadata": { "createTime": "2025-03-13T21:44:44.538780Z", "updateTime": "2025-03-13T21:44:44.538780Z" }, "publisherModel": "publishers/PUBLISHER_NAME/model/MODEL_NAME", "destination": "projects/PROJECT_ID/locations/LOCATION", "projectNumber": "PROJECT_ID" } }
Déployer un modèle avec des personnalisations
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy
Corps JSON de la requête :
{ "publisher_model_name": "MODEL_ID", "deploy_config": { "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACCELERATOR_TYPE", "accelerator_count": ACCELERATOR_COUNT, "reservation_affinity": { "reservation_affinity_type": "ANY_RESERVATION" } }, "spot": "false" } }, "model_config": { "accept_eula": "true", "container_spec": { "image_uri": "IMAGE_URI", "args": [CONTAINER_ARGS ], "ports": [ { "container_port": CONTAINER_PORT } ] } }, "deploy_config": { "fast_tryout_enabled": false }, }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
cat > request.json << 'EOF' { "publisher_model_name": "MODEL_ID", "deploy_config": { "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACCELERATOR_TYPE", "accelerator_count": ACCELERATOR_COUNT, "reservation_affinity": { "reservation_affinity_type": "ANY_RESERVATION" } }, "spot": "false" } }, "model_config": { "accept_eula": "true", "container_spec": { "image_uri": "IMAGE_URI", "args": [CONTAINER_ARGS ], "ports": [ { "container_port": CONTAINER_PORT } ] } }, "deploy_config": { "fast_tryout_enabled": false }, } EOF
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@' { "publisher_model_name": "MODEL_ID", "deploy_config": { "dedicated_resources": { "machine_spec": { "machine_type": "MACHINE_TYPE", "accelerator_type": "ACCELERATOR_TYPE", "accelerator_count": ACCELERATOR_COUNT, "reservation_affinity": { "reservation_affinity_type": "ANY_RESERVATION" } }, "spot": "false" } }, "model_config": { "accept_eula": "true", "container_spec": { "image_uri": "IMAGE_URI", "args": [CONTAINER_ARGS ], "ports": [ { "container_port": CONTAINER_PORT } ] } }, "deploy_config": { "fast_tryout_enabled": false }, } '@ | Out-File -FilePath request.json -Encoding utf8
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:deploy" | Select-Object -Expand Content
Vous recevez une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployOperationMetadata", "genericMetadata": { "createTime": "2025-03-13T21:44:44.538780Z", "updateTime": "2025-03-13T21:44:44.538780Z" }, "publisherModel": "publishers/google/models/gemma3@gemma-3-1b-it", "destination": "projects/PROJECT_ID/locations/LOCATION", "projectNumber": "PROJECT_ID" } }
Console
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.
Déployer un modèle
L'exemple suivant déploie le modèle gemma-3-1b-it
sur un nouveau point de terminaison Vertex AI dans us-central1
à l'aide des configurations par défaut.
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "6.45.0"
}
}
}
provider "google" {
region = "us-central1"
}
resource "google_vertex_ai_endpoint_with_model_garden_deployment" "gemma_deployment" {
publisher_model_name = "publishers/google/models/gemma3@gemma-3-1b-it"
location = "us-central1"
model_config {
accept_eula = True
}
}
Pour déployer un modèle avec personnalisation, consultez Point de terminaison Vertex AI avec déploiement Model Garden pour en savoir plus.
Appliquer la configuration
terraform init
terraform plan
terraform apply
Une fois la configuration appliquée, Terraform provisionne un nouveau point de terminaison Vertex AI et déploie le modèle ouvert spécifié.
Effectuer un nettoyage
Pour supprimer le point de terminaison et le déploiement du modèle, exécutez la commande suivante :
terraform destroy
Effectuer une inférence du modèle Gemma 1B avec PredictionServiceClient
Après avoir déployé Gemma 1B, vous pouvez utiliser PredictionServiceClient
pour obtenir des prédictions en ligne pour le prompt "Pourquoi le ciel est-il bleu ?"
Paramètres de code
Les exemples de code PredictionServiceClient
nécessitent que vous mettiez à jour les éléments suivants.
Exemple de code
Dans l'exemple de code correspondant à votre langage, modifiez PROJECT_ID
, ENDPOINT_REGION
et ENDPOINT_ID
. Exécutez ensuite votre code.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Java.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vertex AI sur l'utilisation des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Go.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Supprimer le projet
Supprimer des ressources individuelles
Si vous souhaitez conserver votre projet, supprimez les ressources utilisées dans ce tutoriel :
Annuler le déploiement du modèle et supprimer le point de terminaison
Utilisez l'une des méthodes suivantes pour annuler le déploiement d'un modèle et supprimer le point de terminaison.
Console
gcloud
Pour annuler le déploiement du modèle et supprimer le point de terminaison à l'aide de la Google Cloud CLI, procédez comme suit.
Dans ces commandes, remplacez :
Supprimer le modèle
Console
gcloud
Pour supprimer le modèle à l'aide de la Google Cloud CLI, indiquez le nom à afficher et la région du modèle dans la commande gcloud ai models delete
.
gcloud ai models delete DEPLOYED_MODEL_NAME \
--project=PROJECT_ID \
--region=LOCATION_ID
Remplacez DEPLOYED_MODEL_NAME par le nom à afficher du modèle. Remplacez PROJECT_ID par le nom de votre projet. Remplacez LOCATION_ID par la région dans laquelle vous avez déployé le modèle.