Les métriques basées sur un modèle offrent différentes approches de personnalisation et vous aident à générer des métriques d'évaluation en fonction de vos critères et de vos cas d'utilisation. Cette page explique comment configurer votre modèle d'évaluation pour votre cas d'utilisation idéal.
Pour connaître le workflow d'évaluation de base, consultez le guide de démarrage rapide de Gen AI Evaluation Service. La série de personnalisations avancées du modèle d'évaluation comprend les pages suivantes:
- Évaluer un modèle d'évaluation
- Invite à personnaliser le modèle d'évaluation
- Configurer un modèle d'évaluation (page actuelle)
Présentation
Vous disposez des options suivantes pour configurer votre modèle d'évaluation afin d'améliorer la qualité:
- Instructions système: le modèle d'évaluation peut traiter un ensemble d'instructions avant de traiter les requêtes d'évaluation.
- Évaluer les configurations de modèle :
- Inversion des réponses: inversez les réponses du modèle de référence et du modèle candidat pour réduire le biais du modèle d'évaluation lors de l'évaluation.
- Multi-échantillonnage: ajustez le nombre d'appels du modèle d'évaluation pour le score d'évaluation afin d'améliorer la cohérence.
- Modèle d'évaluation ajusté: utilisez un LLM ajusté comme modèle d'évaluation.
Instructions système
Les modèles Gemini peuvent accepter des instructions système, qui sont un ensemble d'instructions qui ont une incidence sur la façon dont le modèle traite les requêtes. Vous pouvez utiliser des instructions système lors de l'initialisation ou de la génération de contenu à partir d'un modèle pour spécifier un comportement au niveau du produit, comme des rôles ou des personas, des informations contextuelles, ainsi que le style et le ton des explications. Le modèle d'évaluation accorde généralement plus d'importance aux instructions système qu'aux invites d'entrée.
Pour obtenir la liste des modèles compatibles avec les instructions système, consultez la section Modèles compatibles.
L'exemple suivant utilisant le SDK Vertex AI ajoute system_instruction
au niveau de la métrique pour 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()
Vous pouvez utiliser la même approche avec PairwiseMetric
.
Configuration du modèle d'évaluation
Vous pouvez personnaliser davantage le modèle d'évaluation via autorater_config
:
Inversion des réponses: inversez les réponses du modèle de référence et du modèle candidat pour réduire le biais du modèle d'évaluation lors de l'évaluation.
Multi-échantillonnage: ajustez le nombre d'appels du modèle d'évaluation pour le score d'évaluation afin d'améliorer la cohérence.
Modèle d'évaluation ajusté: utilisez un LLM ajusté comme modèle d'évaluation.
Inversion de réponse
Pour PairwiseMetrics
, le service d'évaluation de l'IA générative reçoit les réponses du modèle de référence et du modèle candidat. Le modèle d'évaluation évalue la réponse qui correspond le mieux aux critères de l'metric_prompt_template
. Toutefois, le modèle d'évaluation peut être biaisé en faveur du modèle de référence ou du modèle candidat dans certains paramètres.
Pour réduire les biais dans les résultats d'évaluation, vous pouvez activer le basculement des réponses. Dans ce cas, la moitié des appels au modèle d'évaluation inversent le modèle de référence et la réponse du modèle candidat à l'aide du SDK 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()
Multi-échantillonnage
Lors de l'évaluation, le modèle d'évaluation peut présenter un certain caractère aléatoire dans ses réponses. Un échantillonnage supplémentaire peut aider à annuler le caractère aléatoire inhérent du modèle d'évaluation et à obtenir des résultats plus cohérents.
Toutefois, une augmentation de l'échantillonnage entraîne également une augmentation de la latence pour traiter la requête. Vous pouvez définir la valeur du nombre d'échantillonnage à l'aide de AutoraterConfig
sur un entier compris entre 1 et 32. Nous vous recommandons d'utiliser la valeur par défaut de sampling_count
, soit 4, pour équilibrer les deux facteurs de hasard et de latence.
À l'aide du SDK Vertex AI, vous pouvez spécifier le nombre d'échantillons exécutés pour chaque requête:
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()
Modèle d'évaluation réglé
Si vous disposez de bonnes données de réglage pour votre cas d'utilisation d'évaluation, vous pouvez utiliser le SDK Vertex AI pour régler un modèle Gemini en tant que modèle d'évaluation et utiliser le modèle réglé pour l'évaluation. Vous pouvez spécifier un modèle affiné comme modèle d'évaluation via 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()