Bereiten Sie das Bewertungs-Dataset vor.

Für den Gen AI Evaluation Service besteht das Bewertungs-Dataset in der Regel aus der Modellantwort, die Sie auswerten möchten, den Eingabedaten, die zum Generieren der Antwort verwendet werden, und möglicherweise der Ground-Truth-Antwort.

Schema für Bewertungs-Dataset

Für typische Anwendungsfälle für modellgestützte Messwerte müssen in Ihrem Dataset die folgenden Informationen enthalten sein:

Eingabetyp Inhalt des Eingabefelds
prompt Nutzereingabe für das Gen AI-Modell oder die Gen AI-Anwendung. In einigen Fällen ist sie optional.
Antwort Ihre zu bewertende LLM-Inferenzantwort.
baseline_model_response (für paarweise Messwerte erforderlich) Die Baseline-LLM-Inferenzantwort, die zum Vergleichen der LLM-Antwort mit der paarweisen Bewertung verwendet wird.

Wenn Sie das Gen AI Evaluation-Modul des Vertex AI SDK for Python verwenden, kann der Gen AI Evaluation Service die response und baseline_model_response automatisch mit dem von Ihnen angegebenen Modell generieren.

Für andere Anwendungsfälle zur Bewertung müssen Sie möglicherweise weitere Informationen angeben:

Unterhaltungen mit mehreren Antworten oder Chats

Eingabetyp Inhalt des Eingabefelds
Geschichte Der Verlauf der Unterhaltung zwischen Nutzer und Modell vor dem aktuellen Zug.
prompt Nutzereingabe für das Gen AI-Modell oder die Gen AI-Anwendung in der aktuellen Runde.
Antwort Die zu bewertende LLM-Inferenzantwort, die auf dem bisherigen Verlauf und dem Prompt der aktuellen Runde basiert.
baseline_model_response (für paarweise Messwerte erforderlich) Die Baseline-LLM-Inferenzantwort, die zum Vergleichen der LLM-Antwort mit der paarweisen Bewertung verwendet wird. Diese basiert auf dem bisherigen Verlauf und dem Prompt der aktuellen Runde.

Berechnungsbasierte Messwerte

Ihr Dataset muss sowohl eine Antwort des Large Language Models als auch eine Referenz zum Vergleichen enthalten.

Eingabetyp Inhalt des Eingabefelds
Antwort Ihre zu bewertende LLM-Inferenzantwort.
Referenz Die Grundwahrheit, mit der Ihre LLM-Antwort verglichen werden soll.

Übersetzungsmesswerte

Ihr Dataset muss eine Antwort des Modells enthalten. Je nach Anwendungsfall müssen Sie auch eine Referenz zum Vergleichen, eine Eingabe in der Quellsprache oder eine Kombination aus beidem angeben.

Eingabetyp Inhalt des Eingabefelds
source Der Quelltext in der Originalsprache, aus der die Vorhersage übersetzt wurde.
Antwort Ihre zu bewertende LLM-Inferenzantwort.
Referenz Die Grundwahrheit, mit der Ihre LLM-Antwort verglichen werden soll. Die Sprache ist dieselbe wie die der Antwort.

Je nach Anwendungsfall können Sie den Eingabe-Nutzerprompt auch in granulare Teile wie instruction und context aufteilen und sie für die Inferenz mithilfe einer Promptvorlage zusammenfügen. Bei Bedarf können Sie auch die Referenz- oder Ground Truth-Informationen angeben:

Eingabetyp Inhalt des Eingabefelds
Anweisung Teil des Eingabeaufforderung des Nutzers. Sie bezieht sich auf die Inferenzanweisung, die an Ihr LLM gesendet wird. Beispiel: „Fasse den folgenden Text zusammen“ ist eine Anweisung.
context Nutzereingabe für das Gen AI-Modell oder die Gen AI-Anwendung in der aktuellen Runde.
Referenz Die Grundwahrheit, mit der Ihre LLM-Antwort verglichen werden soll.

Die erforderlichen Eingaben für das Bewertungs-Dataset sollten mit Ihren Messwerten übereinstimmen. Weitere Informationen zum Anpassen von Messwerten finden Sie unter Bewertungsmesswerte definieren und Bewertung ausführen. Weitere Informationen dazu, wie Sie Referenzdaten in Ihre modellbasierten Messwerte einbeziehen, finden Sie unter Vorlage für Messwertvorschläge an Eingabedaten anpassen.

Bewertungs-Dataset importieren

Sie können Ihr Dataset in den folgenden Formaten importieren:

  • In Cloud Storage gespeicherte JSONL- oder CSV-Datei

  • BigQuery-Tabelle

  • Pandas-DataFrame

Beispiele für Bewertungs-Datasets

In diesem Abschnitt finden Sie Beispiele für Datasets im Pandas DataFrame-Format. Hinweis: Hier werden nur einige Datasets als Beispiel angezeigt. Bewertungsdatasets enthalten in der Regel mindestens 100 Datenpunkte. Best Practices für die Vorbereitung eines Datasets finden Sie im Abschnitt Best Practices.

Punktbasierte, modellbasierte Messwerte

