

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.

# Journalisation des métriques, des paramètres et des modèles MLflow pendant l’entraînement
<a name="mlflow-track-experiments-log-metrics"></a>

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

## Journalisation des métriques d’entraînement
<a name="mlflow-track-experiments-log-metrics-example"></a>

Utilisez `mlflow.log_metric` dans le cadre de l’exécution d’un entraînement MLflow pour suivre les métriques. Pour plus d’informations sur la journalisation des métriques à l’aide de MLflow, consultez `[mlflow.log\_metric](https://mlflow.org/docs/2.13.2/python_api/mlflow.html#mlflow.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’interface utilisateur MLflow, cet exemple doit être similaire à ce qui suit : 

![Expérience présentée dans le menu supérieur MLflow Experiments.](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/mlflow/mlflow-ui-experiments.png)


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’interface utilisateur MLflow.](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/mlflow/mlflow-ui-foo.png)


## Journalisation des paramètres et des modèles
<a name="mlflow-track-experiments-log-params-models"></a>

**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 SDK MLflow 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html).

L’exemple suivant présente un flux d’entraînement des modèles de base à l’aide de SKLearn et illustre comment suivre ce modèle dans le cadre d’une exécution d’expérience MLflow. 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’interface utilisateur MLflow, 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 exécution d’expérience dans l’interface utilisateur MLflow.](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/mlflow/mlflow-ui-parameters.png)


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

![Artefacts de modèle suivis pour une exécution d’expérience dans l’interface utilisateur MLflow.](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/mlflow/mlflow-ui-model-artifacts.png)
