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 :
Choisissez Nom de l’exécution pour voir plus de détails sur l’exécution.
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.
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.