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 es 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-Bewertungsmodul des Vertex AI SDK für Python verwenden, kann der Gen AI-Bewertungsdienst automatisch response
und baseline_model_response
mit dem von Ihnen angegebenen Modell generieren.
Für andere Anwendungsfälle der Bewertung müssen Sie möglicherweise weitere Informationen angeben:
Unterhaltungen mit mehreren Antworten oder Chats
Eingabetyp | Inhalt des Eingabefelds |
---|---|
Geschichte | Der bisherige Verlauf der Unterhaltung zwischen Nutzer und Modell vor dem aktuellen Beitrag. |
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 Promot der aktuellen Runde. |
Berechnungsbasierte Messwerte
Ihr Dataset muss sowohl die 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. |
Je nach Anwendungsfall können Sie den Eingabeprompt auch in detaillierte Teile wie instruction
und context
unterteilen und sie mithilfe einer Promptvorlage für die Inferenz zusammenstellen. Sie können bei Bedarf auch Referenz- oder Ground-Truth-Informationen angeben:
Eingabetyp | Inhalt des Eingabefelds |
---|---|
Anweisung | Teil der Eingabeaufforderung für Nutzer. Sie bezieht sich auf die Inferenzanweisung, die an Ihr LLM gesendet wird. Beispiel: „Fassen Sie 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 Ihrer Messwerte 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 reference
oft 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)
Das folgende Beispiel zeigt Eingabedaten für berechnungsbasierte Messwerte zur Toolnutzung:
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,
})
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 Produktionsumgebung 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 der aggregierten Bewertungsergebnisse 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
Probieren Sie ein Bewertungs-Beispielnotebook aus.