Évaluer un modèle d'évaluation

Ce guide vous explique comment évaluer un modèle de juge en comparant ses performances à celles des évaluations humaines.

Cette page aborde les sujets suivants :

  • Préparer l'ensemble de données : découvrez comment structurer votre ensemble de données avec des évaluations humaines pour qu'il serve de vérité terrain pour l'évaluation.
  • Métriques disponibles : découvrez les métriques utilisées pour mesurer l'accord entre le modèle de juge et les évaluations humaines.
  • Évaluer la métrique basée sur un modèle : consultez un exemple de code expliquant comment exécuter un job d'évaluation et obtenir des scores de qualité pour votre modèle d'évaluation.

Pour les métriques basées sur un modèle, le service Gen AI Evaluation Service utilise un modèle de base, tel que Gemini, comme modèle d'évaluation pour évaluer vos modèles. Pour en savoir plus sur le modèle de juge, la série sur la personnalisation avancée du modèle de juge décrit d'autres outils que vous pouvez utiliser pour l'évaluer et le configurer.

Pour le workflow d'évaluation de base, consultez le guide de démarrage rapide de Gen AI Evaluation Service. La série sur la personnalisation avancée des modèles de juges comprend les pages suivantes :

  1. Évaluer un modèle de juge (cette page)
  2. Personnalisation du modèle de juge à l'aide de requêtes
  3. Configurer un modèle de juge

Présentation

L'utilisation de juges humains pour évaluer les grands modèles de langage (LLM) peut être coûteuse et prendre du temps. L'utilisation d'un modèle de jugement est une méthode plus évolutive pour évaluer les LLM. Le service d'évaluation de l'IA générative utilise par défaut un modèle Gemini 2.0 Flash configuré comme modèle d'évaluation, avec des requêtes personnalisables pour évaluer votre modèle pour différents cas d'utilisation.

Les sections suivantes vous expliquent comment évaluer un modèle de juge personnalisé pour votre cas d'utilisation idéal.

Types de métriques

Le service d'évaluation de l'IA générative utilise deux types de métriques basées sur des modèles pour évaluer les modèles d'évaluation.

Type de métrique Description Cas d'utilisation
PointwiseMetric Attribue un score numérique à la sortie d'un modèle unique en fonction d'un critère spécifique (par exemple, la fluidité ou la sécurité). Lorsque vous devez évaluer une seule réponse du modèle sur une échelle (par exemple, évaluer l'utilité sur une échelle de 1 à 5).
PairwiseMetric Compare les sorties de deux modèles (un candidat et une référence) et choisit celle qui est préférée. Lorsque vous devez déterminer laquelle des deux réponses d'un modèle est la meilleure pour une requête donnée.

Préparer l'ensemble de données

Pour évaluer les métriques basées sur des modèles, vous devez préparer un ensemble de données d'évaluation incluant des évaluations humaines qui serviront de vérité terrain. L'objectif est de comparer les scores des métriques basées sur des modèles avec les évaluations humaines pour déterminer si les métriques basées sur des modèles ont la qualité idéale pour votre cas d'utilisation.

Votre ensemble de données doit inclure une colonne pour les évaluations humaines qui correspond à la métrique basée sur le modèle que vous évaluez. Le tableau suivant indique la colonne de notation humaine requise pour chaque type de métrique :

Métrique basée sur un modèle Colonne de classification humaine obligatoire
PointwiseMetric {metric_name}/human_rating
PairwiseMetric {metric_name}/human_pairwise_choice

Métriques disponibles

Gen AI Evaluation Service fournit différentes métriques en fonction du nombre de résultats possibles.

Métriques pour les résultats binaires

Pour un PointwiseMetric qui ne renvoie que deux scores (0 et 1, par exemple) et un PairwiseMetric qui ne comporte que deux types de préférences (modèle A ou modèle B), les métriques suivantes sont disponibles :

Métrique Calcul
Précision équilibrée à deux classes \( (1/2)*(True Positive Rate + True Negative Rate) \)
Score F1 équilibré à deux classes \( ∑_{i=0,1} (cnt_i/sum) * f1(class_i) \)
Matrice de confusion Utilisez les champs confusion_matrix et confusion_matrix_labels pour calculer des métriques telles que le taux de vrais positifs (TVP), le taux de vrais négatifs (TVN), le taux de faux positifs (TFP) et le taux de faux négatifs (TFN).

Par exemple, le résultat suivant :
confusion_matrix = [[20, 31, 15],
    [10, 11,  3],
   [ 3,  2,  2]]
confusion_matrix_labels = ['BASELINE', 'CANDIDATE', 'TIE']
se traduit par la matrice de confusion suivante :
             BASELINE |  CANDIDATE | TIE
   BASELINE.    20         31        15
   CANDIDATE.   10         11         3
   TIE.         3           2         2 |

Métriques pour plusieurs résultats

Pour un PointwiseMetric qui renvoie plus de deux scores (par exemple, de 1 à 5) et un PairwiseMetric qui comporte plus de deux types de préférences (modèle A, modèle B ou égalité), les métriques suivantes sont disponibles :

Métrique Calcul
Justesse équilibrée multiclasse \( (1/n) *∑_{i=1...n}(recall(class_i)) \)
Score F1 équilibré multiclasse \( ∑_{i=1...n} (cnt_i/sum) * f1(class_i) \)

Où :

  • \( f1 = 2 * precision * recall / (precision + recall) \)

    • \( precision = True Positives / (True Positives + False Positives) \)

    • \( recall = True Positives / (True Positives + False Negatives) \)

  • \( n \)  : nombre de classes

  • \( cnt_i \)  : nombre de \( class_i \) dans les données de vérité terrain

  • \( sum \) : nombre d'éléments dans les données de vérité terrain

Pour calculer d'autres métriques, vous pouvez utiliser des bibliothèques Open Source.

Évaluer la métrique basée sur le modèle

L'exemple suivant met à jour la métrique basée sur le modèle avec une définition personnalisée de la fluidité, puis évalue la qualité de la métrique.

from vertexai.preview.evaluation import {
   AutoraterConfig,
   PairwiseMetric,
}
from vertexai.preview.evaluation.autorater_utils import evaluate_autorater


# Step 1: Prepare the evaluation dataset with the human rating data column.
human_rated_dataset = pd.DataFrame({
  "prompt": [PROMPT_1, PROMPT_2],
    "response": [RESPONSE_1, RESPONSE_2],
  "baseline_model_response": [BASELINE_MODEL_RESPONSE_1, BASELINE_MODEL_RESPONSE_2],
    "pairwise_fluency/human_pairwise_choice": ["model_A", "model_B"]
})

# Step 2: Get the results from model-based metric
pairwise_fluency = PairwiseMetric(
    metric="pairwise_fluency",
    metric_prompt_template="please evaluate pairwise fluency..."
)

eval_result = EvalTask(
    dataset=human_rated_dataset,
    metrics=[pairwise_fluency],
).evaluate()

# Step 3: Calibrate model-based metric result and human preferences.
# eval_result contains human evaluation result from human_rated_dataset.
evaluate_autorater_result = evaluate_autorater(
  evaluate_autorater_input=eval_result.metrics_table,
  eval_metrics=[pairwise_fluency]
)

Étapes suivantes