

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.

# Suivez les recommandations d'inférence et les résultats de référence avec MLflow
<a name="generative-ai-inference-recommendations-mlflow"></a>

Vous pouvez suivre les résultats de vos recommandations et comparer les tâches grâce à MLflow entièrement géré sur Amazon SageMaker AI. Lorsque vous fournissez une configuration MLflow, SageMaker AI enregistre les indicateurs de performance et les artefacts produits par la tâche dans une application MLflow. Vous pouvez ensuite utiliser l'interface utilisateur de MLflow pour visualiser les exécutions individuelles, comparer les configurations entre les tâches et partager les résultats avec votre équipe. Pour plus d'informations sur MLflow on SageMaker AI, consultez[Accélérez le développement de l'IA générative à l'aide de MLflow géré sur Amazon SageMaker AI](mlflow.md).

Le suivi MLflow est facultatif. Pour l'activer, fournissez une configuration MLflow qui fait référence à une application MLflow lorsque vous créez la tâche.

## Conditions préalables
<a name="generative-ai-inference-recommendations-mlflow-prereqs"></a>

Avant de suivre les résultats avec MLflow, vous avez besoin des éléments suivants, en plus [Conditions préalables](generative-ai-inference-recommendations-get-started.md#generative-ai-inference-recommendations-get-started-prereqs) des recommandations ou des tâches de référence :
+ Une application MLflow dans un état opérationnel, Région AWS identique à celui de votre travail. Pour plus d'informations sur la création d'une application MLflow, consultez[Configuration de l'application MLflow](mlflow-app-setup.md).
+ Un rôle d'exécution IAM (`RoleArn`que vous transmettez à la tâche) autorisé à décrire l'application MLflow et à appeler les API REST MLflow. Ajoutez l'`sagemaker:DescribeMlflowApp`action et les `sagemaker-mlflow` actions utilisées par le job pour enregistrer les exécutions. Pour plus d'informations sur les autorisations MLflow, consultez[Configuration de l'application MLflow](mlflow-app-setup.md).

## Paramètres de configuration de MLflow
<a name="generative-ai-inference-recommendations-mlflow-config"></a>

Pour suivre les résultats, ajoutez un `MlflowConfig` objet à votre `CreateAIBenchmarkJob` demande `CreateAIRecommendationJob` ou à votre demande. `OutputConfig` `MlflowConfig`contient les champs suivants :

`MlflowResourceArn`  
Obligatoire. Le nom de ressource Amazon (ARN) de l'application MLflow dans laquelle enregistrer les résultats, au format`arn:aws:sagemaker:{{region}}:{{account-id}}:mlflow-app/{{app-id}}`.

`MlflowExperimentName`  
Facultatif. Nom de l'expérience MLflow sous laquelle enregistrer l'exécution. Si l'expérience n'existe pas, l' SageMaker IA la crée ; si elle existe déjà, SageMaker elle la réutilise, de sorte que vous pouvez regrouper les essais de plusieurs tâches sous un même test en lui transmettant le même nom.

`MlflowRunName`  
Facultatif. Nom de l'exécution MLflow de niveau supérieur sous laquelle les résultats de la tâche sont imbriqués. Pour regrouper les résultats de plusieurs tâches en une seule exécution de haut niveau, transmettez-les `MlflowRunName` à chaque tâche.

Chaque tâche crée une exécution MLflow de haut niveau, avec des exécutions secondaires imbriquées qui répartissent les résultats selon des dimensions telles que la cible de référence ou le type d'instance, la configuration du déploiement et le niveau de simultanéité. Cette structure vous permet d'explorer les mesures individuelles et de comparer les configurations dans l'interface utilisateur de MLflow.

Les `MlflowConfig` informations que vous fournissez dans la demande de création sont répercutées dans `OutputConfig` la `Describe` réponse correspondante.

## Suivi d'une offre de recommandation
<a name="generative-ai-inference-recommendations-mlflow-recommendation"></a>

Ajoutez l'`MlflowConfig`objet `OutputConfig` lorsque vous créez une tâche de recommandation.

**Python (boto3)**

```
response = client.create_ai_recommendation_job(
    AIRecommendationJobName="my-recommendation-job",
    ModelSource={
        "S3": {
            "S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/",
        }
    },
    OutputConfig={
        "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/",
        "MlflowConfig": {
            "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE",
            "MlflowExperimentName": "my-recommendation-experiment",
            "MlflowRunName": "my-recommendation-job-run",
        },
    },
    PerformanceTarget={
        "Constraints": [
            {"Metric": "ttft-ms"}
        ]
    },
    AIWorkloadConfigIdentifier="my-recommendation-workload",
    RoleArn="arn:aws:iam::111122223333:role/ExampleRole",
)
print(response["AIRecommendationJobArn"])
```

**AWS INTERFACE DE LIGNE DE COMMANDE (CLI)**

```
aws sagemaker create-ai-recommendation-job \
  --ai-recommendation-job-name "my-recommendation-job" \
  --model-source '{"S3": {"S3Uri": "s3://DOC-EXAMPLE-BUCKET/models/my-model/"}}' \
  --output-config '{
    "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/recommendations/",
    "MlflowConfig": {
      "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE",
      "MlflowExperimentName": "my-recommendation-experiment",
      "MlflowRunName": "my-recommendation-job-run"
    }
  }' \
  --performance-target '{"Constraints": [{"Metric": "ttft-ms"}]}' \
  --ai-workload-config-identifier "my-recommendation-workload" \
  --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \
  --region us-west-2
```

## Suivez un travail de référence
<a name="generative-ai-inference-recommendations-mlflow-benchmark"></a>

Ajoutez l'`MlflowConfig`objet `OutputConfig` lorsque vous créez une tâche de référence.

**Python (boto3)**

```
response = client.create_ai_benchmark_job(
    AIBenchmarkJobName="my-benchmark-job",
    BenchmarkTarget={
        "Endpoint": {
            "Identifier": "my-sagemaker-endpoint"
        }
    },
    OutputConfig={
        "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/",
        "MlflowConfig": {
            "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE",
            "MlflowExperimentName": "my-benchmark-experiment",
            "MlflowRunName": "my-benchmark-job-run",
        },
    },
    AIWorkloadConfigIdentifier="my-benchmark-config",
    RoleArn="arn:aws:iam::111122223333:role/ExampleRole",
)
print(response["AIBenchmarkJobArn"])
```

**AWS INTERFACE DE LIGNE DE COMMANDE (CLI)**

```
aws sagemaker create-ai-benchmark-job \
  --ai-benchmark-job-name "my-benchmark-job" \
  --benchmark-target '{"Endpoint": {"Identifier": "my-sagemaker-endpoint"}}' \
  --output-config '{
    "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/",
    "MlflowConfig": {
      "MlflowResourceArn": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-app/app-EXAMPLE",
      "MlflowExperimentName": "my-benchmark-experiment",
      "MlflowRunName": "my-benchmark-job-run"
    }
  }' \
  --ai-workload-config-identifier "my-benchmark-config" \
  --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \
  --region us-west-2
```

## Afficher les résultats dans MLflow
<a name="generative-ai-inference-recommendations-mlflow-view"></a>

Une fois que la tâche a atteint le `Completed` statut, ouvrez l'interface utilisateur de MLflow depuis l'application MLflow pour inspecter les exécutions enregistrées. Pour plus d'informations sur le lancement de l'interface utilisateur MLflow, consultez[Lancement de l’interface utilisateur MLflow à l’aide d’une URL présignée](mlflow-launch-ui.md).

Sur la page **Expériences**, sélectionnez l'expérience que vous avez spécifiée dans`MlflowExperimentName`.

![La page d'expériences de l'interface utilisateur MLflow affiche une liste des expériences avec leurs noms et leur heure de création.](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/mlflow/inference-recommendations-mlflow-experiments.png)


La vue **Exécutions** de l'expérience montre une exécution de haut niveau contenant une exécution par tâche, qui s'étend aux exécutions secondaires pour chaque type d'instance, configuration de déploiement et niveau de simultanéité. Sélectionnez une course pour afficher ses paramètres, ses métriques et ses artefacts.

![La vue MLflow UI Runs montre une exécution de haut niveau qui se développe en exécutions enfants imbriquées pour chaque tâche, type d'instance, type d'image et niveaux de simultanéité.](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/mlflow/inference-recommendations-mlflow-runs.png)
