Modellbasierte Messwerte bieten verschiedene Ansätze, um Bewertungsmetriken basierend auf Ihren Kriterien und Anwendungsfällen anzupassen und zu generieren. Auf dieser Seite wird beschrieben, wie Sie Ihr Judge-Modell für Ihren idealen Anwendungsfall konfigurieren.
Informationen zum grundlegenden Bewertungsablauf finden Sie in der Kurzanleitung für den Gen AI Evaluation Service. Die Reihe zur erweiterten Anpassung von Judge-Modellen umfasst die folgenden Seiten:
- Judge-Modell bewerten
- Aufforderung zur Anpassung des Judge-Modells
- Judge-Modell konfigurieren (aktuelle Seite)
Übersicht
Sie haben folgende Möglichkeiten, Ihr Judge-Modell für eine bessere Qualität zu konfigurieren:
- Systemanweisungen: Das Judge-Modell kann eine Reihe von Anweisungen verarbeiten, bevor es Bewertungs-Prompts verarbeitet.
- Konfigurationen von Judge-Modellen bewerten:
- Antworten umkehren: Die Antworten des Baseline-Modells und des Kandidatenmodells werden umgekehrt, um den Bias des Bewertungsmodells während der Bewertung zu verringern.
- Mehrfache Stichprobenerhebung: Passen Sie die Anzahl der Aufrufe des Judge-Modells für die Bewertung an, um die Konsistenz zu verbessern.
- Abgestimmtes Judge-Modell: Verwenden Sie ein abgestimmtes LLM als Judge-Modell.
Systemanweisungen
Gemini-Modelle können Systemanweisungen entgegennehmen. Das sind Anweisungen, die sich darauf auswirken, wie das Modell Prompts verarbeitet. Sie können Systemanweisungen verwenden, wenn Sie Inhalte aus einem Modell initialisieren oder generieren, um das Verhalten auf Produktebene festzulegen, z. B. Rollen oder Identitäten, Kontextinformationen sowie Stil und Ton der Erklärungen. Das Bewertungsmodell gewichtet Systemanweisungen in der Regel stärker als Eingabeaufforderungen.
Eine Liste der Modelle, die Systemanweisungen unterstützen, finden Sie unter Unterstützte Modelle.
Im folgenden Beispiel wird mit dem Vertex AI SDK system_instruction
auf Messwertebene für PointwiseMetric
hinzugefügt:
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()
Sie können denselben Ansatz auch für PairwiseMetric
verwenden.
Konfiguration des Judge-Modells
Sie können das Judge-Modell mit autorater_config
weiter anpassen:
Antworten umkehren: Die Antworten des Baseline-Modells und des Kandidatenmodells werden umgekehrt, um den Bias des Bewertungsmodells während der Bewertung zu verringern.
Mehrfache Stichprobenerhebung: Passen Sie die Anzahl der Aufrufe des Judge-Modells für die Bewertung an, um die Konsistenz zu verbessern.
Abgestimmtes Judge-Modell: Verwenden Sie ein abgestimmtes LLM als Judge-Modell.
Antworten umkehren
Für PairwiseMetrics
werden die Antworten für das Baseline-Modell und das Kandidatenmodell vom Gen AI Evaluation Service verwendet. Das Bewertungsmodell bewertet, welche Antwort besser mit den Kriterien in der metric_prompt_template
übereinstimmt. Das Judge-Modell kann jedoch in bestimmten Einstellungen eine Tendenz zum Baseline- oder Kandidatenmodell aufweisen.
Um Bias in den Bewertungsergebnissen zu reduzieren, können Sie das Umkehren von Antworten aktivieren. Dabei werden bei der Hälfte der Aufrufe des Judge-Modells die Antworten des Baseline-Modells und des Kandidatenmodells mit dem Vertex AI SDK umgekehrt:
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()
Mehrfach-Sampling
Bei der Bewertung kann das Bewertungsmodell in seinen Antworten eine gewisse Zufälligkeit aufweisen. Zusätzliche Stichproben können die inhärente Zufälligkeit des Judge-Modells ausgleichen und zu konsistenteren Ergebnissen führen.
Wenn Sie die Anzahl der Stichproben erhöhen, verlängert sich jedoch auch die Latenz für die Verarbeitung der Anfrage. Sie können den Wert für die Anzahl der Stichproben mit AutoraterConfig
auf eine Ganzzahl zwischen 1 und 32 aktualisieren. Wir empfehlen, den Standardwert 4 für sampling_count
zu verwenden, um ein ausgewogenes Verhältnis zwischen Zufälligkeit und Latenz zu erzielen.
Mit dem Vertex AI SDK können Sie die Anzahl der Stichproben angeben, die für jede Anfrage ausgeführt werden:
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()
Abgestimmtes Richtermodell
Wenn Sie gute Abstimmungsdaten für Ihren Bewertungsanwendungsfall haben, können Sie das Vertex AI SDK verwenden, um ein Gemini-Modell als Judge-Modell abzustimmen und das abgestimmte Modell für die Bewertung zu verwenden. Sie können ein abgestimmtes Modell als Judge-Modell über AutoraterConfig
angeben:
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()