Ce tutoriel vous explique comment régler un modèle qui enrichit une phrase donnée en fournissant une formulation plus précise ou en ajoutant des qualificatifs sans en modifier le sens général. Vous allez créer un
modèle distant
qui référence un
modèle Gemini Enterprise Agent Platform,
utiliser le
réglage supervisé,
puis évaluer le modèle réglé avec la
ML.EVALUATE fonction.
Le réglage vous permet de personnaliser le modèle Agent Platform hébergé, par exemple lorsque le comportement attendu est difficile à définir dans une requête ou lorsque les requêtes ne produisent pas de résultats attendus de manière cohérente. Le réglage supervisé influence également le modèle des manières suivantes :
- Il permet de guider le modèle afin qu'il renvoie des styles de réponse spécifiques (par exemple, plus concis ou plus détaillé).
- Il entraîne les nouveaux comportements du modèle, par exemple en répondant aux requêtes en tant que persona spécifique.
- Il entraîne la mise à jour du modèle avec de nouvelles informations.
Dans ce tutoriel, l'objectif est que le modèle génère un texte dont le style et le contenu sont aussi proches que possible du contenu de vérité terrain fourni.
Objectifs
- Créez un ensemble de données.
- Importez des données d'entraînement et d'évaluation dans des tables.
- Créez un modèle de référence.
- Évaluez les performances du modèle de référence.
- Créez un modèle réglé.
- Évaluez les performances du modèle réglé.
Coûts
Dans ce tutoriel, vous utilisez les composants facturables de suivants Google Cloud:
- BigQuery. You incur costs for the queries that you run in BigQuery.
- BigQuery ML. You incur costs for the model that you create and the processing that you perform in BigQuery ML.
- Gemini Enterprise Agent Platform. You incur costs for calls to and supervised tuning of the Gemini model.
Obtenez une estimation des coûts en fonction de votre utilisation prévue,
utilisez le simulateur de coût.
Pour en savoir plus, consultez les ressources suivantes :
Avant de commencer
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)
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 une table :
bigquery.tables.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 - Créer un modèle et exécuter l'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.
-
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, Agent Platform et Compute Engine.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.
Créer un ensemble de données
Pour créer un ensemble de données BigQuery, sélectionnez l'une des options suivantes :
Console
Dans la Google Cloud console, accédez à la page BigQuery.
Dans le volet de gauche, cliquez sur Explorateur:

