Eingabeschema für die Agentauswertung
Wichtig
Dieses Feature befindet sich in der Public Preview.
In diesem Artikel wird das eingabeschema erläutert, das von der Agentauswertung benötigt wird, um die Qualität, Kosten und Latenz Ihrer Anwendung zu bewerten.
- Während der Entwicklung erfolgt die Auswertung offline, und ein Evaluierungssatz ist eine erforderliche Eingabe für die Agent-Auswertung.
- Wenn sich eine Anwendung in der Produktion befindet, stammen alle Eingaben zur Agent-Auswertung aus Ihren Rückschlusstabellen oder Produktionsprotokollen.
Das Eingabeschema ist sowohl für Online- als auch offline-Auswertungen identisch.
Allgemeine Informationen zu Auswertungssätzen finden Sie unter Evaluierungssätze.
Bewertungseingabeschema
Die folgende Tabelle zeigt das Eingabeschema der Agentauswertung. Die letzten beiden Spalten der Tabelle beziehen sich auf die Bereitstellung von Eingaben für den mlflow.evaluate()
Aufruf. Weitere Informationen finden Sie unter Bereitstellen von Eingaben für eine Auswertungsausführung .
Spalte | Datentyp | Beschreibung | Als Eingabeargument übergebene Anwendung | Zuvor generierte Ausgaben |
---|---|---|---|---|
request_id | Zeichenfolge | Eindeutiger Bezeichner der Anforderung. | Optional | Optional |
request | Weitere Informationen finden Sie unter Schema für Anforderungen. | Eingabe in die Anwendung, um die Frage oder Abfrage des Benutzers auszuwerten. Beispiel: {'messages': [{"role": "user", "content": "What is RAG"}]} "Was ist RAG?". Wenn request sie als Zeichenfolge angegeben wird, wird sie transformiert messages , bevor sie an Ihren Agent übergeben wird. |
Erforderlich | Erforderlich |
automatisieren | Zeichenfolge | Antwort, die von der zu bewertenden Anwendung generiert wurde. | Generiert durch Agent-Auswertung | Optional. Wenn dies nicht angegeben wird, wird sie von der Ablaufverfolgung abgeleitet. Entweder response oder trace ist erforderlich. |
expected_facts | Array von Zeichenfolgen | Eine Liste der Fakten, die in der Modellausgabe erwartet werden. Siehe expected_facts Richtlinien. | Optional | Optional |
expected_response | Zeichenfolge | Grundwahrheitsantwort (richtig) auf die eingegebene Anfrage. Siehe expected_response Richtlinien. | Optional | Optional |
expected_retrieved_context | array | Array von Objekten, die den erwarteten abgerufenen Kontext für die Anforderung enthalten (falls die Anwendung einen Abrufschritt enthält). Arrayschema | Optional | Optional |
retrieved_context | array | Abrufergebnisse, die vom Retriever in der zu bewertenden Anwendung generiert werden. Wenn sich mehrere Abrufschritte in der Anwendung befinden, ist dies das Abrufergebnis aus dem letzten Schritt (chronologisch in der Ablaufverfolgung). Arrayschema | Generiert durch Agent-Auswertung | Optional. Wenn dies nicht angegeben wird, wird sie von der bereitgestellten Ablaufverfolgung abgeleitet. |
Ablaufverfolgung | JSON-Zeichenfolge der MLflow-Ablaufverfolgung | MLflow Trace der Ausführung der Anwendung für die entsprechende Anforderung. | Generiert durch Agent-Auswertung | Optional. Entweder response oder trace ist erforderlich. |
expected_facts
Richtlinien
Das expected_facts
Feld gibt die Liste der Fakten an, die in jeder korrekten Modellantwort für die spezifische Eingabeanforderung angezeigt werden sollen. Das heißt, eine Modellantwort gilt als richtig, wenn sie diese Fakten enthält, unabhängig davon, wie die Antwort formuliert wird.
Wenn Sie nur die erforderlichen Fakten einschließen und fakten, die in der Antwort nicht unbedingt erforderlich sind, können Agentenauswertung ein robusteres Signal für die Ausgabequalität bereitstellen.
Sie können höchstens eine von expected_facts
und expected_response
. Wenn Sie beide angeben, wird ein Fehler gemeldet. Databricks empfiehlt die Verwendung expected_facts
, da es sich um eine spezifischere Richtlinie handelt, die agent Evaluation hilft, die Qualität der generierten Antworten effektiver zu beurteilen.
expected_response
Richtlinien
Das expected_response
Feld enthält eine vollständig gebildete Antwort, die einen Verweis für die richtigen Modellantworten darstellt. Das heißt, eine Modellantwort gilt als richtig, wenn sie mit dem Informationsinhalt expected_response
übereinstimmt. Im Gegensatz dazu werden nur die Fakten aufgelistet, expected_facts
die in einer korrekten Antwort angezeigt werden müssen und keine vollständig gebildete Referenzantwort ist.
Ähnlich wie expected_facts
, expected_response
sollte nur die minimale Menge von Fakten enthalten, die für eine korrekte Antwort erforderlich sind. Durch die Einbeziehung nur der erforderlichen Informationen und das Weglassen von Informationen, die in der Antwort nicht unbedingt erforderlich sind, kann die Agentenbewertung ein zuverlässigeres Signal für die Ausgabequalität liefern.
Sie können höchstens eine von expected_facts
und expected_response
. Wenn Sie beide angeben, wird ein Fehler gemeldet. Databricks empfiehlt die Verwendung expected_facts
, da es sich um eine spezifischere Richtlinie handelt, die agent Evaluation hilft, die Qualität der generierten Antworten effektiver zu beurteilen.
Schema für Anforderungen
Das Anforderungsschema kann Folgendes sein:
- Das OpenAI-Chatabschlussschema. Das OpenAI-Chatabschlussschema muss ein Array von Objekten als
messages
Parameter aufweisen. Dasmessages
Feld kann die vollständige Unterhaltung codieren. - Wenn der Agent das OpenAI-Chatabschlussschema unterstützt, können Sie eine einfache Zeichenfolge übergeben. Dieses Format unterstützt nur Unterhaltungen mit nur einer Wendung. Einfache Zeichenfolgen werden in das
messages
Format konvertiert, bevor"role": "user"
sie an Ihren Agent übergeben werden. Beispielsweise wird eine einfache Zeichenfolge vor der Übergabe an Ihren Agent in{"messages": [{"role": "user", "content": "What is MLflow?"}]}
eine einfache Zeichenfolge"What is MLflow?"
konvertiert. SplitChatMessagesRequest
. Einquery
-Zeichenfolgenfeld für die letzte Anforderung und ein optionaleshistory
-Feld, das vorherige Gesprächswendungen codiert.
Verwenden Sie für Chatanwendungen die zweite oder dritte der obigen Optionen.
Das folgende Beispiel zeigt alle drei Optionen in derselben Spalte request
des Auswertungsdatasets:
import pandas as pd
data = {
"request": [
# Plain string. Plain strings are transformed to the `messages` format before being passed to your agent.
"What is the difference between reduceByKey and groupByKey in Spark?",
# OpenAI chat completion schema. Use the `messages` field for a single- or multi-turn chat.
{
"messages": [
{
"role": "user",
"content": "How can you minimize data shuffling in Spark?"
}
]
},
# SplitChatMessagesRequest. Use the `query` and `history` fields for a single- or multi-turn chat.
{
"query": "Explain broadcast variables in Spark. How do they enhance performance?",
"history": [
{
"role": "user",
"content": "What are broadcast variables?"
},
{
"role": "assistant",
"content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
}
]
}
],
"expected_response": [
"expected response for first question",
"expected response for second question",
"expected response for third question"
]
}
eval_dataset = pd.DataFrame(data)
Schema für Arrays in Auswertungseingaben
Das Schema der Arrays expected_retrieved_context
und retrieved_context
wird in der folgenden Tabelle angezeigt:
Spalte | Datentyp | Beschreibung | Als Eingabeargument übergebene Anwendung | Zuvor generierte Ausgaben |
---|---|---|---|---|
content | Zeichenfolge | Inhalt des abgerufenen Kontexts. Zeichenfolge in beliebigem Format, z. B. HTML, Nur-Text oder Markdown. | Optional | Optional |
doc_uri | Zeichenfolge | Eindeutiger Bezeichner (URI) des übergeordneten Dokuments, aus dem der Block stammt. | Erforderlich | Erforderlich |
Berechnete Metriken
Die Spalten in der folgenden Tabelle geben die in der Eingabe enthaltenen Daten an und ✓
geben an, dass die Metrik unterstützt wird, wenn diese Daten bereitgestellt werden.
Ausführliche Informationen dazu, was diese Metriken messen, finden Sie unter "Bewertung von Qualität, Kosten und Latenz durch Agent Evaluation".
Berechnete Metriken | request |
request und expected_response |
request , expected_response und expected_retrieved_context |
request und expected_retrieved_context |
---|---|---|---|---|
response/llm_judged/relevance_to_query/rating |
✓ | ✓ | ✓ | |
response/llm_judged/safety/rating |
✓ | ✓ | ✓ | |
response/llm_judged/groundedness/rating |
✓ | ✓ | ✓ | |
retrieval/llm_judged/chunk_relevance_precision |
✓ | ✓ | ✓ | |
agent/total_token_count |
✓ | ✓ | ✓ | |
agent/input_token_count |
✓ | ✓ | ✓ | |
agent/output_token_count |
✓ | ✓ | ✓ | |
response/llm_judged/correctness/rating |
✓ | ✓ | ||
retrieval/llm_judged/context_sufficiency/rating |
✓ | ✓ | ||
retrieval/ground_truth/document_recall |
✓ | ✓ |