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 fundação, como o Gemini, que foi configurado e solicitado como um modelo juiz. Se você quiser saber mais sobre o modelo de avaliação, a série de personalização avançada do modelo de avaliação descreve outras ferramentas que podem ser usadas para avaliar e configurar o modelo.

Para 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 avançada do modelo de avaliação inclui as seguintes páginas:

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

Visão geral

Usar avaliadores humanos para avaliar modelos de linguagem grandes (LLMs) pode ser caro e demorado. Usar um modelo de avaliação é uma maneira mais escalonável de avaliar LLMs. Por padrão, o serviço de avaliação de IA generativa usa um modelo configurado do Gemini 2.0 Flash como modelo de avaliação, com comandos personalizáveis para avaliar seu modelo em vários casos de uso.

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

Preparar o conjunto de dados

Para avaliar métricas baseadas em modelos, 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 para o resultado {metric_name}/score gerado por métricas baseadas em modelos.

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

Use o seguinte esquema de conjunto de dados:

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 um PointwiseMetric que retorna apenas duas pontuações (como 0 e 1) e um PairwiseMetric que tem apenas dois tipos de preferência (modelo A ou modelo B), as seguintes métricas estão disponíveis:

Métrica Cálculo
Acurácia balanceada de duas classes \( (1/2)*(True Positive Rate + True Negative Rate) \)
Pontuação F1 balanceada 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 verdadeiros positivos (TVP), taxa de verdadeiros negativos (TVN), taxa de falsos positivos (TFP) e taxa de falsos negativos (TFN).

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

Para um PointwiseMetric que retorna mais de duas pontuações (como de 1 a 5) e um 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
Acurácia balanceada multiclasse \( (1/n) *∑_{i=1...n}(recall(class_i)) \)
Pontuação F1 balanceada 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 de informações empíricas

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

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

Avaliar a métrica baseada em modelo

O exemplo a seguir atualiza a métrica baseada em modelo com uma definição personalizada de fluência e avalia a qualidade da 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]
)

A seguir