View a markdown version of this page

Suivez les recommandations d'inférence et les résultats de référence avec MLflow - 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.

Suivez les recommandations d'inférence et les résultats de référence avec MLflow

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, consultezAccélérez le développement de l'IA générative à l'aide de MLflow géré sur Amazon SageMaker AI.

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

Avant de suivre les résultats avec MLflow, vous avez besoin des éléments suivants, en plus Conditions préalables 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, consultezConfiguration de l'application MLflow.

  • Un rôle d'exécution IAM (RoleArnque vous transmettez à la tâche) autorisé à décrire l'application MLflow et à appeler les API REST MLflow. Ajoutez l'sagemaker:DescribeMlflowAppaction et les sagemaker-mlflow actions utilisées par le job pour enregistrer les exécutions. Pour plus d'informations sur les autorisations MLflow, consultezConfiguration de l'application MLflow.

Paramètres de configuration de MLflow

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

MlflowResourceArn

Obligatoire. Le nom de ressource Amazon (ARN) de l'application MLflow dans laquelle enregistrer les résultats, au formatarn: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

Ajoutez l'MlflowConfigobjet 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

Ajoutez l'MlflowConfigobjet 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

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, consultezLancement de l’interface utilisateur MLflow à l’aide d’une URL présignée.

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

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.

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é.