Freigeben über


MLflow-Ablaufverfolgung für Agents

Wichtig

Dieses Feature befindet sich in der Public Preview.

Dieser Artikel beschreibt die MLflow-Ablaufverfolgung und die Szenarios, in denen sie für die Evaluierung generativer KI-Anwendungen in Ihrem KI-System hilfreich ist.

Bei der Softwareentwicklung geht es um die Aufzeichnung von Ereignisabläufen wie Benutzersitzungen oder Flows von Anforderungen. Im Zusammenhang mit KI-Systemen bezieht sich die Ablaufverfolgung oft auf Interaktionen, die Sie mit einem KI-System haben. Eine beispielhafte Ablaufverfolgung eines KI-Systems könnte so aussehen, dass die Eingaben und Parameter für eine RAG-Anwendung instrumentiert werden, die eine Benutzernachricht mit Prompt, eine Vektorsuche und eine Schnittstelle mit dem generativen KI-Modell enthält.

Was ist die MLflow-Ablaufverfolgung?

Mit der MLflow-Ablaufverfolgung können Sie Abläufe in verschiedenen Versionen von generativen KI-Anwendungen protokollieren, analysieren und vergleichen. Sie können Ihren generativen KI-Python-Code debuggen und Eingaben und Antworten nachverfolgen. Auf diese Weise können Sie Bedingungen oder Parameter ermitteln, die zu einer schlechten Leistung Ihrer Anwendung beitragen. Die MLflow-Ablaufverfolgung ist eng in die Databricks-Tools und -Infrastruktur integriert, so dass Sie alle Ihre Ablaufverfolgungen in Databricks-Notizbüchern oder der MLflow-Experiment-UI speichern und anzeigen können, während Sie Ihren Code ausführen.

Wenn Sie KI-Systeme auf Databricks mit Bibliotheken wie LangChain, LlamaIndex, OpenAI oder benutzerdefiniertem PyFunc entwickeln, können Sie mit der MLflow-Ablaufverfolgung alle Ereignisse und Zwischenergebnisse aus jedem Schritt Ihres Agent sehen. Sie können ganz einfach sehen, wie die Prompts lauten, welche Modelle und Retriever verwendet wurden, welche Dokumente zur Ergänzung der Antwort abgerufen wurden, wie lange es gedauert hat und wie das Endergebnis aussieht. Wenn Ihr Modell zum Beispiel halluziniert, können Sie jeden Schritt, der zu der Halluzination geführt hat, schnell überprüfen.

Gründe für die Verwendung der MLflow-Ablaufverfolgung

Die MLflow-Ablaufverfolgung bietet Ihnen verschiedene Vorteile, damit Sie Ihren Entwicklungsworkflow verfolgen können. Sie können zum Beispiel Folgendes:

  • Überprüfen Sie eine interaktive Visualisierung und verwenden Sie das Untersuchungstool zur Diagnose von Problemen in der Entwicklung.
  • Überprüfen Sie, ob die Prompt-Vorlagen und Leitlinien vernünftige Ergebnisse liefern.
  • Erkunden und minimieren Sie die Auswirkungen verschiedener Frameworks, Modelle, Blockgrößen und Softwareentwicklungspraktiken auf die Latenz.
  • Ermitteln Sie die Anwendungskosten, indem Sie die Token-Nutzung durch verschiedene Modelle verfolgen.
  • Erstellen Sie Benchmark-Datasets („goldene“ Datasets), um die Leistung der verschiedenen Versionen zu bewerten.
  • Speichern Sie Ablaufverfolgungen von Produktionsmodell-Endpunkten zum Debuggen von Problemen und führen Sie Offlineüberprüfungen und -auswertungen aus.

Installieren der MLflow-Ablaufverfolgung

Die MLflow-Ablaufverfolgung ist in MLflow-Versionen 2.13.0 und höher verfügbar.

%pip install mlflow>=2.13.0 -qqqU
%restart_python

Alternativ können Sie mit %pip install databricks-agents die neueste Version von databricks-agents, die eine kompatible MLflow-Version enthält, installieren.

Verwenden der MLflow-Ablaufverfolgung in der Entwicklung

Mithilfe der MLflow-Ablaufverfolgung können Sie Leistungsprobleme analysieren und den Agent-Entwicklungszyklus beschleunigen. In den folgenden Abschnitten wird davon ausgegangen, dass Sie die Agent-Entwicklung und MLflow-Ablaufverfolgung über ein Notebook vornehmen.

Hinweis

In der Notebook-Umgebung kann die MLflow-Ablaufverfolgung bis zu ein paar Sekunden Mehraufwand für die Laufzeit des Agents verursachen. Das liegt in erster Linie an der Wartezeit beim Protokollieren von Ablaufverfolgungen für das MLflow-Experiment. Im Produktionsmodell-Endpunkt hat die MLflow-Ablaufverfolgung wesentlich geringere Auswirkungen auf die Leistung. Siehe Verwenden der MLflow-Ablaufverfolgung in der Produktion.

Hinweis

Ab Databricks Runtime 15.4 LTS ML ist die MLflow-Ablaufverfolgung standardmäßig in Notebooks aktiviert. Um die Ablaufverfolgung zu deaktivieren, z. B. mit LangChain, können Sie in Ihrem Notebook mlflow.langchain.autolog(log_traces=False) ausführen.

Hinzufügen von Ablaufverfolgungen zu Ihrem Agent

