Referenz zur Bewertung von Mosaik AI Agent LLM-Richtern
Wichtig
Dieses Feature befindet sich in der Public Preview.
In diesem Artikel werden die Details aller LLM-Richter behandelt, die in die Bewertung von Mosaik AI Agent integriert sind, einschließlich der erforderlichen Eingaben und Ausgabemetriken. Sie deckt auch die von den Benutzerdefinierten Richtern produzierte Ausgabe ab.
Eine Einführung in DIE LLM-Richter finden Sie unter "Bewertung von Qualität, Kosten und Latenz durch Agent Evaluation".
Antwortrichter
Metriken der Antwortqualität bewerten, wie gut die Anwendung auf die Anforderung eines Benutzers reagiert. Diese Metriken bewerten Faktoren wie die Genauigkeit der Antwort im Vergleich zur Bodenwahrheit, ob die Antwort angesichts des abgerufenen Kontexts gut geerdet ist (oder wenn der LLM halluziniert), und ob die Antwort sicher und frei von toxischer Sprache ist.
Hat der LLM insgesamt eine genaue Antwort gegeben?
Der correctness
-LLM-Richter gibt eine binäre Auswertung und eine schriftliche Begründung dazu, ob die generierte Antwort des Agenten sachlich genau und semantisch der bereitgestellten Bodenwahrkeitsantwort ähnelt.
Eingabe erforderlich für correctness
Die Grundwahrheit expected_response
ist erforderlich.
Der Eingabeauswertungssatz muss die folgenden Spalten aufweisen:
request
expected_response
Wenn Sie das model
-Argument im Aufruf von mlflow.evaluate()
nicht verwenden, müssen Sie außerdem entweder response
oder trace
bereitstellen.
Wichtig
Die Grundwahrheit expected_response
sollte nur den minimalen Satz von Fakten enthalten, der für eine korrekte Antwort erforderlich ist. Wenn Sie eine Antwort aus einer anderen Quelle kopieren, bearbeiten Sie die Antwort, um text zu entfernen, der für eine Antwort nicht als richtig angesehen werden muss .
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.
Ausgabe für correctness
Die folgenden Metriken werden für jede Frage berechnet:
Datenfeld | Typ | Beschreibung |
---|---|---|
response/llm_judged/correctness/rating |
string |
yes oder no . yes gibt an, dass die generierte Antwort hochgenau und semantisch ähnlich wie die Grundwahrheit ist. Kleinere Unterlassungen oder Ungenauigkeiten, die immer noch die Absicht der Grundwahrheit erfassen, sind akzeptabel. no gibt an, dass die Antwort die Kriterien nicht erfüllt. |
response/llm_judged/correctness/rationale |
string |
Schriftliche Begründung von LLM für yes oder no . |
response/llm_judged/correctness/error_message |
string |
Wenn beim Berechnen dieser Metrik ein Fehler aufgetreten ist, sind die Details des Fehlers hier. Wenn kein Fehler auftritt, ist dies NULL. |
Für den gesamten Auswertungssatz wird die folgende Metrik berechnet:
Metrikname | Typ | Beschreibung |
---|---|---|
response/llm_judged/correctness/rating/percentage |
float, [0, 1] |
Prozentualer Anteil aller Fragen, bei denen die Korrektheit mit yes beurteilt wird. |
Ist die Antwort für die Anforderung relevant?
Der relevance_to_query
-LLM-Richter ermittelt, ob die Antwort für die Eingabeanforderung relevant ist.
Eingabe erforderlich für relevance_to_query
Grundwahrheit ist nicht erforderlich.
Der Eingabeauswertungssatz muss die folgende Spalte aufweisen:
request
Wenn Sie das model
-Argument im Aufruf von mlflow.evaluate()
nicht verwenden, müssen Sie außerdem entweder response
oder trace
bereitstellen.
Ausgabe für relevance_to_query
Die folgenden Metriken werden für jede Frage berechnet:
Datenfeld | Typ | Beschreibung |
---|---|---|
response/llm_judged/relevance_to_query/rating |
string |
yes wenn die Antwort für die Anfrage relevant ist, andernfalls no . |
response/llm_judged/relevance_to_query/rationale |
string |
Schriftliche Begründung von LLM für yes oder no . |
response/llm_judged/relevance_to_query/error_message |
string |
Wenn beim Berechnen dieser Metrik ein Fehler aufgetreten ist, sind die Details des Fehlers hier. Wenn kein Fehler auftritt, ist dies NULL. |
Für den gesamten Auswertungssatz wird die folgende Metrik berechnet:
Metrikname | Typ | Beschreibung |
---|---|---|
response/llm_judged/relevance_to_query/rating/percentage |
float, [0, 1] |
Prozentualer Anteil aller Fragen, bei denen relevance_to_query/rating als yes bewertet wird. |
Ist die Antwort eine Halluzination, oder ist sie im abgerufenen Kontext begründet?
Der groundedness
-LLM-Richter gibt eine binäre Auswertung und eine schriftliche Begründung zurück, ob die generierte Antwort tatsächlich mit dem abgerufenen Kontext konsistent ist.
Eingabe erforderlich für groundedness
Grundwahrheit ist nicht erforderlich.
Der Eingabeauswertungssatz muss die folgende Spalte aufweisen:
request
Wenn Sie das model
-Argument im Aufruf von mlflow.evaluate()
nicht verwenden, müssen Sie außerdem entweder trace
oder sowohl response
als auch retrieved_context[].content
bereitstellen.
Ausgabe für groundedness
Die folgenden Metriken werden für jede Frage berechnet:
Datenfeld | Typ | Beschreibung |
---|---|---|
response/llm_judged/groundedness/rating |
string |
yes wenn der abgerufene Kontext alle oder fast alle generierten Antworten unterstützt, sonst no . |
response/llm_judged/groundedness/rationale |
string |
Schriftliche Begründung von LLM für yes oder no . |
response/llm_judged/groundedness/error_message |
string |
Wenn beim Berechnen dieser Metrik ein Fehler aufgetreten ist, sind die Details des Fehlers hier. Wenn kein Fehler auftritt, ist dies NULL. |
Für den gesamten Auswertungssatz wird die folgende Metrik berechnet:
Metrikname | Typ | Beschreibung |
---|---|---|
response/llm_judged/groundedness/rating/percentage |
float, [0, 1] |
In allen Fragen, was ist der Prozentsatz, in dem groundedness/rating als yes bewertet wird. |
Gibt es schädliche Inhalte in der Agentantwort?
Der safety
-LLM-Richter gibt eine binäre Bewertung und einen schriftlichen Grund zurück, ob die generierte Antwort schädliche oder toxische Inhalte aufweist.
Eingabe erforderlich für safety
Grundwahrheit ist nicht erforderlich.
Der Eingabeauswertungssatz muss die folgende Spalte aufweisen:
request
Wenn Sie das model
-Argument im Aufruf von mlflow.evaluate()
nicht verwenden, müssen Sie außerdem entweder response
oder trace
bereitstellen.
Ausgabe für safety
Die folgenden Metriken werden für jede Frage berechnet:
Datenfeld | Typ | Beschreibung |
---|---|---|
response/llm_judged/safety/rating |
string |
yes wenn die Antwort keinen schädlichen oder toxischen Inhalt aufweist, andernfalls no . |
response/llm_judged/safety/rationale |
string |
Schriftliche Begründung von LLM für yes oder no . |
response/llm_judged/safety/error_message |
string |
Wenn beim Berechnen dieser Metrik ein Fehler aufgetreten ist, sind die Details des Fehlers hier. Wenn kein Fehler auftritt, ist dies NULL. |
Für den gesamten Auswertungssatz wird die folgende Metrik berechnet:
Metrikname | Typ | Beschreibung |
---|---|---|
response/llm_judged/safety/rating/average |
float, [0, 1] |
Prozentsatz aller Fragen, die als yes beurteilt wurden. |
Abrufrichter
Metriken zur Abrufqualität bewerten die Leistung des Retrievers bei der Suche nach den Dokumenten, die für die Eingabeanforderung relevant sind. Diese Metriken bewerten Faktoren wie: Hat der Retriever die relevanten Blöcke gefunden? Wie viele der bekannten relevanten Dokumente wurden gefunden? Waren die Dokumente, die sie gefunden haben, ausreichend, um die erwartete Antwort zu liefern?
Hat der Retriever relevante Blöcke gefunden?
Der chunk-relevance-precision
-LLM-Richter bestimmt, ob die vom Retriever zurückgegebenen Blöcke für die Eingabeanforderung relevant sind. Die Genauigkeit wird berechnet als die Anzahl der relevanten Blöcke dividiert durch die Gesamtanzahl der zurückgegebenen Blöcke. Wenn der Retriever beispielsweise vier Blöcke zurückgibt, und der LLM-Richter bestimmt, dass drei der vier zurückgegebenen Dokumente für die Anforderung relevant sind, dann ist llm_judged/chunk_relevance/precision
0,75.
Eingabe erforderlich für llm_judged/chunk_relevance
Grundwahrheit ist nicht erforderlich.
Der Eingabeauswertungssatz muss die folgende Spalte aufweisen:
request
Wenn Sie das model
-Argument im Aufruf von mlflow.evaluate()
nicht verwenden, müssen Sie außerdem entweder retrieved_context[].content
oder trace
bereitstellen.
Ausgabe für llm_judged/chunk_relevance
Die folgenden Metriken werden für jede Frage berechnet:
Datenfeld | Typ | Beschreibung |
---|---|---|
retrieval/llm_judged/chunk_relevance/ratings |
array[string] |
Für jeden Block, yes oder no , der angibt, ob der abgerufene Block für die Eingabeanforderung relevant ist. |
retrieval/llm_judged/chunk_relevance/rationales |
array[string] |
Für jeden Block wird die Begründung von LLM für die entsprechende Bewertung verwendet. |
retrieval/llm_judged/chunk_relevance/error_messages |
array[string] |
Wenn bei jedem Block ein Fehler beim Berechnen der Bewertung aufgetreten ist, sind die Details des Fehlers hier, und andere Ausgabewerte sind NULL. Wenn kein Fehler auftritt, ist dies NULL. |
retrieval/llm_judged/chunk_relevance/precision |
float, [0, 1] |
Berechnet den Prozentsatz der relevanten Blöcke zwischen allen abgerufenen Blöcken. |
Die folgende Metrik wird für den gesamten Auswertungssatz angegeben:
Metrikname | Typ | Beschreibung |
---|---|---|
retrieval/llm_judged/chunk_relevance/precision/average |
float, [0, 1] |
Durchschnittswert von chunk_relevance/precision von allen Fragen. |
Wie viele der bekannten relevanten Dokumente hat der Retriever gefunden?
document_recall
wird als Anzahl der relevanten Dokumente berechnet, die durch die Gesamtanzahl der relevanten Dokumente auf der Grundlage der Grundwahrheit geteilt werden. Nehmen wir beispielsweise an, dass zwei Dokumente auf der Grundlage der Grundwahrheit relevant sind. Wenn der Retriever eines dieser Dokumente zurückgibt, ist document_recall
0,5. Diese Metrik ist nicht von der Gesamtzahl der zurückgegebenen Dokumente betroffen.
Diese Metrik ist deterministisch und verwendet keinen LLM-Richter.
Eingabe erforderlich für document_recall
Grundwahrheit erforderlich.
Der Eingabeauswertungssatz muss die folgende Spalte aufweisen:
expected_retrieved_context[].doc_uri
Wenn Sie das model
-Argument im Aufruf von mlflow.evaluate()
nicht verwenden, müssen Sie außerdem entweder retrieved_context[].doc_uri
oder trace
bereitstellen.
Ausgabe für document_recall
Die folgende Metrik wird für jede Frage berechnet:
Datenfeld | Typ | Beschreibung |
---|---|---|
retrieval/ground_truth/document_recall |
float, [0, 1] |
Der Prozentsatz der Grundwahrheit doc_uris , die in den abgerufenen Blöcken vorhanden ist. |
Für den gesamten Auswertungssatz wird die folgende Metrik berechnet:
Metrikname | Typ | Beschreibung |
---|---|---|
retrieval/ground_truth/document_recall/average |
float, [0, 1] |
Durchschnittswert von document_recall von allen Fragen. |
Hat der Retriever Dokumente gefunden, die zur Erstellung der erwarteten Antwort ausreichen?
Der context_sufficiency
-LLM-Richter bestimmt, ob der Retriever Dokumente abgerufen hat, die ausreichen, um die erwartete Antwort zu erzeugen.
Eingabe erforderlich für context_sufficiency
Die Grundwahrheit expected_response
ist erforderlich.
Der Eingabeauswertungssatz muss die folgenden Spalten aufweisen:
request
expected_response
Wenn Sie das model
-Argument im Aufruf von mlflow.evaluate()
nicht verwenden, müssen Sie außerdem entweder retrieved_context[].content
oder trace
bereitstellen.
Ausgabe für context_sufficiency
Die folgenden Metriken werden für jede Frage berechnet:
Datenfeld | Typ | Beschreibung |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating |
string |
yes oder no . yes gibt an, dass der abgerufene Kontext ausreicht, um die erwartete Antwort zu erzeugen. no gibt an, dass der Abruf für diese Frage optimiert werden muss, damit er die fehlenden Informationen zurückgibt. In der Begründung für die Ausgabe sollte angegeben werden, welche Informationen fehlen. |
retrieval/llm_judged/context_sufficiency/rationale |
string |
Schriftliche Begründung von LLM für yes oder no . |
retrieval/llm_judged/context_sufficiency/error_message |
string |
Wenn beim Berechnen dieser Metrik ein Fehler aufgetreten ist, sind die Details des Fehlers hier. Wenn kein Fehler auftritt, ist dies NULL. |
Für den gesamten Auswertungssatz wird die folgende Metrik berechnet:
Metrikname | Typ | Beschreibung |
---|---|---|
retrieval/llm_judged/context_sufficiency/rating/percentage |
float, [0, 1] |
Prozentsatz, in dem die Kontextsuffizienz als yes beurteilt wird. |
Benutzerdefinierte Metriken für Richter
Sie können einen benutzerdefinierten Richter erstellen, um für Ihren Anwendungsfall spezifische Bewertungen durchzuführen. Informationen finden Sie unter Erstellen angepasster LLM-Richter.
Die von einem benutzerdefinierten Richter erzeugte Ausgabe hängt von seinem assessment_type
, ANSWER
oder RETRIEVAL
ab.
Benutzerdefinierter LLM-Richter für die Bewertung der ANTWORT
Ein benutzerdefinierter LLM-Richter für die Bewertung der ANTWORT wertet die Antwort für jede Frage aus.
Für jede Auswertung bereitgestellte Ausgabe:
Datenfeld | Typ | Beschreibung |
---|---|---|
response/llm_judged/{assessment_name}/rating |
string |
yes oder no . |
response/llm_judged/{assessment_name}/rationale |
string |
Schriftliche Begründung von LLM für yes oder no . |
response/llm_judged/{assessment_name}/error_message |
string |
Wenn beim Berechnen dieser Metrik ein Fehler aufgetreten ist, sind die Details des Fehlers hier. Wenn kein Fehler auftritt, ist dies NULL. |
Für den gesamten Auswertungssatz wird die folgende Metrik berechnet:
Metrikname | Typ | Beschreibung |
---|---|---|
response/llm_judged/{assessment_name}/rating/percentage |
float, [0, 1] |
Prozentualer Anteil aller Fragen, bei denen {assessment_name} als yes beurteilt wird. |
Benutzerdefinierter LLM-Richter für die Bewertung des ABRUFS
Ein benutzerdefinierter LLM-Richter für die Bewertung des ABRUFS wertet jeden abgerufenen Block in allen Fragen aus.
Für jede Auswertung bereitgestellte Ausgabe:
Datenfeld | Typ | Beschreibung |
---|---|---|
retrieval/llm_judged/{assessment_name}/ratings |
array[string] |
Auswertung des benutzerdefinierten Richters für jeden Block, yes oder no . |
retrieval/llm_judged/{assessment_name}/rationales |
array[string] |
Für jeden Block die schriftliche Begründung von LLM für yes oder no . |
retrieval/llm_judged/{assessment_name}/error_messages |
array[string] |
Wenn bei jedem Block ein Fehler aufgetreten ist, der diese Metrik beschreibt, sind die Details des Fehlers hier, und andere Werte sind NULL. Wenn kein Fehler auftritt, ist dies NULL. |
retrieval/llm_judged/{assessment_name}/precision |
float, [0, 1] |
Prozentsatz aller abgerufenen Blöcke, die der benutzerdefinierte Richter als yes ausgewertet hat. |
Für den gesamten Auswertungssatz gemeldete Metriken:
Metrikname | Typ | Beschreibung |
---|---|---|
retrieval/llm_judged/{assessment_name}/precision/average |
float, [0, 1] |
Durchschnittswert von {assessment_name}_precision von allen Fragen. |