Avaliar um modelo de avaliação

Para métricas baseadas em modelos, as avaliações da Gemini Enterprise Agent Platform avaliam seus modelos com um modelo de fundação, como o Gemini, que foi configurado e solicitado como um modelo de juiz. Se quiser saber mais sobre o modelo de juiz, a série de personalização avançada do modelo de juiz descreve outras ferramentas que você pode usar para avaliar e configurar o modelo de juiz.

Para o fluxo de trabalho de avaliação básica, consulte o guia de início rápido de avaliações de IA generativa. A série de personalização avançada do modelo de juiz inclui as seguintes páginas:

  1. Avaliar um modelo de juiz (página atual)
  2. Configurar um modelo de juiz

Visão geral

Usar avaliadores 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. As avaliações de IA generativa usam um modelo do Gemini configurado 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 conferir 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 modelo.

  • 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 modelo.

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 verdadeiro positivo (TPR), taxa de verdadeiro negativo (TNR), taxa de falso positivo (FPR) e taxa de falso negativo (FNR).

Por exemplo, o seguinte resultado:
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 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 de várias classes \( (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 informações empíricas

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, em seguida, 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