Préparer votre ensemble de données d'évaluation

Pour Gen AI Evaluation Service, l'ensemble de données d'évaluation se compose généralement de la réponse du modèle que vous souhaitez évaluer, des données d'entrée utilisées pour générer votre réponse et éventuellement de la réponse de vérité terrain.

Schéma de l'ensemble de données d'évaluation

Pour les cas d'utilisation de métriques basées sur des modèles typiques, votre ensemble de données doit fournir les informations suivantes:

Type d'entrée Contenu du champ de saisie
requête Saisie utilisateur pour le modèle ou l'application d'IA générative. Il est facultatif dans certains cas.
réponse Votre réponse d'inférence LLM à évaluer.
baseline_model_response (obligatoire pour les métriques par paires) Réponse d'inférence LLM de référence utilisée pour comparer votre réponse LLM dans l'évaluation par paires

Si vous utilisez le module Gen AI Evaluation du SDK Vertex AI pour Python, Gen AI Evaluation Service peut générer automatiquement les response et baseline_model_response avec le modèle que vous avez spécifié.

Pour d'autres cas d'utilisation d'évaluation, vous devrez peut-être fournir plus d'informations :

Multitour ou chat

Type d'entrée Contenu du champ de saisie
historique Historique de la conversation entre l'utilisateur et le modèle avant le tour actuel.
requête Saisie utilisateur pour le modèle ou l'application d'IA générative au cours du tour actuel.
réponse Votre réponse d'inférence LLM à évaluer, basée sur l'historique et la requête de tour actuel.
baseline_model_response (obligatoire pour les métriques par paires) Réponse d'inférence LLM de référence utilisée pour comparer votre réponse LLM à l'évaluation par paires, qui est basée sur l'historique et la requête du tour actuel.

Métriques basées sur le calcul

Votre ensemble de données doit fournir à la fois la réponse du grand modèle de langage et une référence à comparer.

Type d'entrée Contenu du champ de saisie
réponse Votre réponse d'inférence LLM à évaluer.
référence La vérité terrain à laquelle comparer votre réponse LLM.

Selon vos cas d'utilisation, vous pouvez également diviser la requête utilisateur d'entrée en éléments plus précis, tels que instruction et context, et les assembler pour l'inférence en fournissant un modèle de requête. Vous pouvez également fournir des informations de référence ou de vérité terrain si nécessaire:

Type d'entrée Contenu du champ de saisie
instruction Partie de la requête utilisateur d'entrée. Fait référence à l'instruction d'inférence envoyée à votre LLM. Par exemple, "Résume le texte suivant" est une instruction.
context Saisie utilisateur pour le modèle ou l'application d'IA générative au cours du tour actuel.
référence La vérité terrain à laquelle comparer votre réponse LLM.

Les entrées requises pour l'ensemble de données d'évaluation doivent être cohérentes avec vos métriques. Pour en savoir plus sur la personnalisation de vos métriques, consultez Définir vos métriques d'évaluation et Exécuter l'évaluation. Pour savoir comment inclure des données de référence dans vos métriques basées sur des modèles, consultez Adapter un modèle de requête de métrique à vos données d'entrée.

Importer votre ensemble de données d'évaluation

Vous pouvez importer votre ensemble de données dans les formats suivants:

  • Fichier JSONL ou CSV stocké dans Cloud Storage

  • Table BigQuery

  • DataFrame Pandas

Exemples d'ensembles de données d'évaluation

Cette section présente des exemples d'ensembles de données utilisant le format Pandas Dataframe. Notez que seuls quelques enregistrements de données sont présentés ici à titre d'exemple, et que les ensembles de données d'évaluation comportent généralement au moins 100 points de données. Pour découvrir les bonnes pratiques à adopter lors de la préparation d'un ensemble de données, consultez la section Bonnes pratiques.

Métriques par point basées sur un modèle

Voici un exemple de synthèse illustrant un ensemble de données représentatif pour les métriques par point basées sur un modèle :

