View a markdown version of this page

Protokollieren von Metriken, Parametern und MLflow-Modellen 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 von Metriken, Parametern und MLflow-Modellen 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 mlflow.log_metric innerhalb eines MLflow-Trainingslaufs, um Metriken zu verfolgen. Weitere Informationen zum Protokollieren von Metriken mit MLflow finden Sie unter mlflow.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

Dieses Beispiel sollte in der MLflow-Benutzeroberfläche in etwa wie folgt aussehen:

Ein Experiment, das im Hauptmenü MLflow-Experimente angezeigt wird

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

Ein Experimentparameter, der auf einer Seite zum Experimentlauf 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 diesem verbündet. AWS Weitere Informationen finden Sie in unter Beispiele für Benutzer- und Rollenrichtlinien.

Das folgende Beispiel führt Sie durch einen grundlegenden Modelltraining-Workflow mit SKLearn und zeigt Ihnen, wie Sie dieses Modell in einem MLflow-Experimentlauf verfolgen 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 in der MLflow-Benutzeroberfläche den Namen des Experiments im linken Navigationsbereich aus, um alle zugehörigen Lä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.

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

In diesem Beispiel wird das logistische Regressionsmodell protokolliert. In der MLflow-Benutzeroberfläche sollten auch die protokollierten Modellartefakte angezeigt werden.

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