Freigeben über


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.