Die MLflow-Ablaufverfolgung bietet drei verschiedene Möglichkeiten, Ablaufverfolgungen mit Ihrer generativen KI-Anwendung zu verwenden. Beispiele für die Verwendung dieser Methoden finden Sie unter Hinzufügen von Ablaufverfolgungen zu Ihren Agents. Details zur API-Referenz finden Sie in der MLflow-Dokumentation.

API Empfohlener Anwendungsfall Beschreibung
Automatische MLflow-Protokollierung Entwicklung in integrierten GenAI-Bibliotheken Die automatische Protokollierung instrumentiert automatisch Ablaufverfolgungen für beliebte Open-Source-Frameworks wie LangChain LlamaIndex und OpenAI. Wenn am Anfang des Notebooks mlflow.<library>.autolog() hinzufügen, zeichnet MLflow automatisch Ablaufverfolgungen für jeden Schritt der Agentausführung auf.
Fluent-APIs Benutzerdefinierter Agent mit Pyfunc Low-Code-APIs für die Instrumentierung von KI-Systemen, ohne sich Gedanken über die Struktur der Ablaufverfolgung zu machen. MLflow bestimmt die entsprechende übergeordnete und untergeordnete Struktur (Spans) basierend auf dem Python-Stapel.
MLflow-Client-APIs Erweiterte Anwendungsfälle wie Multi-Threading MLflowClient implementiert präzisere, threadsichere APIs für erweiterte Anwendungsfälle. Diese APIs verwalten die Beziehung zwischen übergeordneten und untergeordneten Elementen der Bereiche nicht, daher müssen Sie sie manuell angeben, um die gewünschte Ablaufverfolgungsstruktur zu erstellen. Dies erfordert mehr Code, bietet Ihnen jedoch eine bessere Kontrolle über den Ablaufverfolgungslebenszyklus, insbesondere für Multithread-Anwendungsfälle.

Empfohlen für Anwendungsfälle, die mehr Kontrolle erfordern, z. B. Multithreadanwendungen oder rückrufbasierte Instrumentierung.

Prüfen von Ablaufverfolgungen

Wenn Sie den instrumentierten Agent ausgeführt haben, können Sie die generierten Ablaufverfolgungen auf verschiedene Arten überprüfen:

  • Die Visualisierung von Ablaufverfolgungen wird inline in der Zellenausgabe gerendert.
  • Die Ablaufverfolgungen werden in Ihrem MLflow-Experiment protokolliert. Sie können die vollständige Liste der vergangenen Ablaufverfolgungen überprüfen und auf der Registerkarte Traces auf der Experiment-Seite danach suchen. Wenn der Agent unter einer aktiven MLflow-Ausführung ausgeführt wird, sind die Ablaufverfolgungen auch auf der Ausführungsseite zu finden.
  • Rufen Sie Ablaufverfolgungen programmgesteuert über die search_traces()-API ab.

Verwenden der MLflow-Ablaufverfolgung in der Produktion

Die MLflow-Ablaufverfolgung ist auch in Mosaik AI Model Serving integriert, sodass Sie Probleme effizient debuggen, die Leistung überwachen und ein goldenes Dataset für die Offlineauswertung erstellen können. Wenn die MLflow-Ablaufverfolgung für Ihren Bereitstellungsendpunkt aktiviert ist, werden Ablaufverfolgungen in einer Rückschlusstabelle unter der Spalte response aufgezeichnet.

Zum Aktivieren der MLflow-Ablaufverfolgung für Ihren Bereitstellungsendpunkt müssen Sie die Umgebungsvariable ENABLE_MLFLOW_TRACING in der Endpunktkonfiguration auf True festlegen. Weitere Informationen zum Bereitstellen eines Endpunkts mit benutzerdefinierten Umgebungsvariablen finden Sie unter Hinzufügen von Nur-Text-Umgebungsvariablen. Wenn Sie Ihren Agent mithilfe der deploy() API bereitgestellt haben, werden Ablaufverfolgungen automatisch in einer Rückschlusstabelle protokolliert. Siehe Bereitstellen eines Agents für generative KI-Anwendung.

Hinweis

Das Schreiben von Ablaufverfolgungen in eine Rückschlusstabelle erfolgt asynchron, sodass nicht der gleiche Mehraufwand entsteht wie in der Notebook-Umgebung während der Entwicklung. Es kann aber dennoch ein gewisser Mehraufwand bei der Antwortgeschwindigkeit des Endpunkts entstehen, insbesondere dann, wenn die Ablaufverfolgungsgröße für jede Rückschlussanforderung groß ist. Databricks garantiert keine Vereinbarung zum Servicelevel (Service Level Agreement, SLA) für die tatsächliche Latenzauswirkung auf Ihren Modellendpunkt, da es stark von der Umgebung und der Modellimplementierung abhängt. Databricks empfiehlt, ihre Endpunktleistung zu testen und Erkenntnisse über den Ablaufverfolgungsaufwand zu erhalten, bevor sie in einer Produktionsanwendung bereitgestellt wird.

Die folgende Tabelle enthält einen groben Hinweis auf die Auswirkungen auf die Rückschlusslatenz für unterschiedliche Ablaufverfolgungsgrößen.

Ablaufverfolgungsgröße pro Anforderung Auswirkungen auf Latenz (ms)
~10 KB ~1 ms
~1 MB 50 ~100 ms
10 MB 150 ms ~

Begrenzungen

  • Die MLflow-Ablaufverfolgung ist in Databricks-Notebooks, Notebookaufträgen und Modellbereitstellungen verfügbar.

  • LangChain-Autoprotokollierung unterstützt unter Umständen nicht alle LangChain-Vorhersage-APIs. Die vollständige Liste der unterstützten APIs finden Sie in der MLflow-Dokumentation.