Obtention des résultats de votre tâche de recommandation d'inférence - Amazon SageMaker

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.

Obtention des résultats de votre tâche de recommandation d'inférence

Collectez les résultats de votre tâche de recommandation d'inférence par programmation à l' AWS CLI aide AWS SDK for Python (Boto3) de Studio Classic ou de la console. SageMaker

AWS SDK for Python (Boto3)

Une fois qu'une recommandation d'inférence est terminée, vous pouvez utiliser DescribeInferenceRecommendationsJob pour obtenir les détails de la tâche et les recommandations. Fournissez le nom de tâche que vous avez utilisé lorsque vous avez créé la tâche de recommandation d'inférence.

job_name='<INSERT>' response = sagemaker_client.describe_inference_recommendations_job( JobName=job_name)

Imprimez l'objet de réponse. L'exemple de code précédent stockait la réponse dans une variable nomméeresponse.

print(response['Status'])

Cela renvoie une JSON réponse similaire à l'exemple suivant. Notez que cet exemple montre les types d'instances recommandés pour l'inférence en temps réel (pour un exemple illustrant les recommandations d'inférence sans serveur, consultez l'exemple suivant celui-ci).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

Les premières lignes fournissent des informations sur la tâche de recommandation d'inférence elle-même. Cela inclut le nom du travailARN, le rôle et les heures de création et de suppression.

Le dictionnaire InferenceRecommendations contient une liste de recommandations d'inférences Inference Recommender.

Le dictionnaire EndpointConfiguration imbriqué contient la recommandation du type d'instance (InstanceType) ainsi que le nom du point de terminaison et de la variante (un modèle d'apprentissage AWS automatique déployé) qui ont été utilisés lors de la tâche de recommandation. Vous pouvez utiliser le nom du point de terminaison et de la variante pour la surveillance dans Amazon CloudWatch Events. Pour plus d’informations, consultez Mesures de surveillance d'Amazon SageMaker avec Amazon CloudWatch.

Le dictionnaire Metrics imbriqué contient des informations sur le coût horaire estimé (CostPerHour) pour votre point de terminaison en temps réel en dollars américains, le coût estimé par inférence (CostPerInference) en dollars américains pour votre point de terminaison en temps réel, le nombre maximum attendu de InvokeEndpoint demandes par minute envoyées au point de terminaison (MaxInvocations) et la latence du modèle (ModelLatency), qui est l'intervalle de temps (en microsecondes) auquel votre modèle a mis pour répondre. SageMaker La latence du modèle inclut le temps de communication local pris pour envoyer la requête et pour récupérer la réponse du conteneur d'un modèle et le temps nécessaire pour terminer l'inférence dans le conteneur.

L'exemple suivant montre la partie InferenceRecommendations de la réponse pour une tâche de recommandation d'inférence configurée pour renvoyer des recommandations d'inférence sans serveur :

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

Vous pouvez interpréter les recommandations pour l'inférence sans serveur de la même manière que les résultats pour l'inférence en temps réel, à l'exception de ServerlessConfig, qui vous indique les métriques renvoyées pour un point de terminaison sans serveur avec la MemorySizeInMB donnée et quand MaxConcurrency = 1. Pour augmenter le débit possible sur le point de terminaison, augmentez la valeur de MaxConcurrency de façon linéaire. Par exemple, si la recommandation d'inférence affiche MaxInvocations comme 1000, l'augmentation de MaxConcurrency à 2 prendrait en compte 2 000 MaxInvocations. Notez que cela n'est vrai que jusqu'à un certain point, qui peut varier en fonction de votre modèle et de votre code. Les recommandations sans serveur mesurent également la métrique ModelSetupTime, qui mesure (en microsecondes) le temps nécessaire au lancement des ressources informatiques sur un point de terminaison sans serveur. Pour plus d'informations sur la configuration des points de terminaison sans serveur, consultez la documentation Inférence sans serveur.

AWS CLI

Une fois qu'une recommandation d'inférence est terminée, vous pouvez utiliser describe-inference-recommendations-job pour obtenir les détails de la tâche et les types d'instances recommandés. Fournissez le nom de tâche que vous avez utilisé lorsque vous avez créé la tâche de recommandation d'inférence.

aws sagemaker describe-inference-recommendations-job\ --job-name <job-name>\ --region <aws-region>

La JSON réponse similaire doit ressembler à l'exemple suivant. Notez que cet exemple montre les types d'instances recommandés pour l'inférence en temps réel (pour un exemple illustrant les recommandations d'inférence sans serveur, consultez l'exemple suivant celui-ci).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

Les premières lignes fournissent des informations sur la tâche de recommandation d'inférence elle-même. Cela inclut le nom de la tâche, le rôleARN, l'heure de création et de suppression.

Le dictionnaire InferenceRecommendations contient une liste de recommandations d'inférences Inference Recommender.

Le dictionnaire EndpointConfiguration imbriqué contient la recommandation du type d'instance (InstanceType) ainsi que le nom du point de terminaison et de la variante (un modèle d'apprentissage AWS automatique déployé) utilisés lors de la tâche de recommandation. Vous pouvez utiliser le nom du point de terminaison et de la variante pour la surveillance dans Amazon CloudWatch Events. Pour plus d’informations, consultez Mesures de surveillance d'Amazon SageMaker avec Amazon CloudWatch.

