Cómo 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 fundamental, como Gemini, que se configuró y se le proporcionaron instrucciones como modelo de juez. Si quieres obtener más información sobre el modelo de juez, en la serie de personalización avanzada del modelo de juez, se describen herramientas adicionales que puedes usar para evaluar y configurar el modelo de juez.

Para conocer el flujo de trabajo de evaluación básico, consulta la guía de inicio rápido de Gen AI Evaluation Service. La serie de personalización avanzada del modelo de juez incluye las siguientes páginas:

  1. Evalúa un modelo de juez (página actual)
  2. Indicaciones para la personalización del modelo de juez
  3. Configura un modelo de juez

Descripción general

Usar evaluadores humanos para evaluar modelos de lenguaje grandes (LLM) puede ser costoso y llevar mucho tiempo. Usar un modelo de juez es una forma más escalable de evaluar los LLMs. De forma predeterminada, el servicio de evaluación de IA generativa usa un modelo de juez configurado de Gemini 2.0 Flash, con instrucciones personalizables para evaluar tu modelo en varios casos de uso.

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

Prepara el conjunto de datos

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

  • Para PointwiseMetric, prepara la columna {metric_name}/human_rating en el conjunto de datos como la verdad fundamental para el resultado {metric_name}/score que generan las métricas basadas en modelos.

  • Para PairwiseMetric, prepara la columna {metric_name}/human_pairwise_choice en el conjunto de datos como la verdad fundamental para el resultado {metric_name}/pairwise_choice que generan las métricas basadas en modelos.

Usa el siguiente esquema de conjunto de datos:

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

Métricas disponibles

Para un PointwiseMetric que solo devuelve 2 puntuaciones (como 0 y 1) y un PairwiseMetric que solo tiene 2 tipos de preferencia (modelo A o modelo B), están disponibles 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 balanceada para 2 clases \( ∑_{i=0,1} (cnt_i/sum) * f1(class_i) \)
Matriz de confusión 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 confusión:
             BASELINE |  CANDIDATE | TIE
   BASELINE.    20         31        15
   CANDIDATE.   10         11         3
   TIE.         3           2         2 |

Para un PointwiseMetric que devuelve más de 2 puntuaciones (como del 1 al 5) y un PairwiseMetric que tiene más de 2 tipos de preferencia (Modelo A, Modelo B o Empate), están disponibles las siguientes métricas:

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

Aquí:

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

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

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

  • \( n \) : Cantidad de clases

  • \( cnt_i \) : Cantidad de \( class_i \) en los datos de verdad fundamental

  • \( sum \): Cantidad de elementos en los datos de verdad fundamental

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

Evalúa la métrica basada en el modelo

En el siguiente ejemplo, se actualiza la métrica basada en el modelo con una definición personalizada de fluidez y, luego, 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]
)

¿Qué sigue?