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.
Nachverfolgung ist der Prozess des Speicherns relevanter Informationen über Experimente. In diesem Artikel erfahren Sie, wie Sie MLflow zum Nachverfolgen von Experimenten und Ausführungen in Azure Machine Learning-Arbeitsbereichen verwenden.
Einige Methoden, die in der MLflow-API verfügbar sind, sind möglicherweise nicht verfügbar, wenn Sie Azure Machine Learning verwenden. Details zu unterstützten und nicht unterstützten Vorgängen finden Sie unter Unterstützungsmatrix zum Abfragen von Ausführungen und Experimenten. Sie können auch mehr über unterstützte MLflow-Funktionen in Azure Machine Learning aus dem Artikel MLflow und Azure Machine Learning erfahren.
Hinweis
- Informationen zum Nachverfolgen von Experimenten auf Azure Databricks finden Sie unter Track Azure Databricks machine learning experiments with MLflow and Azure Machine Learning.
- Informationen zum Nachverfolgen von Experimenten, die in Azure Synapse Analytics ausgeführt werden, finden Sie unter Nachverfolgen von Azure Synapse Analytics-ML-Experimenten mit MLflow und Azure Machine Learning.
Voraussetzungen
Sie verfügen über ein Azure-Abonnement und die kostenlose oder kostenpflichtige Version von Azure Machine Learning.
Um Azure CLI- und Python-Befehle auszuführen, installieren Sie Azure CLI v2 und das Azure Machine Learning SDK v2 für Python. Die
ml-Erweiterung für Azure CLI wird automatisch installiert, wenn Sie zum ersten Mal einen Azure Machine Learning CLI-Befehl ausführen.
Installieren Sie das MLflow SDK-Paket
mlflowund das Azure Machine Learning-Plug-Inazureml-mlflowfür MLflow:pip install mlflow azureml-mlflowTipp
Sie können auch das Paket
mlflow-skinnyverwenden. Dabei handelt es sich um ein abgespecktes MLflow-Paket ohne SQL-Speicher, Server, Benutzeroberfläche oder Data Science-Abhängigkeiten. Wir empfehlen dieses Paket für Benutzer, die in erster Linie die MLflow-Tracking- und Protokollierungsfunktionen benötigen, aber nicht die vollständige Suite von Features, einschließlich Bereitstellungen.Erstellen Sie einen Azure Machine Learning-Arbeitsbereich. Informationen zum Erstellen eines Arbeitsbereichs finden Sie unter Erstellen von Ressourcen für die ersten Schritte. Überprüfen Sie die Zugriffsberechtigungen , die Sie zum Ausführen von MLflow-Vorgängen in Ihrem Arbeitsbereich benötigen.
Wenn Sie eine Remotenachverfolgung durchführen, d. h. eine Nachverfolgung von Experimenten, die außerhalb von Azure Machine Learning ausgeführt werden, konfigurieren Sie MLflow so, dass auf den Nachverfolgungs-URI Ihres Azure Machine Learning-Arbeitsbereichs verwiesen wird. Weitere Informationen zum Herstellen einer Verbindung zwischen MLflow und dem Arbeitsbereich finden Sie unter Konfigurieren von MLflow für Azure Machine Learning.
Konfigurieren des Experiments
MLflow organisiert Informationen in Experimenten und Ausführungen. Ausführungen werden in Azure Machine Learning als Aufträge bezeichnet. Standardmäßig werden Ausführungen in einem automatisch erstellten Experiment mit dem Namen Default protokolliert, Sie können aber konfigurieren, welches Experiment nachverfolgt werden soll.
Verwenden Sie für interaktives Training, z. B. in einem Jupyter Notebook, den MLflow-Befehl mlflow.set_experiment(). Der folgende Codeschnipsel konfiguriert beispielsweise ein Experiment:
experiment_name = 'hello-world-example'
mlflow.set_experiment(experiment_name)
Konfigurieren der Ausführung
Azure Machine Learning verfolgt Trainingsläufe, die MLflow als Durchläufe bezeichnet. Verwenden Sie Ausführungen, um die gesamte Verarbeitung zu erfassen, die Ihr Auftrag ausführt.
Beim interaktiven Arbeiten beginnt MLflow mit der Nachverfolgung Ihrer Trainingsroutine, sobald Sie Informationen protokollieren, die eine aktive Ausführung erfordern. Wenn beispielsweise die Autoprotokollierungsfunktion von MLflow aktiviert ist, beginnt die MLflow-Nachverfolgung, wenn Sie eine Metrik oder einen Parameter protokollieren oder einen Schulungszyklus starten.
In der Regel ist es jedoch hilfreich, die Ausführung explizit zu starten, insbesondere, wenn Sie die Gesamtzeit Ihres Experiments im Feld Dauer erfassen möchten. Um die Ausführung explizit zu starten, verwenden Sie mlflow.start_run().
Unabhängig davon, ob Sie die Ausführung manuell starten oder nicht, müssen Sie die Ausführung schließlich beenden, damit MLflow weiß, dass Ihre Experimentausführung abgeschlossen ist und den Status der Ausführung als Abgeschlossen markieren kann. Verwenden Sie mlflow.end_run(), um eine Ausführung zu beenden.
Der folgende Code startet eine Ausführung manuell und endet am Ende des Notebooks:
mlflow.start_run()
# Your code
mlflow.end_run()
Es ist am besten, Ausführungen manuell zu starten, damit Sie nicht vergessen, sie zu beenden. Normalerweise ist es hilfreich, das Paradigma des Kontextmanagers zu verwenden, um sich daran zu erinnern, die Ausführung zu beenden.
with mlflow.start_run() as run:
# Your code
Wenn Sie eine neue Ausführung durch Verwendung von mlflow.start_run() starten, kann es hilfreich sein, den Parameter run_name anzugeben, der später in den Namen der Ausführung in der Azure Machine Learning-Benutzeroberfläche übersetzt wird. Dies hilft Ihnen, die Ausführung schneller zu identifizieren.
with mlflow.start_run(run_name="hello-world-example") as run:
# Your code
Aktivieren Sie die automatische MLflow-Protokollierung
Sie können Metriken, Parameter und Dateien mit MLflow manuell protokollieren, und Sie können auch auf die automatische Protokollierungsfunktion von MLflow zurückgreifen. Jedes von MLflow unterstützte Maschinelle Lernframework bestimmt, was automatisch nachverfolgt werden soll.
Um die automatische Protokollierung zu aktivieren, fügen Sie den folgenden Code vor Ihrem Trainingscode ein:
mlflow.autolog()
Anzeigen von Metriken und Artefakten in Ihrem Arbeitsbereich
Die Metriken und Artefakte aus dem MLflow-Protokoll werden in Ihrem Arbeitsbereich nachverfolgt. Sie können sie im Azure Machine Learning Studio anzeigen und darauf zugreifen oder programmgesteuert über das MLflow SDK darauf zugreifen.
So zeigen Sie Metriken und Artefakten im Studio an:
Wählen Sie auf der Seite Aufträge in Ihrem Arbeitsbereich den Namen des Experiments aus.
Wählen Sie auf der Detailseite des Experiments die Registerkarte Metriken aus.
Wählen Sie protokollierte Metriken aus, um Diagramme auf der rechten Seite der Seite zu rendern. Sie können Diagramme anpassen, indem Sie eine Glättung anwenden, die Farbe ändern oder mehrere Metriken in einem einzelnen Graphen zeichnen. Sie können auch die Größe und Anordnung des Layouts ändern.
Nachdem Sie die gewünschte Ansicht erstellt haben, speichern Sie sie für die zukünftige Verwendung, und geben Sie sie mithilfe eines direkten Links für Ihre Teamkollegen frei.
Verwenden Sie mlflow.get_run(), um programmgesteuert auf Metriken, Parameter und Artefakte mithilfe des MLflow SDK zuzugreifen.
import mlflow
run = mlflow.get_run("<RUN_ID>")
metrics = run.data.metrics
params = run.data.params
tags = run.data.tags
print(metrics, params, tags)
Tipp
Im vorherigen Beispiel wird nur der letzte Wert einer angegebenen Metrik zurückgegeben. Wenn Sie alle Werte einer bestimmten Metrik abrufen möchten, verwenden Sie die mlflow.get_metric_history-Methode. Weitere Informationen zum Abrufen von Werten einer Metrik finden Sie unter Abrufen von Parametern und Metriken aus einer Ausführung.
Um von Ihnen protokollierte Artefakte wie Dateien und Modelle herunterzuladen, verwenden Sie mlflow.artifacts.download_artifacts().
mlflow.artifacts.download_artifacts(run_id="<RUN_ID>", artifact_path="helloworld.txt")
Weitere Informationen zum Abrufen oder Vergleichen von Informationen aus Experimenten und Ausführungen in Azure Machine Learning mithilfe von MLflow finden Sie unter Abfragen und Vergleichen von Experimenten und Ausführungen mit MLflow.