Machine Learning-Experimente in Microsoft Fabric
Ein Machine Learning-Experiment ist die primäre Einheit für die Organisation und Steuerung aller zugehörigen Machine Learning-Ausführungen. Eine Ausführung entspricht einer einzelnen Ausführung des Modellcodes. Die MLflow-Nachverfolgung basiert auf Experimenten und Ausführungen.
Machine Learning-Experimente bieten Data Scientists die Möglichkeit, Parameter, Codeversionen, Metriken und Ausgabedateien zu protokollieren, wenn sie ihren Machine Learning-Code ausführen. Mit Experimenten können Sie auch Ausführungen visualisieren, nach Ausführungen suchen und sie vergleichen sowie Ausführungsdateien und Metadaten für die Analyse in anderen Tools herunterladen.
In diesem Artikel erfahren Sie mehr darüber, wie Data Scientists mit Machine Learning-Experimenten interagieren und diese verwenden können, um ihren Entwicklungsprozess zu organisieren und mehrere Ausführungen nachzuverfolgen.
Voraussetzungen
- Ein Power BI Premium-Abonnement. Wenn Sie noch keines haben, finden Sie weitere Informationen unter Erwerben von Power BI Premium.
- Ein Power BI-Arbeitsbereich mit zugewiesener Premium-Kapazität.
Erstellen eines Experiments
Sie können ein Machine Learning-Experiment direkt auf der Data Science-Startseite in der Power BI-Benutzeroberfläche erstellen oder Code schreiben, der die MLflow-API verwendet.
Erstellen eines Experiments über die Benutzeroberfläche
So erstellen Sie ein Machine Learning-Experiment über die Benutzeroberfläche:
Erstellen Sie einen neuen Data Science-Arbeitsbereich, oder wählen Sie einen vorhandenen Arbeitsbereich aus.
Wählen Sie im Abschnitt „Neu“ die Option Experiment aus.
Geben Sie einen Experimentnamen an, und wählen Sie Erstellen aus. Diese Aktion erstellt ein leeres Experiment in Ihrem Arbeitsbereich.
Nachdem Sie das Experiment erstellt haben, können Sie Ausführungen hinzufügen und Ausführungsmetriken sowie -parameter nachverfolgen.
Erstellen eines Experiments mit der MLflow-API
Sie können ein Machine Learning-Experiment mit der mlflow.create_experiment()
- oder mlflow.set_experiment()
-API auch direkt in Ihrer Erstellungsumgebung erstellen. Ersetzen Sie <EXPERIMENT_NAME>
im folgenden Code durch den Namen Ihres Experiments.
import mlflow
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")
# This will set the given experiment as the active experiment.
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")
Verwalten von Ausführungen in einem Experiment
Ein Machine Learning-Experiment enthält eine Sammlung von Ausführungen, um Nachverfolgung und Vergleiche zu vereinfachen. In einem Experiment kann ein Data Scientist durch verschiedene Ausführungen navigieren und die zugrunde liegenden Parameter und Metriken untersuchen. Data Scientists können auch Ausführungen innerhalb eines Machine Learning-Experiments vergleichen, um zu ermitteln, bei welchen Parametern die gewünschte Modellleistung entsteht.
Nachverfolgen von Ausführungen
Eine Machine Learning-Ausführung entspricht einer einzelnen Ausführung des Modellcodes.
Jede Ausführung umfasst die folgenden Informationen:
- Quelle: Name des Notebooks, das die Ausführung erstellt hat.
- Registrierte Version: Gibt an, ob die Ausführung als Machine Learning-Modell gespeichert wurde.
- Startdatum: Startzeit der Ausführung.
- Status: Status der Ausführung.
- Hyperparameter: Hyperparameter, die als Schlüssel-Wert-Paare gespeichert werden. Sowohl Schlüssel als auch Werte sind Zeichenfolgen.
- Metriken: Ausführungsmetriken, die als Schlüssel-Wert-Paare gespeichert werden. Der Wert ist numerisch.
- Ausgabedateien: Ausgabedateien in einem beliebigen Format. Sie können beispielsweise Bilder, Umgebungen, Modelle und Datendateien aufzeichnen.
Zuletzt ausgeführte Elemente anzeigen
Sie können die letzten Läufe eines Experiments auch direkt in der Listenansicht des Arbeitsbereichs anzeigen. Mit dieser Ansicht können Sie die letzten Aktivitäten nachverfolgen, schnell zur zugehörigen Spark-Anwendung springen und Filter basierend auf dem Ausführungsstatus anwenden.
Vergleichen und Filtern von Ausführungen
Um die Qualität von Machine Learning-Ausführungen zu vergleichen und auszuwerten, können Sie die Parameter, Metriken und Metadaten zwischen ausgewählten Ausführungen in einem Experiment vergleichen.
Visuelles Vergleichen von Ausführungen
Sie können Ausführungen in einem vorhandenen Experiment visuell vergleichen und filtern. Mit dem visuellen Vergleich können Sie problemlos zwischen mehreren Ausführungen navigieren und diese sortieren.
So vergleichen Sie Ausführungen:
- Wählen Sie ein vorhandenes Machine Learning-Experimentaus, das mehrere Ausführungen enthält.
- Wählen Sie die Registerkarte Ansicht aus, und wechseln Sie dann zur Ansicht Ausführungsliste. Alternativ können Sie die Option Ausführungsliste anzeigen direkt in der Ansicht Ausführungsdetails auswählen.
- Passen Sie die Spalten in der Tabelle an, indem Sie den Bereich Spalten anpassen erweitern. Dort können Sie die Eigenschaften, Metriken und Hyperparameter auswählen, die angezeigt werden sollen.
- Erweitern Sie den Bereich Filter, um die Ergebnisse basierend auf bestimmten Auswahlkriterien einzugrenzen.
- Sie können im Bereich „Metrikvergleich“ mehrere Ausführungen auswählen, um deren Ergebnisse zu vergleichen. In diesem Bereich können Sie die Diagramme anpassen, indem Sie Änderungen an Diagrammtitel, Visualisierungstyp, X-Achse, Y-Achse usw. vornehmen.
Vergleichen von Ausführungen mit der MLflow-API
Data Scientists können mit MLflow auch Ausführungen in einem Experiment abfragen und durchsuchen. Weitere Informationen zu MLflow-APIs zum Suchen, Filtern und Vergleichen von Ausführungen finden Sie in der MLflow-Dokumentation.
Abrufen aller Ausführungen
Mit der MLflow-Such-API mlflow.search_runs()
können Sie alle Ausführungen in einem Experiment abrufen. Ersetzen Sie dazu im folgenden Code <EXPERIMENT_NAME>
durch Ihren Experimentnamen oder <EXPERIMENT_ID>
durch Ihre Experiment-ID:
import mlflow
# Get runs by experiment name:
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])
# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])
Tipp
Sie können mehrere Experimente durchsuchen, indem Sie im experiment_ids
-Parameter eine Liste von Experiment-IDs angeben. Ebenso ermöglicht die Angabe einer Liste von Experimentnamen im experiment_names
-Parameter eine MLflow-Suche in mehreren Experimenten. Dies kann nützlich sein, wenn Sie Ausführungen in verschiedenen Experimenten vergleichen möchten.
Anordnung und Begrenzung von Ausführungen
Verwenden Sie den max_results
-Parameter von search_runs
, um die Anzahl der zurückgegebenen Ausführungen zu beschränken. Mit dem order_by
-Parameter können Sie die Spalten auflisten, die für eine Sortierung verwendet werden sollen. Der Parameter kann einen optionalen DESC
oder ASC
-Wert enthalten. Das folgende Beispiel gibt beispielsweise die letzte Ausführung eines Experiments zurück.
mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])
Vergleichen von Läufen innerhalb eines Fabric-Notebooks
Sie können das MLFlow-Dokumentenerstellungs-Widget innerhalb von Fabric-Notebooks verwenden, um MLflow-Läufe zu verfolgen, die innerhalb jeder Notebook-Zelle erzeugt wurden. Mit dem Widget können Sie Ihre Läufe, die zugehörigen Metriken, Parameter und Eigenschaften bis auf die Ebene der einzelnen Zellen verfolgen.
Um einen visuellen Vergleich zu erhalten, können Sie auch zur Ansicht Vergleich ausführen wechseln. In dieser Ansicht werden die Daten grafisch dargestellt, was die schnelle Identifizierung von Mustern oder Abweichungen zwischen verschiedenen Läufen erleichtert.
Speichern des Laufs als Machine Learning-Modell
Sobald eine Ausführung das gewünschte Ergebnis ergibt, können Sie die Ausführung als Modell speichern, um eine bessere Modellnachverfolgung und eine Modellimplementierung zu ermöglichen, indem Sie Als ML-Modell speichern auswählen.