Generative AI sur Vertex AI (également appelé genAI ou gen AI) vous donne accès aux modèles d'IA générative de Google pour plusieurs modalités (texte, code, images, voix). Vous pouvez tester et ajuster ces grands modèles de langage (LLM), puis les déployer pour les utiliser dans vos applications optimisées par l'IA. Pour en savoir plus, consultez la présentation de l'IA générative sur Vertex AI.
Vertex AI dispose de divers modèles de fondation d'IA générative accessibles via une API, y compris les modèles utilisés dans ce guide. Pour en savoir plus sur le choix d'un modèle, consultez Modèles Google.
Chaque modèle est exposé via un point de terminaison d'éditeur spécifique à votre projetGoogle Cloud . Il n'est donc pas nécessaire de déployer le modèle de fondation, sauf si vous devez le régler pour un cas d'utilisation spécifique. Vous pouvez envoyer un prompt au point de terminaison de l'éditeur. Une requête est une demande en langage naturel envoyée à un LLM pour obtenir une réponse.
Ce tutoriel présente des workflows qui génèrent des réponses à partir de modèles Vertex AI en envoyant des requêtes textuelles aux points de terminaison de l'éditeur à l'aide d'un connecteur Workflows ou d'une requête HTTP POST. Pour en savoir plus, consultez la présentation du connecteur d'API Vertex AI et la section Envoyer une requête HTTP.
Notez que vous pouvez déployer et exécuter chaque workflow indépendamment les uns des autres.
Objectifs
Dans ce tutoriel, vous allez effectuer les opérations suivantes :
- Activez les API Vertex AI et Workflows, et accordez le rôle Utilisateur Vertex AI (
roles/aiplatform.user) à votre compte de service. Ce rôle permet d'accéder à la plupart des fonctionnalités de Vertex AI. Pour en savoir plus sur la configuration de Vertex AI, consultez Configurer un projet et un environnement de développement. - Déployez et exécutez un workflow qui invite un modèle Vertex AI à décrire une image disponible publiquement via Cloud Storage. Pour en savoir plus, consultez Rendre des données publiques.
- Déployez et exécutez un workflow qui parcourt une liste de pays en parallèle et invite un modèle Vertex AI à générer et renvoyer l'historique des pays. L'utilisation de branches parallèles vous permet de réduire le temps d'exécution total en lançant les appels au LLM en même temps et en attendant que tous soient terminés avant de combiner les résultats. Pour en savoir plus, consultez Exécuter des étapes de workflow en parallèle.
- Déployez un workflow capable de résumer un document volumineux. Étant donné que la fenêtre de contexte, qui définit jusqu'où le modèle remonte dans le temps lors de l'entraînement (et des prévisions), est limitée, le workflow divise le document en plus petites parties, puis invite un modèle Vertex AI à résumer chaque partie en parallèle. Pour en savoir plus, consultez Présentation des stratégies de requête et Horizon de prévision, fenêtre de contexte et période de prévision.
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.
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
Avant d'essayer les exemples de ce tutoriel, assurez-vous d'avoir effectué les opérations suivantes.
Console
- 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.
Enable the Vertex AI and Workflows APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Vertex AI > Vertex AI User role to the service account.
To grant the role, find the Select a role list, then select Vertex AI > Vertex AI User.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
-
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.
Enable the Vertex AI and Workflows APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Vertex AI > Vertex AI User role to the service account.
To grant the role, find the Select a role list, then select Vertex AI > Vertex AI User.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
gcloud
- 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.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un projet Google Cloud .
Rôles requis pour sélectionner ou créer un projet
- Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre projet Google Cloud .
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activez les API Vertex AI et Workflows :
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.gcloud services enable aiplatform.googleapis.com
workflows.googleapis.com -
Configurez l'authentification :
-
Assurez-vous de disposer des rôles IAM "Créateur de compte de service" (
roles/iam.serviceAccountCreator) et "Administrateur IAM du projet" (roles/resourcemanager.projectIamAdmin). Découvrez comment attribuer des rôles. -
Créez le compte de service :
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Remplacez
SERVICE_ACCOUNT_NAMEpar le nom que vous souhaitez donner au compte de service. -
Attribuez le rôle IAM
roles/aiplatform.userau compte de service.gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/aiplatform.user
Remplacez les éléments suivants :
SERVICE_ACCOUNT_NAME: nom du compte de service.PROJECT_ID: ID du projet dans lequel vous avez créé le compte de service.
-
Assurez-vous de disposer des rôles IAM "Créateur de compte de service" (
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un projet Google Cloud .
Rôles requis pour sélectionner ou créer un projet
- Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre projet Google Cloud .
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activez les API Vertex AI et Workflows :
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.gcloud services enable aiplatform.googleapis.com
workflows.googleapis.com -
Configurez l'authentification :
-
Assurez-vous de disposer des rôles IAM "Créateur de compte de service" (
roles/iam.serviceAccountCreator) et "Administrateur IAM du projet" (roles/resourcemanager.projectIamAdmin). Découvrez comment attribuer des rôles. -
Créez le compte de service :
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Remplacez
SERVICE_ACCOUNT_NAMEpar le nom que vous souhaitez donner au compte de service. -
Attribuez le rôle IAM
roles/aiplatform.userau compte de service.gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/aiplatform.user
Remplacez les éléments suivants :
SERVICE_ACCOUNT_NAME: nom du compte de service.PROJECT_ID: ID du projet dans lequel vous avez créé le compte de service.
-
Assurez-vous de disposer des rôles IAM "Créateur de compte de service" (
Déployer un workflow qui décrit une image
Déployez un workflow qui utilise une méthode de connecteur (generateContent) pour envoyer une requête à un point de terminaison d'éditeur de modèle. Cette méthode permet de générer du contenu avec des entrées multimodales.
Le workflow fournit une invite de texte et l'URI d'une image accessible au public dans un bucket Cloud Storage. Vous pouvez afficher l'image et, dans la console Google Cloud , vous pouvez afficher les détails de l'objet.
Le workflow renvoie une description de l'image à partir de la réponse générée par le modèle.
Pour en savoir plus sur les paramètres du corps de la requête HTTP utilisés lors de l'envoi de requêtes au LLM, ainsi que sur les éléments du corps de la réponse, consultez Générer du contenu avec l'API Gemini dans Vertex AI.
Console
Dans la console Google Cloud , accédez à la page Workflows.
Cliquez sur Créer.
Saisissez un nom pour le nouveau workflow :
describe-image.Dans la liste Région, sélectionnez us-central1 (Iowa).
Pour le champ Compte de service, sélectionnez le compte de service que vous avez créé précédemment.
Cliquez sur Suivant.
Dans l'éditeur de workflow, saisissez la définition suivante pour votre workflow :
Cliquez sur Déployer.
gcloud
Créez un fichier de code source pour votre workflow :
touch describe-image.yamlDans un éditeur de texte, copiez le workflow suivant dans votre fichier de code source :
Déployez le workflow en saisissant la commande suivante :
gcloud workflows deploy describe-image \ --source=describe-image.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Exécuter le workflow
L'exécution d'un workflow exécute la définition actuelle du workflow associé au workflow.
Console
Dans la console Google Cloud , accédez à la page Workflows.
Sur la page Workflows, sélectionnez le workflow describe-image pour accéder à sa page d'informations.
Sur la page Détails du workflow, cliquez sur play_arrow Exécuter.
Pour Entrée, saisissez ce qui suit :
{"image_url":"gs://generativeai-downloads/images/scones.jpg"}
Cliquez à nouveau sur Exécuter.
Affichez les résultats du workflow dans le volet Output (Résultat).
La sortie devrait ressembler à ce qui suit :
{ "image_description": "There are three pink peony flowers on the right side of the picture[]...]There is a white napkin on the table.", "image_url": "gs://generativeai-downloads/images/scones.jpg" }
gcloud
Ouvrez un terminal.
Exécutez le workflow :
gcloud workflows run describe-image \ --data='{"image_url":"gs://generativeai-downloads/images/scones.jpg"}'
Les résultats de l'exécution doivent ressembler à ce qui suit :
Waiting for execution [258b530e-a093-46d7-a4ff-cbf5392273c0] to complete...done. argument: '{"image_url":"gs://generativeai-downloads/images/scones.jpg"}' createTime: '2024-02-09T13:59:32.166409938Z' duration: 4.174708484s endTime: '2024-02-09T13:59:36.341118422Z' name: projects/1051295516635/locations/us-central1/workflows/describe-image/executions/258b530e-a093-46d7-a4ff-cbf5392273c0 result: "{\"image_description\":\"The picture shows a rustic table with a white surface,\ \ on which there are several scones with blueberries, as well as two cups of coffee\ [...] \ on the table. The background of the table is a dark blue color.\",\"image_url\"\ :\"gs://generativeai-downloads/images/scones.jpg\"}" startTime: '2024-02-09T13:59:32.166409938Z' state: SUCCEEDED
Déployer un workflow qui génère des historiques de pays
Déployez un workflow qui parcourt une liste de pays en entrée en parallèle et utilise une méthode de connecteur (generateContent) pour envoyer une requête à un point de terminaison d'éditeur de modèle. Cette méthode permet de générer du contenu avec des entrées multimodales.
Le workflow renvoie les historiques des pays générés par le modèle, en les combinant dans une carte.
Pour en savoir plus sur les paramètres du corps de la requête HTTP utilisés lors de l'envoi de requêtes au LLM, ainsi que sur les éléments du corps de la réponse, consultez Générer du contenu avec l'API Gemini dans Vertex AI.
Console
Dans la console Google Cloud , accédez à la page Workflows.
Cliquez sur Créer.
Saisissez un nom pour le nouveau workflow :
gemini-pro-country-histories.Dans la liste Région, sélectionnez us-central1 (Iowa).
Pour le champ Compte de service, sélectionnez le compte de service que vous avez créé précédemment.
Cliquez sur Suivant.
Dans l'éditeur de workflow, saisissez la définition suivante pour votre workflow :
Cliquez sur Déployer.
gcloud
Créez un fichier de code source pour votre workflow :
touch gemini-pro-country-histories.yamlDans un éditeur de texte, copiez le workflow suivant dans votre fichier de code source :
Déployez le workflow en saisissant la commande suivante :
gcloud workflows deploy gemini-pro-country-histories \ --source=gemini-pro-country-histories.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Exécuter le workflow
L'exécution d'un workflow exécute la définition actuelle du workflow associé au workflow.
Console
Dans la console Google Cloud , accédez à la page Workflows.
Sur la page Workflows, sélectionnez le workflow gemini-pro-country-histories pour accéder à sa page d'informations.
Sur la page Détails du workflow, cliquez sur play_arrow Exécuter.
Pour Entrée, saisissez ce qui suit :
{"countries":["Argentina", "Bhutan", "Cyprus", "Denmark", "Ethiopia"]}
Cliquez à nouveau sur Exécuter.
Affichez les résultats du workflow dans le volet Output (Résultat).
La sortie devrait ressembler à ce qui suit :
{ "Argentina": "The history of Argentina is a complex and fascinating one, marked by periods of prosperity and decline, political [...] "Bhutan": "The history of Bhutan is a rich and fascinating one, dating back to the 7th century AD. Here is a brief overview: [...] "Cyprus": "The history of Cyprus is a long and complex one, spanning over 10,000 years. The island has been ruled by a succession [...] "Denmark": "1. **Prehistory and Early History (c. 12,000 BC - 800 AD)**\\n - The earliest evidence of human habitation in Denmark [...] "Ethiopia": "The history of Ethiopia is a long and complex one, stretching back to the earliest human civilizations. The country is [...] }
gcloud
Ouvrez un terminal.
Exécutez le workflow :
gcloud workflows run gemini-pro-country-histories \ --data='{"countries":["Argentina", "Bhutan", "Cyprus", "Denmark", "Ethiopia"]}' \ --location=us-central1
Les résultats de l'exécution doivent ressembler à ce qui suit :
Waiting for execution [7ae1ccf1-29b7-4c2c-99ec-7a12ae289391] to complete...done. argument: '{"countries":["Argentina","Bhutan","Cyprus","Denmark","Ethiopia"]}' createTime: '2024-02-09T16:25:16.742349156Z' duration: 12.075968673s endTime: '2024-02-09T16:25:28.818317829Z' name: projects/1051295516635/locations/us-central1/workflows/gemini-pro-country-histories/executions/7ae1ccf1-29b7-4c2c-99ec-7a12ae289391 result: "{\"Argentina\":\"The history of Argentina can be traced back to the arrival\ [...] n* 2015: Argentina elects Mauricio Macri as president.\",\"Bhutan\":\"The history\ [...] \ natural beauty, ancient monasteries, and friendly people.\",\"Cyprus\":\"The history\ [...] ,\"Denmark\":\"The history of Denmark can be traced back to the Stone Age, with\ [...] \ a high standard of living.\",\"Ethiopia\":\"The history of Ethiopia is long and\ [...] startTime: '2024-02-09T16:25:16.742349156Z' state: SUCCEEDED
Déployer un workflow qui résume un document volumineux
Déployez un workflow qui divise un grand document en parties plus petites, en envoyant des requêtes http.post à un point de terminaison d'éditeur de modèle en parallèle afin que le modèle puisse résumer chaque partie simultanément. Le workflow combine enfin tous les résumés partiels en un résumé complet.
Pour en savoir plus sur les paramètres du corps de la requête HTTP utilisés lors de l'envoi de requêtes au LLM, ainsi que sur les éléments du corps de la réponse, consultez Générer du contenu avec l'API Gemini dans Vertex AI.
La définition du workflow suppose que vous avez créé un bucket Cloud Storage dans lequel vous pouvez importer un fichier texte. Pour en savoir plus sur le connecteur Workflows (googleapis.storage.v1.objects.get) utilisé pour récupérer des objets du bucket Cloud Storage, consultez la documentation de référence sur les connecteurs.
Une fois le workflow déployé, vous pouvez l'exécuter en créant un déclencheur Eventarc approprié, puis en important un fichier dans le bucket. Pour en savoir plus, consultez Acheminer des événements Cloud Storage vers Workflows.
Notez que des API supplémentaires doivent être activées et des rôles supplémentaires doivent être attribués, y compris le rôle Utilisateur des objets Storage (roles/storage.objectUser) à votre compte de service, qui permet d'utiliser les objets Cloud Storage. Pour en savoir plus, consultez la section Se préparer à créer un déclencheur.
Console
Dans la console Google Cloud , accédez à la page Workflows.
Cliquez sur Créer.
Saisissez un nom pour le nouveau workflow :
gemini-pro-summaries.Dans la liste Région, sélectionnez us-central1 (Iowa).
Pour le champ Compte de service, sélectionnez le compte de service que vous avez créé précédemment.
Cliquez sur Suivant.
Dans l'éditeur de workflow, saisissez la définition suivante pour votre workflow :
Cliquez sur Déployer.
gcloud
Créez un fichier de code source pour votre workflow :
touch gemini-pro-summaries.yamlDans un éditeur de texte, copiez le workflow suivant dans votre fichier de code source :
Déployez le workflow en saisissant la commande suivante :
gcloud workflows deploy gemini-pro-summaries \ --source=gemini-pro-summaries.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
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
Console
- 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.
gcloud
Supprimer un projet Google Cloud :
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Supprimez les workflows que vous avez créés dans ce tutoriel.
Étapes suivantes
- En savoir plus sur les connecteurs Workflows
- Découvrez comment générer du contenu avec l'API Gemini dans Vertex AI.