As métricas baseadas em modelos oferecem várias abordagens para personalizar e ajudam a gerar métricas de avaliação com base nos seus critérios e exemplos de utilização. Esta página descreve como configurar o modelo de juiz para o seu caso de utilização ideal.
Para o fluxo de trabalho de avaliação básico, consulte o Início rápido do serviço de avaliação de IA gen. A série de personalização do modelo de juiz avançado inclui as seguintes páginas:
- Avalie um modelo de avaliador
 - Pedir personalização do modelo de juiz
 - Configure um modelo de juiz (página atual)
 
Vista geral
Tem as seguintes opções para configurar o seu modelo de avaliação para uma qualidade melhorada:
- Instruções do sistema: o modelo de juiz pode processar um conjunto de instruções antes de processar os comandos de avaliação.
 - Configurações do modelo de juiz:
- Inversão de respostas: inverta as respostas do modelo de base e do modelo candidato para reduzir a parcialidade do modelo de juiz durante a avaliação.
 - Amostragem múltipla: ajuste o número de vezes que o modelo de avaliação é chamado para melhorar a consistência da pontuação de avaliação.
 - Modelo de juiz otimizado: use um GML otimizado como modelo de juiz.
 
 
Instruções do sistema
Os modelos Gemini podem receber instruções do sistema, que são um conjunto de instruções que afetam a forma como o modelo processa os comandos. Pode usar instruções do sistema ao inicializar ou gerar conteúdo a partir de um modelo para especificar o comportamento ao nível do produto, como funções ou personagens, informações contextuais e estilo e tom de explicação. Normalmente, o modelo de avaliação pondera a importância das instruções do sistema mais do que os comandos de entrada.
Para ver uma lista de modelos que suportam instruções do sistema, consulte o artigo Modelos suportados.
O exemplo seguinte que usa o SDK Vertex AI adiciona system_instruction ao nível da métrica para PointwiseMetric:
system_instruction = "You are an expert evaluator."
linguistic_acceptability = PointwiseMetric(
    metric="linguistic_acceptability",
    metric_prompt_template=linguistic_acceptability_metric_prompt_template,
    system_instruction=system_instruction,
)
eval_result = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[linguistic_acceptability]
).evaluate()
Pode usar a mesma abordagem com o PairwiseMetric.
Configuração do modelo de juiz
Pode personalizar ainda mais o modelo de juiz através das seguintes opções autorater_config:
Inversão de respostas: inverta as respostas do modelo de base e do modelo candidato para reduzir a parcialidade do modelo de juiz durante a avaliação.
Amostragem múltipla: ajuste o número de vezes que o modelo de avaliação é chamado para melhorar a consistência da pontuação de avaliação.
Modelo de juiz otimizado: use um GML otimizado como modelo de juiz.
Inversão de respostas
Para PairwiseMetrics, o serviço de avaliação de IA gen recebe respostas para o modelo de base e o modelo candidato. O modelo de juiz avalia qual resposta se alinha melhor com os critérios em metric_prompt_template. No entanto, o modelo de juiz pode ter um viés em relação ao modelo de base ou candidato em determinadas definições.
Para reduzir o viés nos resultados da avaliação, pode ativar a inversão de respostas, em que metade das chamadas para o modelo de juiz inverte a resposta do modelo de base e do modelo candidato através do Vertex AI SDK:
from vertexai.preview.evaluation import AutoraterConfig
pairwise_relevance_prompt_template = """
    # Instruction
    …
    ### Response A
    {baseline_model_response}
    ### Response B
    {candidate_model_response}
"""
my_pairwise_metric = PairwiseMetric(
    metric="my_pairwise_metric",
    metric_prompt_template=pairwise_relevance_prompt_template,
    candidate_response_field_name = "candidate_model_response",
    baseline_response_field_name = "baseline_model_response"
)
# Define an AutoraterConfig with flip_enabled
my_autorater_config = AutoraterConfig(flip_enabled=True)
# Define an EvalTask with autorater_config
flip_enabled_eval_result = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[my_pairwise_metric],
    autorater_config=my_autorater_config,
).evaluate()
Amostragem múltipla
Ao realizar a avaliação, o modelo de juiz pode apresentar alguma aleatoriedade nas suas respostas. A amostragem adicional pode ajudar a anular a aleatoriedade inerente do modelo de juiz e gerar resultados mais consistentes.
No entanto, o aumento da amostragem também aumenta a latência para concluir o pedido. Pode atualizar o valor da contagem de amostragem usando AutoraterConfig para um número inteiro entre 1 e 32. Recomendamos que use o valor predefinido de sampling_count de 4 para equilibrar os dois fatores de aleatoriedade e latência.
Com o SDK da Vertex AI, pode especificar o número de exemplos executados para cada pedido:
from vertexai.preview.evaluation import AutoraterConfig
# Define customized sampling count in AutoraterConfig
autorater_config = AutoraterConfig(sampling_count=6)
# Run evaluation with the sampling count.
eval_result = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[METRICS],
    autorater_config=autorater_config
).evaluate()
Modelo de juiz otimizado
Se tiver bons dados de ajuste para o seu exemplo de utilização de avaliação, pode usar o SDK do Vertex AI para ajustar um modelo Gemini como modelo de juiz e usar o modelo ajustado para avaliação. Pode especificar um modelo otimizado como o modelo de juiz através de AutoraterConfig:
from vertexai.preview.evaluation import {
   AutoraterConfig,
   PairwiseMetric,
   tune_autorater,
   evaluate_autorater,
}
# Tune a model to be the judge model. The tune_autorater helper function returns an AutoraterConfig with the judge model set as the tuned model.
autorater_config: AutoRaterConfig = tune_autorater(
    base_model="gemini-2.0-flash",
    train_dataset=f"{BUCKET_URI}/train/sft_train_samples.jsonl",
    validation_dataset=f"{BUCKET_URI}/val/sft_val_samples.jsonl",
    tuned_model_display_name=tuned_model_display_name,
)
# Alternatively, you can set up the judge model with an existing tuned model endpoint
autorater_config = AutoraterConfig(autorater_model=TUNED_MODEL)
# Use the tuned judge model
eval_result = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[METRICS],
    autorater_config=autorater_config,
).evaluate()