Bereiten Sie das Bewertungs-Dataset vor.

Auf dieser Seite wird beschrieben, wie Sie Ihren Datensatz für den Gen AI Evaluation Service vorbereiten.

Übersicht

Der Bewertungsdienst basierend auf generativer KI erkennt und verarbeitet automatisch mehrere gängige Datenformate. Das bedeutet, dass Sie Ihre Daten oft unverändert verwenden können, ohne manuelle Umrechnungen vornehmen zu müssen.

Welche Felder Sie in Ihrem Dataset angeben müssen, hängt von Ihrem Ziel ab:

Ziel Erforderliche Daten SDK-Workflow
Neue Antworten generieren und dann bewerten prompt run_inference()evaluate()
Vorhandene Antworten bewerten prompt und response evaluate()

Bei der Ausführung von client.evals.evaluate() sucht der Gen AI Evaluation Service automatisch nach den folgenden gängigen Feldern in Ihrem Dataset:

  • prompt: (Erforderlich) Die Eingabe für das Modell, das Sie bewerten möchten. Die besten Ergebnisse erzielen Sie, wenn Sie Beispiel-Prompts angeben, die die Arten von Eingaben darstellen, die Ihre Modelle in der Produktion verarbeiten.

  • response: (Erforderlich) Die Ausgabe, die vom Modell oder der Anwendung generiert wird, die bewertet wird.

  • reference: (Optional) Die Grundwahrheit oder „goldene“ Antwort, mit der Sie die Antwort des Modells vergleichen können. Dieses Feld ist oft für berechnungsbasierte Messwerte wie bleu und rouge erforderlich.

  • conversation_history: (Optional) Eine Liste der vorherigen Züge in einer Multi-Turn-Unterhaltung. Der Gen AI Evaluation Service extrahiert dieses Feld automatisch aus unterstützten Formaten. Weitere Informationen finden Sie unter Unterhaltungen mit mehreren Zügen verarbeiten.

Unterstützte Datenformate

Der Gen AI Evaluation Service unterstützt die folgenden Formate:

Pandas-DataFrame

Für einfache Auswertungen können Sie ein pandas.DataFrame verwenden. Der Gen AI Evaluation Service sucht nach gängigen Spaltennamen wie prompt, response und reference. Dieses Format ist vollständig abwärtskompatibel.

import pandas as pd

# Example DataFrame with prompts and ground truth references
prompts_df = pd.DataFrame({
    "prompt": [
        "What is the capital of France?",
        "Who wrote 'Hamlet'?",
    ],
    "reference": [
        "Paris",
        "William Shakespeare",
    ]
})

# You can use this DataFrame directly with run_inference or evaluate
eval_dataset = client.evals.run_inference(model="gemini-2.5-flash", src=prompts_df)
eval_result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[types.PrebuiltMetric.GENERAL_QUALITY]
)
eval_result.show()

Gemini-Batchvorhersageformat

Sie können die Ausgabe eines Vertex AI-Batchvorhersagejobs direkt verwenden. Dabei handelt es sich in der Regel um JSONL-Dateien, die in Cloud Storage gespeichert sind und in denen jede Zeile ein Anfrage- und ein Antwortobjekt enthält. Der Gen AI Evaluation Service parst diese Struktur automatisch, um die Integration mit anderen Vertex AI-Diensten zu ermöglichen.

Das Folgende ist ein Beispiel für eine einzelne Zeile in einer JSONL-Datei:

{"request": {"contents": [{"role": "user", "parts": [{"text": "Why is the sky blue?"}]}]}, "response": {"candidates": [{"content": {"role": "model", "parts": [{"text": "The sky appears blue to the human eye as a result of a phenomenon known as Rayleigh scattering."}]}}]}}

Sie können dann vorab generierte Antworten aus einem Batchjob direkt bewerten:

# Cloud Storage path to your batch prediction output file
batch_job_output_uri = "gs://path/to/your/batch_output.jsonl"

# Evaluate the pre-generated responses directly
eval_result = client.evals.evaluate(
    dataset=batch_job_output_uri,
    metrics=[types.PrebuiltMetric.GENERAL_QUALITY]
)
eval_result.show()

OpenAI-Format für Chat Completion

Für die Bewertung oder den Vergleich mit Drittanbietermodellen wie OpenAI und Anthropic unterstützt der Gen AI Evaluation Service das OpenAI Chat Completion-Format. Sie können ein Dataset bereitstellen, in dem jede Zeile ein JSON-Objekt ist, das wie eine OpenAI API-Anfrage strukturiert ist. Der Gen AI Evaluation Service erkennt dieses Format automatisch.

Hier ein Beispiel für eine einzelne Zeile in diesem Format:

{"request": {"messages": [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What's the capital of France?"}], "model": "gpt-4o"}}

Sie können diese Daten verwenden, um Antworten von einem Drittanbietermodell zu generieren und die Antworten zu bewerten:

# Ensure your third-party API key is set
# e.g., os.environ['OPENAI_API_KEY'] = 'Your API Key'

openai_request_uri = "gs://path/to/your/openai_requests.jsonl"

# Generate responses using a LiteLLM-supported model string
openai_responses = client.evals.run_inference(
    model="gpt-4o",  # LiteLLM compatible model string
    src=openai_request_uri,
)

# The resulting openai_responses object can then be evaluated
eval_result = client.evals.evaluate(
    dataset=openai_responses,
    metrics=[types.PrebuiltMetric.GENERAL_QUALITY]
)
eval_result.show()

Unterhaltungen über mehrere Themen verarbeiten

Der Bewertungsdienst basierend auf generativer KI parst automatisch Daten aus mehrfachen Konversationen in unterstützten Formaten. Wenn Ihre Eingabedaten einen Verlauf von Unterhaltungen enthalten (z. B. im Feld request.contents im Gemini-Format oder request.messages im OpenAI-Format), identifiziert der Gen AI Evaluation Service die vorherigen Turns und verarbeitet sie als conversation_history.

Das bedeutet, dass Sie den aktuellen Prompt nicht manuell von der vorherigen Unterhaltung trennen müssen, da die Bewertungsstatistiken den Unterhaltungsverlauf verwenden können, um den Kontext der Antwort des Modells zu verstehen.

Hier ein Beispiel für eine Multi-Turn-Unterhaltung im Gemini-Format:

{
  "request": {
    "contents": [
      {"role": "user", "parts": [{"text": "I'm planning a trip to Paris."}]},
      {"role": "model", "parts": [{"text": "That sounds wonderful! What time of year are you going?"}]},
      {"role": "user", "parts": [{"text": "I'm thinking next spring. What are some must-see sights?"}]}
    ]
  },
  "response": {
    "candidates": [
      {"content": {"role": "model", "parts": [{"text": "For spring in Paris, you should definitely visit the Eiffel Tower, the Louvre Museum, and wander through Montmartre."}]}}
    ]
  }
}

Die Multi-Turn Conversation wird automatisch so analysiert:

  • prompt: Die letzte Nutzernachricht wird als aktueller Prompt identifiziert ({"role": "user", "parts": [{"text": "I'm thinking next spring. What are some must-see sights?"}]}).

  • conversation_history: Die vorherigen Nachrichten werden automatisch extrahiert und als Unterhaltungsverlauf ([{"role": "user", "parts": [{"text": "I'm planning a trip to Paris."}]}, {"role": "model", "parts": [{"text": "That sounds wonderful! What time of year are you going?"}]}]) zur Verfügung gestellt.

  • response: Die Antwort des Modells stammt aus dem Feld response ({"role": "model", "parts": [{"text": "For spring in Paris..."}]}).

Nächste Schritte