Bewertungsmodell konfigurieren

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

Einen grundlegenden Bewertungsablauf finden Sie in der Kurzanleitung für den Gen AI Evaluation Service. Die Reihe zur erweiterten Anpassung des Bewertungsmodells umfasst die folgenden Seiten:

  1. Bewerten eines Bewertungsmodells
  2. Aufforderung zur Anpassung des Bewertungsmodells
  3. Bewertungsmodell konfigurieren (aktuelle Seite)

Übersicht

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

  • Systemanweisungen: Das Bewertungsmodell kann eine Reihe von Anweisungen verarbeiten, bevor es Bewertungsprompts verarbeitet.
  • Modellkonfigurationen bewerten:
    • Antwortumkehrung: Die Antworten des Basismodells und des Kandidatenmodells werden umgedreht, um die Voreingenommenheit des Bewertungsmodells bei der Bewertung zu verringern.
    • Mehrere Stichproben: Passen Sie die Anzahl der Aufrufe des Bewertungsmodells für die Bewertungsbewertung 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 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 anzugeben, z. B. Rollen oder Personas, Kontextinformationen sowie Stil und Ton der Erklärung. Das Bewertungsmodell gewichtet in der Regel die Bedeutung von Systemanweisungen höher als Eingabeaufforderungen.

Eine Liste der Modelle, die Systemanweisungen unterstützen, finden Sie unter Unterstützte Modelle.

Im folgenden Beispiel mit dem Vertex AI SDK wird 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()

Du kannst denselben Ansatz auch mit PairwiseMetric verwenden.

Konfiguration des Modells für die Beurteilung

Sie können das Bewertungsmodell mithilfe von autorater_config weiter anpassen:

  • Antwortumkehrung: Die Antworten des Basismodells und des Kandidatenmodells werden umgedreht, um die Voreingenommenheit des Bewertungsmodells bei der Bewertung zu verringern.

  • Mehrere Stichproben: Passen Sie die Anzahl der Aufrufe des Bewertungsmodells für die Bewertungsbewertung an, um die Konsistenz zu verbessern.

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

Antwortumkehrung

Für PairwiseMetrics nimmt der Gen AI Evaluation Service Antworten für das Referenzmodell und das Kandidatenmodell auf. Das Bewertungsmodell prüft, welche Antwort besser zu den Kriterien in der metric_prompt_template passt. Unter bestimmten Umständen kann das Bewertungsmodell jedoch eine Voreingenommenheit gegenüber dem Kontroll- oder Kandidatenmodell haben.

Um Verzerrungen bei den Bewertungsergebnissen zu reduzieren, können Sie das Umkehren von Antworten aktivieren. Dabei wird bei der Hälfte der Aufrufe des Bewertungsmodells die Antwort des Referenzmodells und des Kandidatenmodells mithilfe des Vertex AI SDK umgedreht:

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()

Mehrfachstichproben

Bei der Bewertung kann das Bewertungsmodell bei seinen Antworten etwas zufällig erscheinen. Zusätzliche Stichproben können dazu beitragen, die inhärente Zufälligkeit des Bewertungsmodells zu kompensieren und zu konsistenteren Ergebnissen zu führen.

Wenn Sie die Stichprobenerhebung jedoch erhöhen, erhöht sich auch die Latenz für die Ausführung der Anfrage. Sie können die Anzahl der Stichproben mit AutoraterConfig auf eine ganze Zahl zwischen 1 und 32 aktualisieren. Wir empfehlen, den Standardwert von sampling_count = 4 zu verwenden, um die beiden Faktoren Zufälligkeit und Latenz auszubalancieren.

Mit dem Vertex AI SDK können Sie die Anzahl der Samples 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 Modell für die Beurteilung

Wenn Sie gute Tuning-Daten für Ihren Bewertungsfall 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 optimiertes 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