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.
Ein maschinelles Lernexperiment ist die primäre Einheit der Organisation und Kontrolle für alle zugehörigen Ausführungen des maschinellen Lernens. Ein Lauf entspricht einer einzelnen Ausführung des Modellcodes. In MLflow-basiert das Tracking auf Experimenten und Läufen.
Machine Learning-Experimente ermöglichen Datenwissenschaftlern das Protokollieren von Parametern, Codeversionen, Metriken und Ausgabedateien beim Ausführen ihres Machine Learning-Codes. Mit Experimenten können Sie außerdem Ausführungsläufe visualisieren, suchen und 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 verwenden können, um ihren Entwicklungsprozess zu organisieren und mehrere Läufe nachzuverfolgen.
Voraussetzungen
Rufen Sie ein Microsoft Fabric-Abonnement ab. Oder registrieren Sie sich für eine kostenlose Microsoft Fabric Testversion.
Melden Sie sich bei Microsoft Fabric an.
Wechseln Sie zu Fabric, indem Sie den Benutzeroberflächenschalter auf der unteren linken Seite Ihrer Startseite verwenden.
Erstellen eines Experiments
Sie können ein Machine Learning-Experiment direkt über die Fabric-Benutzeroberfläche (UI) erstellen oder Code schreiben, der die MLflow-API verwendet.
Erstellen eines Experiments mithilfe der Benutzeroberfläche
So erstellen Sie ein Machine Learning-Experiment über die Benutzeroberfläche:
Erstellen Sie einen neuen Arbeitsbereich, oder wählen Sie einen vorhandenen Arbeitsbereich aus.
Wählen Sie oben links im Arbeitsbereich " Neues Element" aus. Wählen Sie unter "Analysieren und Trainieren von Daten" die Option "Experiment" aus.
Wählen Sie "Erstellen" aus, das im vertikalen Menü in ... zu finden ist.
Wählen Sie unter "Data Science" die Option "Experimentieren" aus.
Geben Sie einen Experimentnamen an, und wählen Sie "Erstellen" aus. Diese Aktion erstellt ein leeres Experiment in Ihrem Arbeitsbereich.
Nach dem Erstellen des Experiments können Sie mit dem Hinzufügen von Läufen beginnen, um Die Ausführungsmetriken und -parameter nachzuverfolgen.
Erstellen eines Experiments mithilfe der MLflow-API
Sie können auch ein Machine-Learning-Experiment direkt aus Ihrer Autorenumgebung mithilfe der mlflow.create_experiment()- oder mlflow.set_experiment()-APIs erstellen. Ersetzen Sie im folgenden Code <EXPERIMENT_NAME> 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>")
Ausführungen innerhalb eines Experiments verwalten
Ein Machine Learning-Experiment enthält eine Sammlung von Läufen für vereinfachte Nachverfolgung und Vergleich. Innerhalb eines Experiments kann ein Datenwissenschaftler über verschiedene Läufe navigieren und die zugrunde liegenden Parameter und Metriken untersuchen. Data Scientists können auch Läufe innerhalb eines Machine Learning-Experiments vergleichen, um zu ermitteln, welche Teilmenge von Parametern eine gewünschte Modellleistung liefert.
Wenn Sie die Läufe eines Experiments anzeigen möchten, wählen Sie Laufliste aus der Ansicht des Experiments aus.
In der Ausführungsliste können Sie zu den Details einer bestimmten Ausführung navigieren, indem Sie den Namen des Ausführens auswählen.
Ausführungsdetails nachverfolgen
Eine Machine Learning-Ausführung entspricht einer einzigen Ausführung von Modellcode. Sie können die folgenden Informationen für jeden Durchlauf nachverfolgen:
Jede Ausführung enthält die folgenden Informationen:
- Quelle: Name des Notizbuchs, 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: Fortschritt der Ausführung.
- Hyperparameter: Hyperparameter, die als Schlüsselwertpaare gespeichert wurden. Schlüssel und Werte sind Zeichenfolgen.
- Metriken: Führen Sie Metriken aus, die als Schlüsselwertpaare gespeichert sind. Der Wert ist numerisch.
- Ausgabedateien: Ausgabedateien in einem beliebigen Format. Sie können beispielsweise Bilder, Umgebungen, Modelle und Datendateien aufzeichnen.
- Tags: Metadaten als Schlüsselwertpaare, die ausgeführt werden sollen.
Anzeigen der Ausführungsliste
Sie können alle Läufe in einem Experiment in der Ansicht Ausführungsliste 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.
Ausführen von Vergleichen und Filtern
Um die Qualität Ihrer Machine Learning-Ausführung zu vergleichen und zu bewerten, können Sie die Parameter, Metriken und Metadaten zwischen ausgewählten Läufen innerhalb eines Experiments vergleichen und bewerten.
Tags auf Läufe anwenden
MLflow-Tagging für Experimentläufe ermöglicht Benutzern das Hinzufügen benutzerdefinierter Metadaten in Form von Schlüsselwertpaaren zu ihren Ausführungen. Diese Tags helfen beim Kategorisieren, Filtern und Suchen nach Ausführungen basierend auf bestimmten Attributen, wodurch die Verwaltung und Analyse von Experimenten innerhalb der MLflow-Plattform erleichtert wird. Benutzer können Tags zum Kennzeichnen von Läufen mit Informationen wie Modelltypen, Parametern oder relevanten Bezeichnern verwenden, wodurch die Organisation und Rückverfolgbarkeit von Experimenten verbessert wird.
Dieser Codeausschnitt startet eine MLflow-Ausführung, protokolliert einige Parameter und Metriken und fügt Tags zum Kategorisieren und Bereitstellen von zusätzlichem Kontext für die Ausführung hinzu.
import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing
# Autologging
mlflow.autolog()
# Load the California housing dataset
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Start an MLflow run
with mlflow.start_run() as run:
# Train the model
model = LinearRegression()
model.fit(X_train, y_train)
# Predict and evaluate
y_pred = model.predict(X_test)
# Add tags
mlflow.set_tag("model_type", "Linear Regression")
mlflow.set_tag("dataset", "California Housing")
mlflow.set_tag("developer", "Bob")
Nachdem die Tags angewendet wurden, können Sie die Ergebnisse direkt aus dem Inline-MLflow-Widget oder auf der Seite mit den Ausführungsdetails anzeigen.
Warnung
Warnung: Einschränkungen beim Anwenden von Tags auf MLflow-Experimentläufe in Fabric
- Nicht leere Tags: Tagnamen oder Werte dürfen nicht leer sein. Wenn Sie versuchen, ein Tag mit einem leeren Namen oder Wert anzuwenden, schlägt der Vorgang fehl.
- Tagnamen: Tagnamen können bis zu 250 Zeichen lang sein.
- Tagwerte: Tagwerte können bis zu 5000 Zeichen lang sein.
-
Eingeschränkte Tagnamen: Tagnamen, die mit bestimmten Präfixen beginnen, werden nicht unterstützt. Insbesondere sind Tagnamen, die mit
synapseml,mlflowodertridentbeginnen, eingeschränkt und werden nicht akzeptiert.
Visueller Vergleich von Durchläufen
Sie können Vorgänge innerhalb eines vorhandenen Experiments visuell vergleichen und filtern. Mit dem visuellen Vergleich können Sie einfach zwischen mehreren Durchläufen navigieren und unter ihnen sortieren.
Zum Vergleichen von Durchläufen:
- Wählen Sie ein vorhandenes Machine Learning-Experiment aus, das mehrere Ausführungen enthält.
- Wählen Sie die Registerkarte "Ansicht" aus und wechseln Sie dann zur Ansicht "Ausführen-Liste". 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. Hier können Sie die Eigenschaften, Metriken, Tags und Hyperparameter auswählen, die Sie sehen möchten.
- Erweitern Sie den Filterbereich , um Die Ergebnisse basierend auf bestimmten ausgewählten Kriterien einzuschränken.
- Wählen Sie mehrere Läufe aus, um ihre Ergebnisse im Metrikvergleichsbereich zu vergleichen. In diesem Bereich können Sie die Diagramme anpassen, indem Sie den Diagrammtitel, den Visualisierungstyp, die X-Achse, die Y-Achse und vieles mehr ändern.
Vergleich der Ausführung mithilfe der MLflow-API
Data Scientists können auch MLflow verwenden, um Zwischenläufe innerhalb eines Experiments abzufragen und zu durchsuchen. Weitere MLflow-APIs zum Suchen, Filtern und Vergleichen von Läufen finden Sie in der MLflow-Dokumentation.
Abrufen aller Läufe
Sie können die MLflow-Such-API mlflow.search_runs() verwenden, um alle Ausführungen in einem Experiment abzurufen, indem Sie <EXPERIMENT_NAME> durch den Namen Ihres Experiments oder <EXPERIMENT_ID> durch Ihre Experiment-ID im folgenden Code ersetzen.
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 über mehrere Experimente hinweg suchen, indem Sie eine Liste der Experiment-IDs für den experiment_ids Parameter angeben. Ebenso ermöglicht die Bereitstellung einer Liste von Experimentnamen für den experiment_names Parameter das Durchsuchen von MLflow über mehrere Experimente hinweg. Dies kann nützlich sein, wenn Sie läufe innerhalb verschiedener Experimente vergleichen möchten.
Reihenfolge und Grenzwertausführung
Verwenden Sie den Parameter max_results aus search_runs, um die Anzahl der zurückgegebenen Ausführungen einzuschränken. Mit dem order_by-Parameter können Sie die Spalten auflisten, nach denen sortiert werden soll, und er kann einen optionalen DESC- oder ASC-Wert enthalten. Im folgenden Beispiel wird beispielsweise die letzte Ausführung eines Experiments zurückgegeben.
mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])
Vergleichen von Läufen in einem Fabric-Notizbuch
Sie können das MLFlow-Erstellungs-Widget in Fabric-Notizbüchern verwenden, um MLflow-Ausführungen zu verfolgen, die in jeder Notizbuchzelle generiert werden. Mit dem Widget können Sie Ihre Läufe, zugeordneten Metriken, Parameter und Eigenschaften direkt auf die einzelne Zellenebene nachverfolgen.
Um einen visuellen Vergleich zu erhalten, können Sie auch zur Ansicht "Vergleich ausführen " wechseln. In dieser Ansicht werden die Daten grafisch dargestellt, die die schnelle Identifizierung von Mustern oder Abweichungen in verschiedenen Laufläufen unterstützen.
Speichern der Ausführung als Machine Learning-Modell
Sobald eine Ausführung das gewünschte Ergebnis liefert, können Sie die Ausführung als Modell für die erweiterte Modellnachverfolgung und für die Modellbereitstellung speichern, indem Sie "Als ML-Modell speichern" auswählen.
Überwachen von ML-Experimenten (Vorschau)
ML-Experimente werden direkt in Monitor integriert. Diese Funktionalität dient dazu, mehr Einblicke in Ihre Spark-Anwendungen und die von ihnen generierten ML-Experimente zu bieten, sodass diese Prozesse einfacher verwaltet und gedebuggt werden können.
Nachverfolgen von Monitorläufen
Benutzer können Experimentläufe direkt über den Monitor nachverfolgen, wodurch eine einheitliche Ansicht aller aktivitäten bereitgestellt wird. Diese Integration umfasst Filteroptionen, die es den Benutzern ermöglichen, sich auf Experimente oder Durchläufe zu konzentrieren, die innerhalb der letzten 30 Tage oder in anderen angegebenen Zeiträumen erstellt wurden.
Verfolgen Sie verwandte ML-Experimentdurchläufe aus Ihrer Spark-Anwendung.
ML-Experimente sind direkt in die Überwachungsplattform integriert, wo Sie eine bestimmte Spark-Anwendung auswählen und auf Element-Snapshots zugreifen können. Hier finden Sie eine Liste aller Experimente und Läufe, die von dieser Anwendung generiert werden.