Avaliar um modelo de juiz

Para métricas baseadas em modelo, o serviço de avaliação de IA generativa avalia seus modelos com um modelo de base, como o Gemini, que foi configurado e solicitado como modelo de julgamento. Se você quiser saber mais sobre o modelo de juiz, a Série de personalização avançada do modelo de juiz descreve outras ferramentas que podem ser usadas para avaliar e configurar o modelo de juiz.

Para conferir o fluxo de trabalho de avaliação básica, consulte o Guia de início rápido do serviço de avaliação de IA generativa. A série de personalização de modelos de juízes avançados inclui as seguintes páginas:

  1. Avaliar um modelo de juiz (página atual)
  2. Solicitação de personalização do modelo do juiz
  3. Configurar um modelo de avaliação

Visão geral

Usar juízes humanos para avaliar modelos de linguagem grandes (LLMs) pode ser caro e demorado. Usar um modelo de juiz é uma maneira mais escalonável de avaliar LLMs. O serviço de avaliação de IA generativa usa um modelo Gemini 2.0 Flash configurado por padrão como o modelo de julgamento, com instruções personalizáveis para avaliar seu modelo em vários casos de uso.

As seções a seguir mostram como avaliar um modelo de avaliação personalizado para seu caso de uso ideal.

Preparar o conjunto de dados

Para avaliar as métricas com base no modelo, prepare um conjunto de dados de avaliação com classificações humanas como informações empíricas. O objetivo é comparar as pontuações das métricas baseadas em modelos com as classificações humanas e verificar se as métricas baseadas em modelos têm a qualidade ideal para seu caso de uso.

  • Para PointwiseMetric, prepare a coluna {metric_name}/human_rating no conjunto de dados como as informações empíricas do resultado {metric_name}/score gerado por métricas baseadas em modelo.

  • Para PairwiseMetric, prepare a coluna {metric_name}/human_pairwise_choice no conjunto de dados como as informações empíricas do resultado {metric_name}/pairwise_choice gerado por métricas baseadas em modelos.

Use o esquema de conjunto de dados a seguir:

Métrica baseada em modelo Coluna de classificação humana
PointwiseMetric {metric_name}/human_rating
PairwiseMetric {metric_name}/human_pairwise_choice

Métricas disponíveis

Para uma PointwiseMetric que retorna apenas duas pontuações (como 0 e 1) e uma PairwiseMetric que tem apenas dois tipos de preferência (modelo A ou B), as seguintes métricas estão disponíveis:

Métrica Cálculo
Precisão equilibrada de duas classes \( (1/2)*(True Positive Rate + True Negative Rate) \)
Pontuação F1 equilibrada de duas classes \( ∑_{i=0,1} (cnt_i/sum) * f1(class_i) \)
Matriz de confusão Use os campos confusion_matrix e confusion_matrix_labels para calcular métricas como taxa de verdadeiro positivo (TPR), taxa de verdadeiro negativo (TNR), taxa de falso positivo (FPR) e taxa de falso negativo (FNR).

Por exemplo, o resultado a seguir:
confusion_matrix = [[20, 31, 15],
    [10, 11,  3],
   [ 3,  2,  2]]
confusion_matrix_labels = ['BASELINE', 'CANDIDATE', 'TIE']
se traduz na seguinte matriz de confusão:
             BASELINE |  CANDIDATE | TIE
   BASELINE.    20         31        15
   CANDIDATE.   10         11         3
   TIE.         3           2         2 |

Para uma PointwiseMetric que retorna mais de duas pontuações (por exemplo, de 1 a 5) e uma PairwiseMetric que tem mais de dois tipos de preferência (modelo A, modelo B ou empate), as seguintes métricas estão disponíveis:

Métrica Cálculo
Precisão equilibrada de várias classes \( (1/n) *∑_{i=1...n}(recall(class_i)) \)
Pontuação F1 equilibrada de várias classes \( ∑_{i=1...n} (cnt_i/sum) * f1(class_i) \)

Em que:

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

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

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

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

  • \( cnt_i \) : número de \( class_i \) nos dados reais

  • \( sum \): número de elementos nos dados de verdade

Para calcular outras métricas, use bibliotecas de código aberto.

Avaliar a métrica baseada no modelo

O exemplo a seguir atualiza a métrica baseada em modelo com uma definição personalizada de fluência e avalia a qualidade dela.

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

A seguir