prompts = [
    # Example 1
    (
        "Summarize the text in one sentence: As part of a comprehensive"
        " initiative to tackle urban congestion and foster sustainable urban"
        " living, a major city has revealed ambitious plans for an extensive"
        " overhaul of its public transportation system. The project aims not"
        " only to improve the efficiency and reliability of public transit but"
        " also to reduce the city's carbon footprint and promote eco-friendly"
        " commuting options. City officials anticipate that this strategic"
        " investment will enhance accessibility for residents and visitors"
        " alike, ushering in a new era of efficient, environmentally conscious"
        " urban transportation."
    ),
    # Example 2
    (
        "Summarize the text such that a five-year-old can understand: A team of"
        " archaeologists has unearthed ancient artifacts shedding light on a"
        " previously unknown civilization. The findings challenge existing"
        " historical narratives and provide valuable insights into human"
        " history."
    ),
]

responses = [
    # Example 1
    (
        "A major city is revamping its public transportation system to fight"
        " congestion, reduce emissions, and make getting around greener and"
        " easier."
    ),
    # Example 2
    (
        "Some people who dig for old things found some very special tools and"
        " objects that tell us about people who lived a long, long time ago!"
        " What they found is like a new puzzle piece that helps us understand"
        " how people used to live."
    ),
]

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

Métriques par paire basées sur un modèle

L'exemple suivant présente un cas de réponse à une question pour illustrer un exemple d'ensemble de données pour les métriques de paires basées sur des modèles.

prompts = [
    # Example 1
    (
        "Based on the context provided, what is the hardest material? Context:"
        " Some might think that steel is the hardest material, or even"
        " titanium. However, diamond is actually the hardest material."
    ),
    # Example 2
    (
        "Based on the context provided, who directed The Godfather? Context:"
        " Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The"
        " Godfather, and the latter directed it as well."
    ),
]

responses = [
    # Example 1
    "Diamond is the hardest material. It is harder than steel or titanium.",
    # Example 2
    "Francis Ford Coppola directed The Godfather.",
]

baseline_model_responses = [
    # Example 1
    "Steel is the hardest material.",
    # Example 2
    "John Smith.",
]

eval_dataset = pd.DataFrame(
  {
    "prompt":  prompts,
    "response":  responses,
    "baseline_model_response": baseline_model_responses,
  }
)

Métriques basées sur le calcul

Pour les métriques basées sur le calcul, reference est souvent requis.

eval_dataset = pd.DataFrame({
  "response": ["The Roman Senate was filled with exuberance due to Pompey's defeat in Asia."],
  "reference": ["The Roman Senate was filled with exuberance due to successes against Catiline."],
})

Métriques d'utilisation de l'outil (appel de fonction)

L'exemple suivant montre les données d'entrée pour les métriques d'utilisation d'outils basées sur le calcul:

json_responses = ["""{
    "content": "",
    "tool_calls":[{
      "name":"get_movie_info",
      "arguments": {"movie":"Mission Impossible", "time": "today 7:30PM"}
    }]
  }"""]

json_references = ["""{
    "content": "",
    "tool_calls":[{
      "name":"book_tickets",
      "arguments":{"movie":"Mission Impossible", "time": "today 7:30PM"}
      }]
  }"""]

eval_dataset = pd.DataFrame({
    "response": json_responses,
    "reference": json_references,
})

Bonnes pratiques

Suivez ces bonnes pratiques lorsque vous définissez votre ensemble de données d'évaluation :

  • Fournissez des exemples représentant les types d'entrées que vos modèles traitent en production.
  • Votre ensemble de données doit inclure au moins un exemple d'évaluation. Nous vous recommandons d'utiliser environ 100 exemples pour garantir des métriques agrégées de haute qualité et des résultats statistiquement significatifs. Cette taille permet d'établir un niveau de confiance plus élevé dans les résultats d'évaluation agrégés, en minimisant l'influence des valeurs aberrantes et en s'assurant que les métriques de performances reflètent les véritables capacités du modèle dans différents scénarios. Le taux d'amélioration de la qualité agrégée tend à diminuer lorsque plus de 400 exemples sont fournis.

Étape suivante