Si le volet de gauche ne s'affiche pas, cliquez sur Développer le volet de gauche pour l'ouvrir.
Dans Explorateur, développez votre projet, puis cliquez sur Ensembles de données.
Sur la page Ensembles de données, cliquez sur Créer un ensemble de données.
Dans le volet Créer un ensemble de données, procédez comme suit :
Dans le champ ID de l'ensemble de données, saisissez
bqml_tutorial.Dans le champ Emplacement des données, sélectionnez États-Unis.
Conservez les valeurs par défaut des autres paramètres.
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 des tables de test
Créez des tables de données d'entraînement et d'évaluation à partir de l'ensemble de données public
task955_wiki_auto_style_transferde Hugging Face.
Ouvrez Cloud Shell.
Dans Cloud Shell, créez des tables de données de test et d'évaluation :
python3 -m pip install pandas pyarrow fsspec huggingface_hub python3 -c "import pandas as pd; df_train = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/train-00000-of-00001.parquet').drop('id', axis=1); df_train['output'] = [x[0] for x in df_train['output']]; df_train.to_json('wiki_auto_style_transfer_train.jsonl', orient='records', lines=True);" python3 -c "import pandas as pd; df_valid = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/valid-00000-of-00001.parquet').drop('id', axis=1); df_valid['output'] = [x[0] for x in df_valid['output']]; df_valid.to_json('wiki_auto_style_transfer_valid.jsonl', orient='records', lines=True);" bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_train wiki_auto_style_transfer_train.jsonl input:STRING,output:STRING bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_valid wiki_auto_style_transfer_valid.jsonl input:STRING,output:STRING
Afficher les données d'entraînement
Les données d'entraînement d'entrée sont une requête qui demande au modèle de développer une phrase sans en modifier le sens général. Chaque requête inclut le même ensemble de deux exemples positifs et de deux exemples négatifs, ainsi qu'une phrase à réécrire. La sortie est la phrase plus détaillée produite par le modèle.
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante pour afficher un exemple de données d'entrée et de sortie :
SELECT * FROM bqml_tutorial.wiki_auto_style_transfer_train LIMIT 1;
Le résultat ressemble à ce qui suit :
+-----------------------------------------------+-------------------------------------------------+ | input | output | +-----------------------------------------------+-------------------------------------------------+ | Definition: In this task, we ask you to | Merton College ( in full : The House or College | | elaborate the sentence without changing its | of Scholars of Merton in the University of | | general meaning. You can do so by explaining | Oxford ) is one of the constituent colleges of | | further the input sentence, using more | the University of Oxford in England . | | precise wording, adding qualifiers and | | | auxiliary information etc. | | | | | | Positive Example 1 - | | | Input: The Inheritance Cycle is a series of | | | fantasy books written by Christopher Paolini. | | | Output: The Inheritance Cycle is a tetralogy | | | of young adult high fantasy novels written by | | | American author Christopher Paolini. | | | | | | Positive Example 2 - | | | Input: The Greco-Roman or Graeco-Roman world, | | | refers to geographical regions and countries | | | who had the language , culture , government | | | or religion of the ancient Greeks and Romans. | | | Output: The Greco-Roman world , Greco-Roman | | | culture , or the term Greco-Roman (spelled | | | Graeco-Roman in the United Kingdom and the | | | Commonwealth), when used as an adjective , as | | | understood by modern scholars and writers , | | | refers to those geographical regions and | | | countries that culturally ( and so | | | historically ) were directly , long-term , | | | and intimately influenced by the language , | | | culture , government and religion of the | | | ancient Greeks and Romans. | | | | | | Negative Example 1 - | | | Input: Boryla, an American football | | | quarterback, did not participate in the 1952 | | | playoffs. | | | Output: Boryla was not in the 1952 playoffs. | | | | | | Negative Example 2 - | | | Input: The wild population in China decreased | | | to around 2,000 in 2005. | | | Output: By 2005, the wild population | | | decreased to about 2,000. | | | | | | Now complete the following example - | | | Input: Merton College is one of the colleges | | | of the University of Oxford . | | | Output: | | +-----------------------------------------------+-------------------------------------------------+
Créer un modèle de référence
Créez un modèle distant sur un modèle Gemini :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante pour créer un modèle distant :
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_baseline` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-pro');
L'exécution de la requête prend plusieurs secondes, après quoi le modèle
gemini_baselineapparaît dans l'ensemble de donnéesbqml_tutorialdans le volet Explorateur. Étant donné que la requête utilise une instructionCREATE MODELpour créer un modèle, il n'y a aucun résultat de requête.
Vérifier les performances du modèle de référence
Pour voir comment le modèle distant se comporte sur les données d'évaluation sans aucun
réglage, exécutez la
AI.GENERATE_TEXT fonction :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
SELECT result, ground_truth FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_baseline`, ( SELECT input AS prompt, output AS ground_truth FROM `bqml_tutorial.wiki_auto_style_transfer_valid` LIMIT 10 ));
Le résultat ressemble à ce qui suit :
+-------------------------------------------------+-------------------------------------------------+ | result | ground_truth | +-------------------------------------------------+-------------------------------------------------+ | In mathematics, and more specifically in graph | In mathematics , and more specifically in graph | | theory, a graph is an abstract structure that | theory , a graph is a structure amounting to a | | is used to model pairwise relationships between | set of objects in which some pairs of the | | objects. A graph in this context is made up of | objects are in some sense " related " . | | vertices (also called nodes or points) and | | | edges (also called links or lines) that connect | | | pairs of vertices. | | | ... | ... | +-------------------------------------------------+-------------------------------------------------+
Bien que le modèle de référence génère du texte qui reflète avec précision les faits fournis dans le contenu de vérité terrain, le style du texte est parfois différent. Le modèle de référence a tendance à produire des élaborations plus longues que la vérité terrain souhaitée.
Évaluer le modèle de référence
Pour effectuer une évaluation plus détaillée des performances du modèle, vous allez utiliser la
ML.EVALUATE fonction.
Cette fonction calcule les métriques du modèle qui mesurent la précision et la qualité du texte généré afin de comparer les réponses du modèle aux réponses idéales.
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
SELECT * FROM ML.EVALUATE( MODEL `bqml_tutorial.gemini_baseline`, ( SELECT input AS input_text, output AS output_text FROM `bqml_tutorial.wiki_auto_style_transfer_valid` ), STRUCT('text_generation' AS task_type));
Le résultat ressemble à ce qui suit :
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status | +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+ | 0.32571814014498979 | 0.45752569962901607 | 0.557224161991254 | 0.49205029983307907 | { | | | | | | "num_successful_rows": 176, | | | | | | "num_total_rows": 176 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Ces scores fournissent un moyen quantitatif de mesurer les performances. Les sections suivantes vous montrent comment créer un modèle réglé et comparer ses performances à celles du modèle de référence.
Créer un modèle réglé
Créez un modèle distant très semblable à celui que vous avez créé dans
Créer un modèle, mais en spécifiant cette fois la clause
AS SELECT
pour fournir les données d'entraînement afin de régler le modèle.
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante pour créer un modèle distant :
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_tuned` REMOTE WITH CONNECTION DEFAULT OPTIONS ( endpoint = 'gemini-2.5-pro', max_iterations = 500, data_split_method = 'no_split') AS SELECT input AS prompt, output AS label FROM `bqml_tutorial.wiki_auto_style_transfer_train`;
L'exécution de la requête prend quelques minutes, après quoi le modèle
gemini_tunedapparaît dans l'ensemble de donnéesbqml_tutorialdans le volet Explorateur. Étant donné que la requête utilise une instructionCREATE MODELpour créer un modèle, il n'y a aucun résultat de requête.
Vérifier les performances du modèle réglé
Pour voir comment le modèle réglé se comporte sur les données d'évaluation, exécutez 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 :
SELECT result, ground_truth FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_tuned`, ( SELECT input AS prompt, output AS ground_truth FROM `bqml_tutorial.wiki_auto_style_transfer_valid` LIMIT 10 ));
Le modèle réglé produit un texte dont le style est beaucoup plus proche du contenu de vérité terrain.
Évaluer le modèle réglé
Pour comparer les réponses du modèle réglé aux réponses idéales, utilisez la fonction ML.EVALUATE :
Dans la Google Cloud console, accédez à la page BigQuery.
Dans l'éditeur de requête, exécutez l'instruction suivante :
SELECT * FROM ML.EVALUATE( MODEL `bqml_tutorial.gemini_tuned`, ( SELECT input AS prompt, output AS label FROM `bqml_tutorial.wiki_auto_style_transfer_valid` ), STRUCT('text_generation' AS task_type));
Le résultat ressemble à ce qui suit :
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status | +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+ | 0.44878025403825506 | 0.57236062510796448 | 0.638794269320597 | 0.59591519400141835 | { | | | | | | "num_successful_rows": 176, | | | | | | "num_total_rows": 176 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Le modèle réglé présente une nette amélioration des performances et surpasse le modèle de référence pour toutes les métriques d'évaluation.
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 un Google Cloud projet :
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Si vous souhaitez réutiliser le projet, supprimez les ressources que vous avez créées pour ce tutoriel.
Accédez à la page BigQuery.
Supprimez l'ensemble de données
bqml_tutorial. La suppression de l'ensemble de données entraîne également celle des modèles et des tables.Dans le volet Explorateur , développez votre projet, puis cliquez sur Ensembles de données.
Dans la liste Ensembles de données, cliquez sur l'ensemble de données
bqml_tutorial.Dans le panneau des détails, cliquez sur Supprimer.
Dans la boîte de dialogue Supprimer l'ensemble de données, cliquez sur Supprimer.
Étape suivante
- En savoir plus sur la
ML.EVALUATEfonction - En savoir plus sur la
AI.GENERATE_TEXTfonction. - Consulter les options de réglage supervisé pour les modèles distants