View a markdown version of this page

Protokollieren Sie Metriken, Parameter und MLflow Modelle während des Trainings - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Protokollieren Sie Metriken, Parameter und MLflow Modelle während des Trainings

Nachdem Sie eine Verbindung zu Ihrem MLflow Tracking-Server hergestellt haben, können Sie das MLflow SDK verwenden, um Metriken, Parameter und MLflow Modelle zu protokollieren.

Protokollieren von Trainingsmetriken

Verwenden Sie es mlflow.log_metric innerhalb eines MLflow Trainingslaufs, um Messwerte zu verfolgen. Weitere Hinweise zur Protokollierung von MLflow Metriken mithilfe vonmlflow.log_metric.

with mlflow.start_run(): mlflow.log_metric("foo", 1) print(mlflow.search_runs())

Dieses Skript sollte einen Experimentlauf erstellen und eine Ausgabe ähnlich der folgenden generieren:

run_id experiment_id status artifact_uri ... tags.mlflow.source.name tags.mlflow.user tags.mlflow.source.type tags.mlflow.runName 0 607eb5c558c148dea176d8929bd44869 0 FINISHED s3://dddd/0/607eb5c558c148dea176d8929bd44869/a... ... file.py user-id LOCAL experiment-code-name

In der MLflow Benutzeroberfläche sollte dieses Beispiel wie folgt aussehen:

Ein Experiment, das im Menü MLflow Experimente auf der obersten Ebene angezeigt wird.

Wählen Sie Laufname aus, um weitere Ausführungsdetails anzuzeigen.

Ein Experimentparameter, der auf einer Seite zum Ausführen eines Experiments in der MLflow Benutzeroberfläche angezeigt wird.

Protokollieren von Parametern und Modellen

Anmerkung

Für das folgende Beispiel muss Ihre Umgebung über s3:PutObject-Berechtigungen verfügen. Diese Berechtigung sollte mit der IAM-Rolle verknüpft werden, die der MLflow SDK-Benutzer annimmt, wenn er sich bei seinem Konto anmeldet oder sich mit seinem AWS Konto verbündet. Weitere Informationen finden Sie in unter Beispiele für Benutzer- und Rollenrichtlinien.

Das folgende Beispiel führt Sie durch einen grundlegenden Trainingsablauf mit einem Modell SKLearn und zeigt Ihnen, wie Sie dieses Modell in einem MLflow Versuchslauf nachverfolgen können. In diesem Beispiel werden Parameter, Metriken und Modellartefakte protokolliert.

import mlflow from mlflow.models import infer_signature import pandas as pd from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score # This is the ARN of the MLflow Tracking Server you created mlflow.set_tracking_uri(your-tracking-server-arn) mlflow.set_experiment("some-experiment") # Load the Iris dataset X, y = datasets.load_iris(return_X_y=True) # Split the data into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Define the model hyperparameters params = {"solver": "lbfgs", "max_iter": 1000, "multi_class": "auto", "random_state": 8888} # Train the model lr = LogisticRegression(**params) lr.fit(X_train, y_train) # Predict on the test set y_pred = lr.predict(X_test) # Calculate accuracy as a target loss metric accuracy = accuracy_score(y_test, y_pred) # Start an MLflow run and log parameters, metrics, and model artifacts with mlflow.start_run(): # Log the hyperparameters mlflow.log_params(params) # Log the loss metric mlflow.log_metric("accuracy", accuracy) # Set a tag that we can use to remind ourselves what this run was for mlflow.set_tag("Training Info", "Basic LR model for iris data") # Infer the model signature signature = infer_signature(X_train, lr.predict(X_train)) # Log the model model_info = mlflow.sklearn.log_model( sk_model=lr, name="iris_model", # Changed from artifact_path to name for MLflow 3.0 signature=signature, input_example=X_train, registered_model_name="tracking-quickstart", )

Wählen Sie auf der MLflow Benutzeroberfläche im linken Navigationsbereich den Namen des Experiments aus, um alle zugehörigen Durchläufe zu untersuchen. Wählen Sie den Laufnamen aus, um weitere Informationen zum entsprechenden Lauf zu erhalten. In diesem Beispiel sollte die Experimentlaufseite für diesen Lauf in etwa wie folgt aussehen.

Verfolgte Parameter für einen Experimentlauf in der MLflow Benutzeroberfläche.

In diesem Beispiel wird das logistische Regressionsmodell protokolliert. In der MLflow Benutzeroberfläche sollten Sie auch die protokollierten Modellartefakte sehen.

Nachverfolgte Modellartefakte für ein Experiment, das in der MLflow Benutzeroberfläche ausgeführt wurde.