Gérer les métriques d'évaluation

Avant de commencer

Avant de gérer les métriques d'évaluation, assurez-vous de disposer des éléments suivants :

  • Un projet Google Cloud avec l'API Agent Platform activée.
  • (Facultatif) Si vous utilisez le SDK Agent Platform, initialisez le client comme décrit dans Évaluer vos agents.

Le registre des métriques vous permet de définir, de stocker et de gérer des configurations réutilisables pour évaluer vos agents. Au lieu de configurer des critères pour chaque série de tests, vous pouvez enregistrer des métriques standardisées (par exemple, une grille d'évaluation personnalisée basée sur un LLM pour la sécurité ou une fonction Python pour la précision de l'exécution) et les appliquer de manière cohérente aux évaluations hors connexion et aux moniteurs en ligne continus.

Types de métriques

Agent Platform est compatible avec trois types de métriques dans le registre :

  • Métriques prédéfinies : métriques gérées fournies par Google, y compris les évaluateurs multitours pour la réussite des tâches, la qualité de l'utilisation des outils et la conformité de la trajectoire.
  • Métriques LLM personnalisées : rubriques en langage naturel dans lesquelles un "LLM évaluateur" évalue la réponse d'un agent en fonction de vos critères et échelles de notation spécifiques.
  • Métriques de code personnalisé : fonctions Python qui valident de manière programmatique le comportement de l'agent, par exemple en vérifiant un format de sortie spécifique ou en validant une réponse d'outil.

En plus des métriques gérées fournies par Google, vous pouvez utiliser des métriques enregistrées personnalisées pour l'évaluation.

Métriques prédéfinies

Agent Platform fournit un ensemble de métriques prédéfinies pour évaluer les agents. Ces métriques sont gérées par Google et couvrent les dimensions d'évaluation courantes pour les interactions avec l'agent en un seul tour et en multitour.

Vous pouvez accéder aux métriques prédéfinies dans le SDK à l'aide de types.RubricMetric.METRIC_NAME. Pour obtenir tous les détails sur les métriques gérées basées sur des rubriques, y compris les exigences d'entrée et les formats de sortie, consultez Détails des métriques gérées basées sur des rubriques.

Métriques d'agent à tour unique

Les métriques suivantes évaluent une seule interaction d'agent (une requête et une réponse, potentiellement avec des appels d'outils intermédiaires) :

Métrique Type Accesseur de SDK Description
Qualité de la réponse finale de l'agent Grille d'évaluation adaptative types.RubricMetric.FINAL_RESPONSE_QUALITY Évaluation complète qui génère automatiquement des critères de grille d'évaluation en fonction de la configuration de l'agent (instructions système et déclarations d'outils) et de la requête de l'utilisateur.
Hallucination de l'agent Grille d'évaluation statique types.RubricMetric.HALLUCINATION Vérifie la factualité en segmentant la réponse en affirmations atomiques et en vérifiant que chaque affirmation est ancrée dans l'utilisation de l'outil à partir d'événements intermédiaires.
Qualité de l'utilisation des outils par l'agent Grille d'évaluation adaptative types.RubricMetric.TOOL_USE_QUALITY Évalue la sélection d'outils appropriés, l'utilisation correcte des paramètres et le respect de la séquence d'opérations spécifiée.
Sécurité Grille d'évaluation statique types.RubricMetric.SAFETY Évalue si la réponse enfreint les règles de sécurité, y compris celles concernant les informations permettant d'identifier personnellement l'utilisateur et les données démographiques, l'incitation à la haine, les contenus dangereux, le harcèlement ou les contenus à caractère sexuel explicite. Renvoie 1 pour "safe" et 0 pour "unsafe".

Métriques d'agent multi-tours

Les métriques suivantes évaluent les conversations multitours des agents. Ils analysent le contexte complet de la conversation pour évaluer les performances globales de l'agent sur plusieurs tours :

Métrique Type Accesseur de SDK Description
Réussite de la tâche multitour de l'agent Grille d'évaluation adaptative types.RubricMetric.MULTI_TURN_TASK_SUCCESS Évalue si l'agent a atteint le ou les objectifs de la conversation. Cette métrique sans référence se concentre sur si l'objectif a été atteint, et non sur comment il l'a été.
Qualité de l'utilisation des outils multitour par l'agent Grille d'évaluation adaptative types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY Évalue la qualité des appels de fonction effectués lors d'une conversation multitour. Évalue si l'agent a appelé les bons outils avec les bons arguments au bon moment.
Qualité de la trajectoire multitour de l'agent Grille d'évaluation adaptative types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY Évalue la trajectoire (chemin) globale de la conversation. Contrairement à la métrique "Succès de la tâche", celle-ci évalue comment l'agent a atteint l'objectif, c'est-à-dire si le cheminement du raisonnement était logique et efficace.

Utiliser des métriques prédéfinies dans le SDK

from vertexai import evals, types

# Run an evaluation with predefined metrics
result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.FINAL_RESPONSE_QUALITY,
        types.RubricMetric.TOOL_USE_QUALITY,
        types.RubricMetric.HALLUCINATION,
        types.RubricMetric.SAFETY,
    ],
)

# Visualize results in Colab
result.show()

Gérer les métriques dans la console

  1. Dans la console Google Cloud , accédez à la page Agent Platform > Agents > Évaluation.

    Accéder à la page "Évaluation"

  2. Cliquez sur l'onglet Métriques pour afficher le registre.

  3. Créer une métrique : cliquez sur Nouvelle métrique, puis sélectionnez Métrique de LLM personnalisée ou Métrique de code personnalisé.

  4. Définir des rubriques : pour les métriques LLM, utilisez les boutons Exemple pour remplir rapidement les instructions, les critères (par exemple, Clarté ou Enthousiasme) et les notes.

  5. Afficher et modifier : cliquez sur le nom d'une métrique pour afficher sa définition en mode lecture seule, ou utilisez l'icône Plus d'options pour dupliquer ou supprimer la ressource.

Gérer les métriques avec le SDK

Vous pouvez enregistrer et utiliser des métriques de manière programmatique à l'aide du SDK Agent Platform.

Enregistrer une métrique de LLM personnalisée

from vertexai import evals, types

# Define a metric with a specific rubric
tone_check_metric = types.LLMMetric(
        name="tone_check",
        prompt_template="Analyze the tone of the response ...",
        result_parsing_function="""
          import json, re
          def parse_results(responses):
              response = json.loads(responses[0])
              return {"score": response.get("score", 0.0),
                      "explanation": response.get("explanation", "default explanation")}
          """
)

# Register the custom metric
tone_check_metric_path = client.evals.create_evaluation_metric(
    metric=tone_check_metric
)

Enregistrer une métrique de code personnalisée

from vertexai import evals, types

# Define a metric with custom python code
accuracy_metric_code = """
def evaluate(instance: dict) -> float:
    agent_data = instance.get('agent_eval_data', {})
    turns = agent_data.get('turns', [])
    for turn in turns:
        ...
"""

accuracy_metric = types.CodeExecutionMetric(
    name="multi_turn_accuracy",
    custom_function=accuracy_metric_code
)

# Register the custom metric
accuracy_metric_path = client.evals.create_evaluation_metric(
    metric=accuracy_metric
)