Judge-Modell konfigurieren

Modellbasierte Messwerte bieten verschiedene Ansätze zur Anpassung und helfen Ihnen, Bewertungsmetriken basierend auf Ihren Kriterien und Anwendungsfällen zu generieren. Auf dieser Seite wird beschrieben, wie Sie Ihr Bewertungsmodell für Ihren idealen Anwendungsfall konfigurieren.

Den grundlegenden Bewertungsablauf finden Sie im Gen AI Evaluation Service Schnellstart. Die Reihe Erweiterte Anpassung des Bewertungsmodells umfasst die folgenden Seiten:

  1. Bewertungsmodell bewerten
  2. Bewertungsmodell konfigurieren (aktuelle Seite)

Übersicht

Sie haben die folgenden Möglichkeiten, Ihr Bewertungsmodell für eine bessere Qualität zu konfigurieren:

  • **Systemanweisungen**: Das Bewertungsmodell kann eine Reihe von Anweisungen verarbeiten, bevor es Bewertungs-Prompts verarbeitet.
  • Konfigurationen des Bewertungsmodells:
    • Antworten umkehren: Kehren Sie die Antworten des Baseline-Modells und des Kandidatenmodells um, um die Verzerrung des Bewertungsmodells während der Bewertung zu reduzieren.
    • Mehrfach-Sampling: Passen Sie die Anzahl der Aufrufe des Bewertungsmodells für den Bewertungswert an, um die Konsistenz zu verbessern.
    • Abgestimmtes Bewertungsmodell: Verwenden Sie ein abgestimmtes LLM als Bewertungsmodell.

Systemanweisungen

Gemini-Modelle können Systemanweisungen verarbeiten. Das sind Anweisungen, die sich auf die Verarbeitung von Prompts durch das Modell auswirken. Sie können Systemanweisungen verwenden, wenn Sie Inhalte aus einem Modell initialisieren oder generieren, um das Verhalten auf Produktebene anzugeben, z. B. Rollen oder Personas, Kontextinformationen sowie Stil und Ton der Erklärungen. Das Bewertungsmodell gewichtet die Bedeutung von Systemanweisungen in der Regel höher als die von Eingabe-Prompts.

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 Metrikebene 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 mit PairwiseMetric verwenden.

Konfiguration des Bewertungsmodells

Sie können das Bewertungsmodell mit autorater_config weiter anpassen:

  • Antworten umkehren: Kehren Sie die Antworten des Baseline-Modells und des Kandidatenmodells um, um die Verzerrung des Bewertungsmodells während der Bewertung zu reduzieren.

  • Mehrfach-Sampling: Passen Sie die Anzahl der Aufrufe des Bewertungsmodells für den Bewertungswert an, um die Konsistenz zu verbessern.

  • Abgestimmtes Bewertungsmodell: Verwenden Sie ein abgestimmtes LLM als Bewertungsmodell.

Antworten umkehren

Für PairwiseMetrics werden dem Gen AI Evaluation Service Antworten für das Baseline-Modell und das Kandidatenmodell übergeben. Das Bewertungsmodell bewertet, welche Antwort besser mit den Kriterien in der metric_prompt_template übereinstimmt. In bestimmten Einstellungen kann das Bewertungsmodell jedoch eine Verzerrung in Richtung des Baseline- oder Kandidatenmodells aufweisen.

Um Verzerrungen in den Bewertungsergebnissen zu reduzieren, können Sie das Umkehren von Antworten aktivieren. Dabei werden bei der Hälfte der Aufrufe des Bewertungsmodells 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ätzliches Sampling kann die inhärente Zufälligkeit des Bewertungsmodells ausgleichen und zu konsistenteren Ergebnissen führen.

Wenn Sie das Sampling erhöhen, erhöht sich jedoch auch die Latenz bis zum Abschluss 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 sampling_count von 4 zu verwenden, um die beiden Faktoren Zufälligkeit und Latenz auszugleichen.

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 Bewertungsmodell

Wenn Sie gute Abstimmungsdaten für Ihren Bewertungsanwendungsfall haben, können Sie mit dem Vertex AI SDK ein Gemini-Modell als Bewertungsmodell abstimmen und das abgestimmte Modell für die Bewertung verwenden. Sie können ein abgestimmtes Modell als Bewertungsmodell ü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()

Nächste Schritte