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:
- Avaliar um modelo de juiz (página atual)
- Solicitação de personalização do modelo do juiz
- 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'] 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]
)