Générer du texte à l'aide d'un modèle ouvert Gemma et de la fonction AI.GENERATE_TEXT
Ce tutoriel explique comment créer un
modèle distant
basé sur le
modèle Gemma,
et comment utiliser ce modèle avec la
AI.GENERATE_TEXT fonction
pour extraire des mots clés et effectuer une analyse des sentiments sur les avis de films à partir
de la table publique bigquery-public-data.imdb.reviews.
Autorisations requises
Pour exécuter ce tutoriel, vous devez disposer des rôles Identity and Access Management (IAM) suivants :
- Créer et utiliser des ensembles de données, des connexions et des modèles BigQuery : administrateur BigQuery (
roles/bigquery.admin) - Accorder des autorisations au compte de service de la connexion : administrateur IAM du projet (
roles/resourcemanager.projectIamAdmin) - Déployer et annuler le déploiement de modèles dans Vertex AI : administrateur Vertex AI (
roles/aiplatform.admin)
Ces rôles prédéfinis contiennent les autorisations requises pour effectuer les tâches décrites dans ce document. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
- Créer un ensemble de données :
bigquery.datasets.create - Créer, déléguer et utiliser une connexion :
bigquery.connections.* - Définir la connexion par défaut :
bigquery.config.* - Définir les autorisations du compte de service :
resourcemanager.projects.getIamPolicyetresourcemanager.projects.setIamPolicy - Déployer et annuler le déploiement d'un modèle Vertex AI :
aiplatform.endpoints.deployaiplatform.endpoints.undeploy
- Créer un modèle et exécuter une inférence :
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Vertex AI: You incur costs for calls to the Vertex AI model that's represented by the remote model.
Obtenez une estimation des coûts en fonction de votre utilisation prévue,
utilisez le simulateur de coût.
Pour en savoir plus sur les tarifs de BigQuery, consultez la page Tarifs de BigQuery dans la documentation BigQuery.
Les modèles ouverts que vous déployez sur Vertex AI sont facturés à l'heure machine. Cela signifie que la facturation commence dès que le point de terminaison est entièrement configuré et se poursuit jusqu'à ce que vous annuliez son déploiement. Pour en savoir plus sur les tarifs de Vertex AI, consultez la page Tarifs de Vertex AI.
Avant de commencer
-
Dans la Google Cloud console, sur la page de sélection du projet, sélectionnez ou créez un Google Cloud projet.
Rôles requis pour sélectionner ou créer un projet
- Sélectionner 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.
-
Vérifiez que la facturation est activée pour votre Google Cloud projet.
-
Activez les API BigQuery, BigQuery Connection et Vertex AI.
Rôles requis pour activer les API
Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (
roles/serviceusage.serviceUsageAdmin), qui contient l'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.
Créer un ensemble de données
Créez un ensemble de données BigQuery pour stocker votre modèle de ML.
Console
Dans la Google Cloud console, accédez à la page BigQuery.
Dans le volet Explorateur, cliquez sur le nom de votre projet.
Cliquez sur Afficher les actions > Créer un ensemble de données
Sur la page Créer un ensemble de données, procédez comme suit :
Dans le champ ID de l'ensemble de données, saisissez
bqml_tutorial.Pour Type d'emplacement, sélectionnez Multirégional, puis sélectionnez US.
Conservez les autres paramètres par défaut, puis cliquez sur Créer un ensemble de données.
bq
Pour créer un ensemble de données, exécutez la
bq mk --dataset commande.
Créez un ensemble de données nommé
bqml_tutorialavec l'emplacement des données défini surUS.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Vérifiez que l'ensemble de données a été créé :
bq ls
API
Appelez la datasets.insert
méthode avec une ressource d'ensemble de données définie.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Créer le modèle distant
Créez un modèle distant représentant un modèle Vertex AI hébergé :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
CREATE OR REPLACE MODEL `bqml_tutorial.gemma_model` REMOTE WITH CONNECTION DEFAULT OPTIONS ( MODEL_GARDEN_MODEL_NAME = 'publishers/google/models/gemma3@gemma-3-270m-it', MACHINE_TYPE = 'g2-standard-12' );
L'exécution de la requête prend jusqu'à 20 minutes, après quoi le modèle gemma_model apparaît dans l'ensemble de données bqml_tutorial dans le volet Explorateur. Étant donné que la requête utilise une instruction CREATE MODEL pour créer un modèle, il n'y a aucun résultat de requête.
Effectuer une extraction de mots clés
Effectuez une extraction de mots clés sur IMDB avis de films en
utilisant le modèle distant et la fonction AI.GENERATE_TEXT :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante pour effectuer l'extraction de mots clés sur 10 avis de films :
SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT 'Extract the key words from the movie review below: ' || review AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 10 ), STRUCT( 0.2 AS temperature, 100 AS max_output_tokens));
Le résultat ressemble à ce qui suit, les colonnes non générées étant omises pour plus de clarté :
+----------------------------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | Extract the key words from | | | movie review: * **Romance:** | | the movie review below: | | | "romantic tryst," "elope" * **Comedy:** | | Linda Arvidson (as Jennie) | | | "Contrived Comedy" * **Burglary:** | | and Harry Solter (as Frank) | | | "burglar," "rob," "booty" * **Chase:** | | are enjoying a romantic | | | "chases," "escape" * **Director:** "D.W. | | tryst, when in walks her... | | | Griffith" * **Actors:** "Linda Arvidson,"... | | | | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | Extract the key words from | | | movie review: * **Elderbush Gilch:** The | | the movie review below: | | | name of the movie being reviewed. * | | This is the second addition | | | **Disappointment:** The reviewer's | | to Frank Baum's personally | | | overall feeling about the film. * | | produced trilogy of Oz | | | **Dim-witted:** Describes the story | | films. It's essentially ... | | | line negatively. * **Moronic, sadistic,... | | | | +----------------------------------------------+-------------------------+-----------------------------+-----+Les résultats incluent les colonnes suivantes :
result: texte généré.status: état de réponse d'API pour la ligne correspondante. Si l'opération a abouti, cette valeur est vide.prompt: requête utilisée pour l'analyse des sentiments.- Toutes les colonnes de la table
bigquery-public-data.imdb.reviews.
Effectuer une analyse des sentiments
Effectuez une analyse des sentiments sur des avis de films IMDB à l'aide
du modèle distant et de la fonction AI.GENERATE_TEXT :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante pour effectuer une analyse des sentiments sur 10 avis de films :
SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT 'Analyze the sentiment of the following movie review and classify it as either POSITIVE or NEGATIVE. \nMovie Review: ' || review AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 10 ), STRUCT( 0.2 AS temperature, 128 AS max_output_tokens));
Le résultat ressemble à ce qui suit, les colonnes non générées étant omises pour plus de clarté :
+-----------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +-----------------------------+-------------------------+-----------------------------+-----+ | **NEGATIVE** | | Analyze the sentiment of | | | | | movie review and classify | | | | | it as either POSITIVE or | | | | | NEGATIVE. Movie Review: | | | | | Although Charlie Chaplin | | | | | made some great short | | | | | comedies in the late... | | +-----------------------------+-------------------------+-----------------------------+-----+ | **NEGATIVE** | | Analyze the sentiment of | | | | | movie review and classify | | | | | it as either POSITIVE or | | | | | NEGATIVE. Movie Review: | | | | | Opulent sets and sumptuous | | | | | costumes well photographed | | | | | by Theodor Sparkuhl, and... | | +-----------------------------+-------------------------+-----------------------------+-----+Les résultats incluent les mêmes colonnes que celles décrites dans la section Effectuer une extraction de mots clés.
Annuler le déploiement du modèle
Si vous choisissez de ne pas supprimer votre projet comme recommandé, vous devez
annuler le déploiement du modèle Gemma dans Vertex AI pour éviter
de continuer à être facturé. BigQuery annule automatiquement le déploiement du modèle après une période d'inactivité spécifiée (6,5 heures par défaut).
Vous pouvez également annuler immédiatement le déploiement du modèle à l'aide de l'
ALTER MODEL instruction,
comme illustré dans l'exemple suivant :
ALTER MODEL `bqml_tutorial.gemma_model` SET OPTIONS (deploy_model = false);
Pour en savoir plus, consultez Annulation automatique ou immédiate du déploiement d'un modèle ouvert.
Effectuer un nettoyage
- 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 sur Arrêter pour supprimer le projet.