Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Databricks empfiehlt die Verwendung von MLflow 3 für die Auswertung und Überwachung von GenAI-Apps. Diese Seite beschreibt die MLflow 2-Agent-Auswertung.
- Eine Einführung in die Auswertung und Überwachung von MLflow 3 finden Sie unter Evaluieren und Überwachen von KI-Agents.
- Informationen zum Migrieren zu MLflow 3 finden Sie unter Migrieren zu MLflow 3 aus der Agentauswertung.
- Informationen zu MLflow 3 zu diesem Thema finden Sie unter Auswerten und Überwachen von KI-Agents.
Dieser Artikel gibt einen Überblick über die Arbeit mit Mosaik AI Agent Evaluation basierend auf MLflow 2.
Wie verwende ich die Agent Evaluation?
Der folgende Code zeigt, wie Sie die Agentenauswertung für zuvor generierte Ausgaben aufrufen und testen. Sie gibt einen Datenrahmen mit Auswertungsergebnissen zurück, die von LLM-Richtern berechnet werden, die Teil von Agent Evaluation sind. Siehe Beispielnotizbücher für ein Schnellstartnotizbuch mit ähnlichem Code, den Sie in Ihrem Azure Databricks-Arbeitsbereich ausführen können.
Sie können Folgendes kopieren und in Ihr vorhandenes Azure Databricks-Notizbuch einfügen:
%pip install mlflow databricks-agents
dbutils.library.restartPython()
import mlflow
import pandas as pd
examples = {
"request": [
{
# Recommended `messages` format
"messages": [{
"role": "user",
"content": "Spark is a data analytics framework."
}],
},
# SplitChatMessagesRequest format
{
"query": "How do I convert a Spark DataFrame to Pandas?",
"history": [
{"role": "user", "content": "What is Spark?"},
{"role": "assistant", "content": "Spark is a data processing engine."},
],
}
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
],
"response": [
"Spark is a data analytics framework.",
"This is not possible as Spark is not a panda.",
],
"retrieved_context": [ # Optional, needed for judging groundedness.
[{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
[{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
],
"expected_response": [ # Optional, needed for judging correctness.
"Spark is a data analytics framework.",
"To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
]
}
global_guidelines = {
"english": ["The response must be in English"],
"clarity": ["The response must be clear, coherent, and concise"],
}
result = mlflow.evaluate(
data=pd.DataFrame(examples), # Your evaluation set
# model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
model_type="databricks-agent", # Enable Mosaic AI Agent Evaluation
evaluator_config={
"databricks-agent": {"global_guidelines": global_guidelines}
}
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
Eingaben und Ausgaben von Agent Evaluation
Eingaben
Weitere Informationen zu den erwarteten Eingaben für die Agentenbewertung, einschließlich Feldnamen und Datentypen, finden Sie im Eingabemodell. Einige der Felder sind die folgenden:
-
Abfrage des Benutzers (
request): Eingabe an den Agent (Frage oder Abfrage des Benutzers). Zum Beispiel: „Was ist RAG?“. -
Antwort des Agents (
response): Vom Agent generierte Antwort. Beispiel: „Retrieval Augmented Generation ist…“ -
Erwartete Antwort (
expected_response): (Optional) Eine richtige (korrekte) Antwort. -
MLflow-Ablaufverfolgung (
trace): (Optional) Die MLflow-Ablaufverfolgungdes Agenten, aus der die Agentenbewertung Zwischenoutputs wie den abgerufenen Kontext oder Toolaufrufe extrahiert. Alternativ können Sie diese Zwischenergebnisse direkt bereitstellen. -
Richtlinien (
guidelines): (Optional) Eine Liste von Richtlinien oder benannten Richtlinien, die die Ausgabe des Modells einhalten soll.
Ausgaben
Basierend auf diesen Eingaben erzeugt Agent Evaluation zwei Arten von Ausgaben:
-
Auswertungsergebnisse (pro Zeile): Für jede Zeile, die als Eingabe bereitgestellt wird, erzeugt Die Agentauswertung eine entsprechende Ausgabezeile, die eine detaillierte Bewertung der Qualität, Kosten und Latenz Ihres Agents enthält.
- LLM-Richter überprüfen verschiedene Aspekte der Qualität, wie Korrektheit oder Fundiertheit, und geben eine Ja/Nein-Bewertung sowie eine schriftliche Begründung für diese Bewertung ab. Ausführliche Informationen finden Sie unter Wie Qualität, Kosten und Latenz von der Agentenauswertung (MLflow 2) bewertet werden.
- Die Bewertungen der LLM-Bewertungsrichter werden kombiniert, um eine Gesamtpunktzahl zu erstellen, die angibt, ob die Zeile "besteht" (von hoher Qualität ist) oder "fehlschlägt" (ein Qualitätsproblem hat).
- Für alle fehlerhaften Zeilen wird eine Grundursache identifiziert. Jede Grundursache entspricht der Bewertung eines bestimmten LLM-Richters, sodass Sie die Rationale des Richters verwenden können, um potenzielle Korrekturen zu identifizieren.
- Kosten und Latenz werden aus der MLflow-Aufzeichnung extrahiert. Weitere Informationen finden Sie unter Wie Kosten und Latenz bewertet werden.
- Metriken (Aggregatwerte): Aggregierte Bewertungen, die die Qualität, Kosten und Latenz Ihres Agenten über alle Eingabereihen zusammenfassen. Diese umfassen Metriken wie den Prozentsatz der korrekten Antworten, die durchschnittliche Tokenanzahl, die durchschnittliche Latenz und mehr. Weitere Informationen finden Sie unter Wie Kosten und Latenz bewertet werden und Wie Metriken auf der Ebene eines MLflow-Laufs für Qualität, Kosten und Latenz aggregiert werden.
Entwicklung (Offline-Auswertung) und Produktion (Online-Überwachung)
Agent Evaluation ist so konzipiert, dass sie zwischen Ihrer Entwicklungsumgebung (offline) und Produktionsumgebungen (online) konsistent ist. Dieses Design ermöglicht einen nahtlosen Übergang von der Entwicklung zur Produktion, sodass Sie hochwertige agentische Anwendungen schnell iterieren, evaluieren, bereitstellen und überwachen können.
Der Hauptunterschied zwischen Entwicklung und Produktion besteht darin, dass Sie in der Produktion keine Grundwahrheitsbezeichnungen haben, während Sie in der Entwicklung optional Grundwahrheitsbezeichnungen verwenden können. Die Verwendung von Grundwahrheitsbezeichnungen ermöglicht Agent Evaluation, zusätzliche Qualitätsmetriken zu berechnen.
Entwicklung (offline)
In der Entwicklung stammen requests und expected_responses aus einem Auswertungssatz. Ein Evaluationssatz ist eine Sammlung repräsentativer Eingaben, die Ihr Agent genau verarbeiten können sollte. Weitere Informationen zu Auswertungssätzen finden Sie unter Evaluierungssätze (MLflow 2).For more information about evaluation sets, see Evaluation sets (MLflow 2).
Um response und trace zu erhalten, kann die Agentenbewertung den Code Ihres Agenten aufrufen, um diese Ausgaben für jede Zeile im Bewertungssatz zu generieren. Alternativ können Sie diese Ergebnisse selbst generieren und an Agent Evaluation übergeben. Siehe Wie man Eingaben für einen Evaluierungslauf bereitstellt für weitere Informationen.
Produktion (online)
Informationen zur Überwachung in der Produktion finden Sie unter Monitor GenAI in der Produktion. Dieses MLflow 3-Feature ist mit MLflow 2-Experimenten kompatibel. Um die Überwachung für das MLflow 2-Experiment zu aktivieren, verwenden Sie das MLflow 3 SDK, das installiert wird mlflow>=3.1.
Einrichten eines Qualitätsbenchmarks mit einem Auswertungssatz
Um die Qualität einer sich in Entwicklung befindlichen KI-Anwendung (offline) zu messen, müssen Sie ein Evaluationsset definieren, das heißt, eine Reihe repräsentativer Fragen und optionaler Ground-Truth-Antworten. Wenn die Anwendung einen Abrufschritt umfasst, z. B. in RAG-Workflows, können Sie optional unterstützende Dokumente bereitstellen, auf denen die Antwort basieren soll.
- Ausführliche Informationen zu Auswertungssätzen, einschließlich metrischer Abhängigkeiten und bewährten Methoden, finden Sie unter Evaluierungssätze (MLflow 2).
- Informationen zum erforderlichen Schema finden Sie unter Agent Evaluation Eingabemodell (MLflow 2).
- Weitere Informationen zum synthetischen Generieren eines qualitativ hochwertigen Evaluierungssatzes finden Sie unter Evaluierungssätze synthetisieren.
Auswertungsausführungen
Ausführliche Informationen zum Ausführen einer Auswertung finden Sie unter Ausführen einer Auswertung und Anzeigen der Ergebnisse (MLflow 2). Agent Evaluation unterstützt zwei Optionen für die Bereitstellung der Ausgabe aus der Kette:
- Sie können die Anwendung als Teil der Auswertungsausführung ausführen. Die Anwendung generiert Ergebnisse für jede Eingabe im Bewertungssatz.
- Sie können eine Ausgabe aus einer vorherigen Ausführung der Anwendung bereitstellen.
Ausführliche Informationen und Erläuterungen zur Verwendung der einzelnen Optionen finden Sie unter Bereitstellen von Eingaben für eine Auswertungsausführung.
Erhalten Sie menschliches Feedback zur Qualität einer generativen KI-Anwendung
Die Databricks-Überprüfungs-App erleichtert es, Feedback zur Qualität einer KI-Anwendung von menschlichen Gutachtern zu sammeln. Weitere Informationen finden Sie in Benutzen Sie die Bewertungs-App für menschliche Bewertungen einer generativen KI-App (MLflow 2).
Geografische Verfügbarkeit von Mosaic AI Agent Evaluation
Mosaic AI Agent Evaluation ist ein designierter Dienst, der geografische Regionen verwendet, um die Datenresidenz bei der Verarbeitung von Kundeninhalten zu verwalten. Weitere Informationen zur Verfügbarkeit von Agent Evaluation in verschiedenen geografischen Gebieten finden Sie unter Designierte Databricks-Dienste.
Preise
Preisinformationen finden Sie unter Preise für Mosaic AI Agent Evaluation.
Informationen über die Modelle, die LLM-Richter antreiben
- LLM-Richter verwenden möglicherweise Dienste von Drittanbietern, um Ihre GenAI-Anwendungen zu bewerten, einschließlich Azure OpenAI, betrieben von Microsoft.
- Für Azure OpenAI ist in Databricks die Missbrauchsüberwachung deaktiviert, sodass keine Prompts oder Antworten in Azure OpenAI gespeichert werden.
- Für Arbeitsbereiche der Europäischen Union (EU) verwenden LLM-Richter Modelle, die in der EU gehostet werden. Alle anderen Regionen verwenden Modelle, die in den USA gehostet werden.
- Das Deaktivieren partnergestützter KI-Features verhindert, dass der LLM-Richter Partnermodelle aufruft. Sie können LLM-Richter weiterhin verwenden, indem Sie Ihr eigenes Modell bereitstellen.
- LLM-Richter sollen Kunden helfen, ihre GenAI-Agenten/Anwendungen zu bewerten, und LLM-Beurteilungsergebnisse sollten nicht verwendet werden, um eine LLM zu trainieren, zu verbessern oder zu optimieren.
Beispielnotizbücher
Die folgenden Notizbücher veranschaulichen die Verwendung von Mosaik AI Agent Evaluation.