Évaluer un modèle de juge

Pour les métriques basées sur un modèle, Gen AI Evals évalue vos modèles avec un modèle de fondation, tel que Gemini, qui a été configuré et invité en tant que modèle d'évaluation. Si vous souhaitez 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 évaluer et configurer le modèle de juge.

Pour le workflow d'évaluation de base, consultez le guide de démarrage rapide sur les évaluations de l'IA générative. La série sur la personnalisation avancée des modèles de juges comprend les pages suivantes :

  1. Évaluer un modèle de juge (page actuelle)
  2. 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 juge est un moyen plus évolutif d'évaluer les LLM. Les évaluations de l'IA générative utilisent un modèle Gemini 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 expliquent comment évaluer un modèle de juge personnalisé pour votre cas d'utilisation idéal.

Préparer l'ensemble de données

Pour évaluer les métriques basées sur un modèle, préparez un ensemble de données d'évaluation avec des évaluations humaines comme vérité terrain. L'objectif est de comparer les scores des métriques basées sur des modèles avec les évaluations humaines et de déterminer si les métriques basées sur des modèles présentent la qualité idéale pour votre cas d'utilisation.

  • Pour PointwiseMetric, préparez la colonne {metric_name}/human_rating de l'ensemble de données comme vérité terrain pour le résultat {metric_name}/score généré par les métriques basées sur le modèle.

  • Pour PairwiseMetric, préparez la colonne {metric_name}/human_pairwise_choice de l'ensemble de données comme vérité terrain pour le résultat {metric_name}/pairwise_choice généré par les métriques basées sur le modèle.

Utilisez le schéma d'ensemble de données suivant :

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

Métriques disponibles

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 |

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
Précision é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 un 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