As métricas baseadas em modelo oferecem várias abordagens para personalizar e ajudar a gerar métricas de avaliação com base nos seus critérios e casos de uso. Nesta página, descrevemos como configurar o modelo juiz para o caso de uso ideal.
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 juiz inclui as seguintes páginas:
- Avaliar um modelo juiz
- Solicitação para personalização do modelo juiz
- Configurar um modelo juiz (página atual)
Visão geral
Você tem as seguintes opções para configurar o modelo juiz e melhorar a qualidade:
- Instruções do sistema: o modelo juiz pode processar um conjunto de instruções antes de processar comandos de avaliação.
- Configurações do modelo juiz:
- Inversão de respostas: inverta as respostas do modelo de referência e do modelo candidato para reduzir o viés do modelo juiz durante a avaliação.
- Amostragem múltipla: ajuste o número de vezes que o modelo juiz é chamado para a pontuação de avaliação para melhorar a consistência.
- **Modelo juiz ajustado**: use um LLM ajustado como modelo juiz.
Instruções do sistema
Os modelos do Gemini podem receber instruções do sistema, que são um conjunto de instruções que afetam a forma como o modelo processa comandos. É possível usar instruções do sistema ao inicializar ou gerar conteúdo de um modelo para especificar o comportamento no nível do produto, como papéis ou personas, informações contextuais e estilo e tom de explicação. O modelo juiz normalmente considera a importância das instruções do sistema maior do que os comandos de entrada.
Para uma lista de modelos que oferecem suporte a instruções do sistema, consulte Modelos com suporte.
O exemplo a seguir usando o SDK da Vertex AI adiciona system_instruction no 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()
É possível usar a mesma abordagem com PairwiseMetric.
Configuração do modelo juiz
Você pode personalizar ainda mais o modelo juiz usando autorater_config:
Inversão de respostas: inverta as respostas do modelo de referência e do modelo candidato para reduzir o viés do modelo juiz durante a avaliação.
Amostragem múltipla: ajuste o número de vezes que o modelo juiz é chamado para a pontuação de avaliação para melhorar a consistência.
**Modelo juiz ajustado**: use um LLM ajustado como modelo juiz.
Inversão de respostas
Para PairwiseMetrics, o serviço de avaliação de IA generativa recebe respostas para o modelo de referência e o modelo candidato. O modelo juiz avalia qual resposta está mais alinhada aos critérios no metric_prompt_template. No entanto, o modelo juiz pode ter um viés em relação ao modelo de referência ou candidato em determinadas configurações.
Para reduzir o viés nos resultados da avaliação, ative a inversão de respostas, em que metade das chamadas para o modelo juiz inverte a resposta do modelo de referência e do modelo candidato usando o SDK da Vertex AI:
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 juiz pode mostrar alguma aleatoriedade nas respostas. A amostragem adicional pode ajudar a negar a aleatoriedade inerente do modelo juiz e levar a resultados mais consistentes.
No entanto, o aumento da amostragem também aumenta a latência para concluir a solicitação. É possível atualizar o valor da contagem de amostragem usando AutoraterConfig para um número inteiro entre 1 e 32. Recomendamos usar o valor sampling_count padrão de 4 para equilibrar os dois fatores de aleatoriedade e latência.
Usando o SDK da Vertex AI, é possível especificar o número de amostras executadas para cada solicitação:
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 juiz ajustado
Se você tiver bons dados de ajuste para o caso de uso de avaliação, use o SDK da Vertex AI para ajustar um modelo do Gemini como modelo juiz e usar o modelo ajustado para avaliação. É possível especificar um modelo ajustado como modelo juiz usando 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()