Le dictionnaire Metrics imbriqué contient des informations sur le coût horaire estimé (CostPerHour) pour votre point de terminaison en temps réel en dollars américains, le coût estimé par inférence (CostPerInference) en dollars américains pour votre point de terminaison en temps réel, le nombre maximum attendu de InvokeEndpoint demandes par minute envoyées au point de terminaison (MaxInvocations) et la latence du modèle (ModelLatency), qui est l'intervalle de temps (en millisecondes) auquel votre modèle a mis pour répondre. SageMaker La latence du modèle inclut le temps de communication local pris pour envoyer la requête et pour récupérer la réponse du conteneur d'un modèle et le temps nécessaire pour terminer l'inférence dans le conteneur.

L'exemple suivant montre la partie InferenceRecommendations de la réponse pour une tâche de recommandation d'inférence configurée pour renvoyer des recommandations d'inférence sans serveur :

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

Vous pouvez interpréter les recommandations pour l'inférence sans serveur de la même manière que les résultats pour l'inférence en temps réel, à l'exception de ServerlessConfig, qui vous indique les métriques renvoyées pour un point de terminaison sans serveur avec la MemorySizeInMB donnée et quand MaxConcurrency = 1. Pour augmenter le débit possible sur le point de terminaison, augmentez la valeur de MaxConcurrency de façon linéaire. Par exemple, si la recommandation d'inférence affiche MaxInvocations comme 1000, l'augmentation de MaxConcurrency à 2 prendrait en compte 2 000 MaxInvocations. Notez que cela n'est vrai que jusqu'à un certain point, qui peut varier en fonction de votre modèle et de votre code. Les recommandations sans serveur mesurent également la métrique ModelSetupTime, qui mesure (en microsecondes) le temps nécessaire au lancement des ressources informatiques sur un point de terminaison sans serveur. Pour plus d'informations sur la configuration des points de terminaison sans serveur, consultez la documentation Inférence sans serveur.

Amazon SageMaker Studio Classic

Les recommandations d'inférence apparaissent dans un nouvel onglet de recommandations d'inférence dans Studio Classic. L'affichage des résultats peut prendre jusqu'à 45 minutes. Cet onglet contient les en-têtes des colonnes Results (Résultats) et Details (Détails).

La colonne Détails fournit des informations sur la tâche de recommandation d'inférence, telles que le nom de la recommandation d'inférence, la date de création de la tâche (Heure de création), etc. Elle fournit également des informations sur les Settings (Paramètres), telles que le nombre maximal d'appels qui se sont produits par minute et des informations sur les Amazon Resource Names utilisés.

La colonne Résultats fournit une fenêtre d'objectifs et de SageMakerrecommandations de déploiement dans laquelle vous pouvez ajuster l'ordre d'affichage des résultats en fonction de l'importance du déploiement. Il existe trois menus déroulants que vous pouvez utiliser pour fournir le niveau d'importance du Cost (Coût), de la Latency (Latence) et du Throughput (Débit) pour votre cas d'utilisation. Pour chaque objectif (coût, latence et débit), vous pouvez définir le niveau d'importance : Lowest Importance (Importance la plus faible), Low Importance (Importance faible), Moderate importance (Importance modérée), High importance (Importance élevée) ou Highest importance (Importance la plus élevée).

En fonction de l'importance que vous avez sélectionnée pour chaque objectif, Inference Recommender affiche sa principale recommandation dans le champ de SageMakerrecommandation situé à droite du panneau, ainsi que le coût horaire estimé et la demande d'inférence. Il fournit également des informations sur la latence attendue du modèle, le nombre maximal d'appels et le nombre d'instances. Pour les recommandations sans serveur, vous pouvez voir les valeurs idéales pour la simultanéité maximale et la taille de mémoire du point de terminaison.

En plus de la recommandation principale affichée, vous pouvez également voir les mêmes informations affichées pour toutes les instances testées par l'outil de recommandation d'inférence dans la section All runs (Toutes les exécutions).

SageMaker console

Vous pouvez consulter vos tâches de recommandation d'instance dans la SageMaker console en procédant comme suit :

  1. Accédez à la SageMaker console à l'adresse https://console.aws.amazon.com/sagemaker/.

  2. Dans le panneau de navigation de gauche, choisissez Inférence, puis Inference Recommender.

  3. Sur la page Tâches Inference Recommender, choisissez le nom de votre tâche de recommandation d'inférence.

Sur la page de détails de votre tâche, vous pouvez consulter les recommandations d'inférence, qui sont les types d'instances SageMaker recommandés pour votre modèle, comme indiqué dans la capture d'écran suivante.

Capture d'écran de la liste des recommandations d'inférence sur la page des détails de la tâche dans la SageMaker console.

Dans cette section, vous pouvez comparer les types d'instances en fonction de différents facteurs tels que la Latence du modèle, le Coût horaire, le Coût par inférence et les Invocations par minute.

Sur cette page, vous pouvez également afficher les configurations que vous avez spécifiées pour votre tâche. Dans la section Monitor, vous pouvez consulter les CloudWatch métriques Amazon enregistrées pour chaque type d'instance. Pour en savoir plus sur l'interprétation de ces métriques, consultez Interprétation des résultats.

Pour plus d'informations sur l'interprétation des résultats de votre tâche de recommandation, consultez Résultats des recommandations.