Guide de démarrage rapide : workflow d'évaluation de l'IA générative

Cette page explique comment effectuer une évaluation basée sur un modèle dans le service d'évaluation de l'IA générative à l'aide du SDK Vertex AI.

Avant de commencer

  1. 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 gratuits 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.

    Go to project selector

    Make sure that billing is enabled for your Google Cloud project.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

    Make sure that billing is enabled for your Google Cloud project.

  2. Installez le SDK Vertex AI pour le service d'évaluation de l'IA générative :

    !pip install google-cloud-aiplatform[evaluation]
    

    Notez que vous devrez peut-être redémarrer l'environnement d'exécution du noyau pour charger le SDK Vertex AI.

  3. Configurez vos identifiants. Si vous exécutez ce guide de démarrage rapide dans Colaboratory, exécutez la commande suivante :

    from google.colab import auth
    auth.authenticate_user()
    

    Pour les autres environnements, consultez S'authentifier sur Vertex AI.

Importer des bibliothèques

Importez vos bibliothèques, puis configurez votre projet et votre emplacement.

import pandas as pd
import vertexai

from vertexai.evaluation import EvalTask, PointwiseMetric, PointwiseMetricPromptTemplate

PROJECT_ID = <var>"PROJECT_ID"</var>
LOCATION = <var>"LOCATION"</var>
EXPERIMENT_NAME = <var>"EXPERIMENT_NAME"</var>

vertexai.init(
    project=PROJECT_ID,
    location=LOCATION,
)

Configurer des métriques d'évaluation en fonction de vos critères

La définition de métrique suivante évalue la qualité du texte généré à partir d'un grand modèle de langage en fonction de deux critères : Fluency et Entertaining. Le code définit une métrique appelée custom_text_quality à l'aide de ces deux critères :

metric_prompt_template = PointwiseMetricPromptTemplate(
    criteria={
       "fluency": "Sentences flow smoothly and are easy to read, avoiding awkward phrasing or run-on sentences. Ideas and sentences connect logically, using transitions effectively where needed.",
       "entertaining": "Short, amusing text that incorporates emojis, exclamations and questions to convey quick and spontaneous communication and diversion.",
    },
    rating_rubric={
        "1" : "The response performs well in both criteria.",
        "0" : "The response does not performs well in both criteria",
    },
)

custom_text_quality = PointwiseMetric(
    metric="custom_text_quality",
    metric_prompt_template=metric_prompt_template,
)

Préparer votre ensemble de données

Ajoutez le code suivant pour préparer votre ensemble de données :

responses = [
    # An example of good custom_text_quality
    "Life is a rollercoaster, full of ups and downs, but it's the thrill that keeps us coming back for more!",
    # An example of medium custom_text_quality
    "The weather is nice today, not too hot, not too cold.",
    # An example of poor custom_text_quality
    "The weather is, you know, whatever.",
]

eval_dataset = pd.DataFrame({
    "response" : responses,
})

Exécuter l'évaluation avec votre ensemble de données

Exécutez l'évaluation :

eval_task = EvalTask(
    dataset=eval_dataset,
    metrics=[custom_text_quality],
    experiment=EXPERIMENT_NAME
)

pointwise_result = eval_task.evaluate()

Affichez les résultats de l'évaluation pour chaque réponse dans metrics_table :

pointwise_result.metrics_table

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :

Supprimez l'ExperimentRun créé par l'évaluation :

vertexai.ExperimentRun(
    run_name=pointwise_result.metadata["experiment_run"],
    experiment=pointwise_result.metadata["experiment"],
).delete()

Étape suivante