Im Folgenden finden Sie ein Beispiel für ein beispielhaftes Dataset für punktbasierte, modellgestützte Messwerte:

prompts = [
    # Example 1
    (
        "Summarize the text in one sentence: As part of a comprehensive"
        " initiative to tackle urban congestion and foster sustainable urban"
        " living, a major city has revealed ambitious plans for an extensive"
        " overhaul of its public transportation system. The project aims not"
        " only to improve the efficiency and reliability of public transit but"
        " also to reduce the city's carbon footprint and promote eco-friendly"
        " commuting options. City officials anticipate that this strategic"
        " investment will enhance accessibility for residents and visitors"
        " alike, ushering in a new era of efficient, environmentally conscious"
        " urban transportation."
    ),
    # Example 2
    (
        "Summarize the text such that a five-year-old can understand: A team of"
        " archaeologists has unearthed ancient artifacts shedding light on a"
        " previously unknown civilization. The findings challenge existing"
        " historical narratives and provide valuable insights into human"
        " history."
    ),
]

responses = [
    # Example 1
    (
        "A major city is revamping its public transportation system to fight"
        " congestion, reduce emissions, and make getting around greener and"
        " easier."
    ),
    # Example 2
    (
        "Some people who dig for old things found some very special tools and"
        " objects that tell us about people who lived a long, long time ago!"
        " What they found is like a new puzzle piece that helps us understand"
        " how people used to live."
    ),
]

eval_dataset = pd.DataFrame({
    "prompt": prompts,
    "response": responses,
})

Paarweise modellbasierte Messwerte

Das folgende Beispiel zeigt einen Open-Book-Frage-Antwort-Fall, um ein Beispieldataset für paarweise modelbasierte Messwerte zu veranschaulichen.

prompts = [
    # Example 1
    (
        "Based on the context provided, what is the hardest material? Context:"
        " Some might think that steel is the hardest material, or even"
        " titanium. However, diamond is actually the hardest material."
    ),
    # Example 2
    (
        "Based on the context provided, who directed The Godfather? Context:"
        " Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The"
        " Godfather, and the latter directed it as well."
    ),
]

responses = [
    # Example 1
    "Diamond is the hardest material. It is harder than steel or titanium.",
    # Example 2
    "Francis Ford Coppola directed The Godfather.",
]

baseline_model_responses = [
    # Example 1
    "Steel is the hardest material.",
    # Example 2
    "John Smith.",
]

eval_dataset = pd.DataFrame(
  {
    "prompt":  prompts,
    "response":  responses,
    "baseline_model_response": baseline_model_responses,
  }
)

Berechnungsbasierte Messwerte

Für berechnungsbasierte Messwerte ist häufig reference erforderlich.

eval_dataset = pd.DataFrame({
  "response": ["The Roman Senate was filled with exuberance due to Pompey's defeat in Asia."],
  "reference": ["The Roman Senate was filled with exuberance due to successes against Catiline."],
})

Messwerte zur Toolnutzung (Funktionsaufrufe)

Im folgenden Beispiel sehen Sie Eingabedaten für berechnungsbasierte Messwerte zur Tool-Nutzung:

json_responses = ["""{
    "content": "",
    "tool_calls":[{
      "name":"get_movie_info",
      "arguments": {"movie":"Mission Impossible", "time": "today 7:30PM"}
    }]
  }"""]

json_references = ["""{
    "content": "",
    "tool_calls":[{
      "name":"book_tickets",
      "arguments":{"movie":"Mission Impossible", "time": "today 7:30PM"}
      }]
  }"""]

eval_dataset = pd.DataFrame({
    "response": json_responses,
    "reference": json_references,
})

Anwendungsfälle für Übersetzungen

Das folgende Beispiel zeigt Eingabedaten für Übersetzungsstatistiken:

  source = [
      "Dem Feuer konnte Einhalt geboten werden",
      "Schulen und Kindergärten wurden eröffnet.",
  ]

  response = [
      "The fire could be stopped",
      "Schools and kindergartens were open",
  ]

  reference = [
      "They were able to control the fire.",
      "Schools and kindergartens opened",
  ]

  eval_dataset = pd.DataFrame({
      "source": source,
      "response": response,
      "reference": reference,
  })

Best Practices

Beachten Sie beim Definieren des Bewertungsdatasets die folgenden Best Practices:

  • Geben Sie Beispiele für die Arten von Eingaben an, die Ihre Modelle in der Produktion verarbeiten.
  • Ihr Dataset muss mindestens ein Bewertungsbeispiel enthalten. Wir empfehlen etwa 100 Beispiele, um qualitativ hochwertige aggregierte Messwerte und statistisch signifikante Ergebnisse zu gewährleisten. Diese Größe trägt zu einem höheren Konfidenzniveau bei den aggregierten Evaluierungsergebnissen bei, minimiert den Einfluss von Ausreißern und sorgt dafür, dass die Leistungsmesswerte die tatsächlichen Fähigkeiten des Modells in verschiedenen Szenarien widerspiegeln. Wenn mehr als 400 Beispiele zur Verfügung gestellt werden, sinkt die Verbesserungsrate bei den aggregierten Messwerten tendenziell.

Nächste Schritte