Evaluar un modelo de juez

En el caso de las métricas basadas en modelos, el servicio de evaluación de IA generativa evalúa tus modelos con un modelo fundacional, como Gemini, que se ha configurado y se ha usado como modelo de juez. Si quieres obtener más información sobre el modelo de juez, en la serie sobre la personalización avanzada del modelo de juez se describen otras herramientas que puedes usar para evaluar y configurar el modelo de juez.

Para consultar el flujo de trabajo de evaluación básico, consulta la guía de inicio rápido del servicio de evaluación de la IA generativa. La serie de personalización avanzada de modelos de jueces incluye las siguientes páginas:

  1. Evaluar un modelo de juez (página actual)
  2. Peticiones para personalizar el modelo de juez
  3. Configurar un modelo de juez

Información general

Usar evaluadores humanos para evaluar modelos de lenguaje extensos (LLMs) puede ser caro y llevar mucho tiempo. Usar un modelo de juez es una forma más escalable de evaluar LLMs. El servicio de evaluación de IA generativa usa de forma predeterminada un modelo Gemini 2.0 Flash configurado como modelo de juez, con peticiones personalizables para evaluar tu modelo en varios casos prácticos.

En las siguientes secciones se muestra cómo evaluar un modelo de juez personalizado para tu caso de uso ideal.

Preparar el conjunto de datos

Para evaluar las métricas basadas en modelos, prepara un conjunto de datos de evaluación con clasificaciones humanas como verdad fundamental. El objetivo es comparar las puntuaciones de las métricas basadas en modelos con las valoraciones humanas y determinar si las métricas basadas en modelos tienen la calidad ideal para tu caso práctico.

  • En el caso de PointwiseMetric, prepara la columna {metric_name}/human_rating del conjunto de datos como la verdad fundamental del resultado {metric_name}/score generado por las métricas basadas en modelos.

  • En el caso de PairwiseMetric, prepara la columna {metric_name}/human_pairwise_choice del conjunto de datos como la verdad fundamental del resultado {metric_name}/pairwise_choice generado por las métricas basadas en modelos.

Usa el siguiente esquema de conjunto de datos:

Métrica basada en modelos Columna de calificación humana
PointwiseMetric {metric_name}/human_rating
PairwiseMetric {metric_name}/human_pairwise_choice

Métricas disponibles

En el caso de un PointwiseMetric que solo devuelva dos puntuaciones (como 0 y 1) y un PairwiseMetric que solo tenga dos tipos de preferencias (Modelo A o Modelo B), se pueden usar las siguientes métricas:

Métrica Cálculo
Precisión equilibrada de 2 clases \( (1/2)*(True Positive Rate + True Negative Rate) \)
Puntuación F1 equilibrada de dos clases \( ∑_{i=0,1} (cnt_i/sum) * f1(class_i) \)
Matriz de confusiones Usa los campos confusion_matrix y confusion_matrix_labels para calcular métricas como la tasa de verdaderos positivos (TPR), la tasa de verdaderos negativos (TNR), la tasa de falsos positivos (FPR) y la tasa de falsos negativos (FNR).

Por ejemplo, el siguiente resultado:
confusion_matrix = [[20, 31, 15],
    [10, 11,  3],
   [ 3,  2,  2]]
confusion_matrix_labels = ['BASELINE', 'CANDIDATE', 'TIE']
se traduce en la siguiente matriz de confusiones:
             BASELINE |  CANDIDATE | TIE
   BASELINE.    20         31        15
   CANDIDATE.   10         11         3
   TIE.         3           2         2 |

En el caso de un PointwiseMetric que devuelva más de 2 puntuaciones (por ejemplo, del 1 al 5) y un PairwiseMetric que tenga más de 2 tipos de preferencia (Modelo A, Modelo B o Empate), se pueden usar las siguientes métricas:

Métrica Cálculo
Precisión equilibrada multiclase \( (1/n) *∑_{i=1...n}(recall(class_i)) \)
Puntuación F1 equilibrada de varias clases \( ∑_{i=1...n} (cnt_i/sum) * f1(class_i) \)

Donde:

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

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

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

  • \( n \) : número de clases

  • \( cnt_i \) : número de \( class_i \) en los datos validados

  • \( sum \): número de elementos de los datos validados

Para calcular otras métricas, puedes usar bibliotecas de código abierto.

Evaluar la métrica basada en el modelo

En el siguiente ejemplo se actualiza la métrica basada en modelos con una definición personalizada de fluidez y, a continuación, se evalúa la calidad de la métrica.

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]
)

Siguientes pasos