View a markdown version of this page

Enregistrez les métriques, les paramètres et les MLflow modèles pendant l'entraînement - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Enregistrez les métriques, les paramètres et les MLflow modèles pendant l'entraînement

Une fois connecté à votre serveur MLflow de suivi, vous pouvez utiliser le MLflow SDK pour enregistrer les métriques, les paramètres et les MLflow modèles.

Journalisation des métriques d’entraînement

mlflow.log_metricÀ utiliser dans le cadre d'un MLflow entraînement pour suivre les indicateurs. Pour plus d'informations sur l'utilisation des métriques de journalisation MLflow, consultezmlflow.log_metric.

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

Ce script doit créer une exécution d’expérience et imprimer une sortie similaire à ce qui suit :

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

Dans l' MLflow interface utilisateur, cet exemple doit ressembler à ce qui suit :

Une expérience affichée dans le menu MLflow Experiments de haut niveau.

Choisissez Nom de l’exécution pour voir plus de détails sur l’exécution.

Paramètre d'expérience affiché sur une page d'exécution d'expérience dans l' MLflow interface utilisateur.

Journalisation des paramètres et des modèles

Note

Les étapes suivantes nécessitent que votre environnement dispose de l’autorisation s3:PutObject. Cette autorisation doit être associée au rôle IAM que l'utilisateur du MLflow SDK assume lorsqu'il se connecte ou se fédère sur son compte. AWS Pour plus d’informations, consultez Exemples de politiques de rôle et d’utilisateur.

L'exemple suivant vous présente un flux de travail de formation de base à l'aide d'un modèle SKLearn et vous montre comment suivre ce modèle dans le cadre d'une MLflow expérience. Cet exemple journalise les paramètres, les métriques et les artefacts du modèle.

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", )

Dans l' MLflow interface utilisateur, choisissez le nom de l'expérience dans le volet de navigation de gauche pour explorer toutes les exécutions associées. Choisissez le nom de l’exécution pour obtenir plus d’informations sur chaque exécution. Dans cet exemple, la page de votre exécution d’expérience doit ressembler à ce qui suit.

Paramètres suivis pour une expérience exécutée dans l' MLflow interface utilisateur.

Cet exemple journalise le modèle de régression logistique. Dans l' MLflow interface utilisateur, vous devriez également voir les artefacts du modèle enregistrés.

Artefacts du modèle suivis pour une expérience exécutée dans l' MLflow interface utilisateur.