Obtention d'une 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 d'une recommandation d'inférence

Les tâches de recommandation d'inférence exécutent un ensemble de tests de charge sur les types d'instance recommandés et le point de terminaison sans serveur. Les tâches de recommandation d'inférence utilisent des métriques de performance basées sur des tests de charge utilisant les exemples de données que vous avez fournis lors de l'enregistrement de la version du modèle.

Note

Avant de créer une tâche de recommandation Inference Recommender, assurez-vous que les Prérequis sont satisfaits.

Ce qui suit montre comment utiliser Amazon SageMaker Inference Recommender pour créer une recommandation d'inférence basée sur votre type de modèle à l'aide de AWS SDK for Python (Boto3), AWS CLI et Amazon SageMaker Studio Classic, et de la console SageMaker

Création d'une recommandation d'inférence

Créez une recommandation d'inférence par programmation à l'aide du AWS SDK for Python (Boto3) ou du AWS CLI, ou de manière interactive à l'aide de Studio Classic ou de la console. SageMaker Spécifiez un nom de tâche pour votre recommandation d'inférence, un AWS IAM rôleARN, une configuration d'entrée et soit un package de modèles ARN lorsque vous avez enregistré votre modèle dans le registre des modèles, soit le nom de votre modèle et un ContainerConfig dictionnaire utilisés lors de la création de votre modèle dans la section Prérequis.

AWS SDK for Python (Boto3)

Utilisez le CreateInferenceRecommendationsJobAPIpour démarrer une tâche de recommandation d'inférence. Définissez le champ JobType sur 'Default' pour les tâches de recommandation d'inférence. En outre, fournissez les éléments suivants :

  • Le nom de ressource Amazon (ARN) d'un IAM rôle qui permet à Inference Recommender d'effectuer des tâches en votre nom. Définissez-le pour le champ RoleArn.

  • Un package de modèle ARN ou un nom de modèle. Inference Recommender prend en charge un package de modèle ARN ou un nom de modèle en entrée. Spécifiez l’un des éléments suivants :

    • Le package ARN de modèles versionné que vous avez créé lorsque vous avez enregistré votre SageMaker modèle auprès du registre des modèles. Définissez-le pour ModelPackageVersionArn dans le champ InputConfig.

    • Le nom du modèle que vous avez créé. Définissez-le pour ModelName dans le champ InputConfig. Fournissez également le dictionnaire ContainerConfig, qui inclut les champs obligatoires qui doivent être fournis avec le nom du modèle. Définissez-le pour ContainerConfig dans le champ InputConfig. Dans ContainerConfig, vous pouvez également éventuellement spécifier le champ SupportedEndpointType comme RealTime ou Serverless. Si vous spécifiez ce champ, Inference Recommender renvoie des recommandations uniquement pour ce type de point de terminaison. Si vous ne spécifiez pas ce champ, Inference Recommender renvoie des recommandations pour les deux types de point de terminaison.

  • Un nom à votre tâche de recommandation Inference Recommender pour le champ JobName. Le nom du poste Inference Recommender doit être unique dans la AWS région et dans votre AWS compte.

Importez le AWS SDK for Python (Boto3) package et créez un objet SageMaker client à l'aide de la classe client. Si vous avez suivi les étapes de la section Prerequisites (Prérequis), spécifiez uniquement l'un des éléments suivants :

  • Option 1 : Si vous souhaitez créer une tâche de recommandations d'inférence avec un package modèleARN, stockez le groupe de packages modèles ARN dans une variable nomméemodel_package_arn.

  • Option 2 : si vous souhaitez créer une tâche de recommandations d'inférence avec un nom de modèle et ContainerConfig, stockez le nom du modèle dans une variable nommée model_name et le dictionnaire ContainerConfig dans une variable nommée container_config.

# Create a low-level SageMaker service client. import boto3 aws_region = '<INSERT>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide only one of model package ARN or model name, not both. # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<INSERT>' ## Uncomment if you would like to create an inference recommendations job with a ## model name instead of a model package ARN, and comment out model_package_arn above ## Provide your model name # model_name = '<INSERT>' ## Provide your container config # container_config = '<INSERT>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<INSERT>' # Inference Recommender job type. Set to Default to get an initial recommendation job_type = 'Default' # Provide an IAM Role that gives SageMaker Inference Recommender permission to # access AWS services role_arn = 'arn:aws:iam::<account>:role/*' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, # Provide only one of model package ARN or model name, not both. # If you would like to create an inference recommendations job with a model name, # uncomment ModelName and ContainerConfig, and comment out ModelPackageVersionArn. InputConfig = { 'ModelPackageVersionArn': model_package_arn # 'ModelName': model_name, # 'ContainerConfig': container_config } )

Consultez le guide de SageMaker API référence Amazon pour obtenir la liste complète des arguments facultatifs et obligatoires auxquels vous pouvez passer CreateInferenceRecommendationsJob.

AWS CLI

Utilisez le create-inference-recommendations-job API pour démarrer une tâche de recommandation d'inférence. Définissez le champ job-type sur 'Default' pour les tâches de recommandation d'inférence. En outre, fournissez les éléments suivants :

  • Le nom de ressource Amazon (ARN) d'un IAM rôle qui permet à Amazon SageMaker Inference Recommender d'effectuer des tâches en votre nom. Définissez-le pour le champ role-arn.

  • Un package de modèle ARN ou un nom de modèle. Inference Recommender prend en charge un package de modèle ARN ou un nom de modèle en entrée. Spécifiez l'un des éléments suivants :

    • Le package ARN du modèle versionné que vous avez créé lorsque vous avez enregistré votre modèle auprès du Model Registry. Définissez-le pour ModelPackageVersionArn dans le champ input-config.

    • Le nom du modèle que vous avez créé. Définissez-le pour ModelName dans le champ input-config. Fournissez également le dictionnaire ContainerConfig, qui inclut les champs obligatoires qui doivent être fournis avec le nom du modèle. Définissez-le pour ContainerConfig dans le champ input-config. Dans ContainerConfig, vous pouvez également éventuellement spécifier le champ SupportedEndpointType comme RealTime ou Serverless. Si vous spécifiez ce champ, Inference Recommender renvoie des recommandations uniquement pour ce type de point de terminaison. Si vous ne spécifiez pas ce champ, Inference Recommender renvoie des recommandations pour les deux types de point de terminaison.

  • Un nom à votre tâche de recommandation Inference Recommender pour le champ job-name. Le nom du poste Inference Recommender doit être unique dans la AWS région et dans votre AWS compte.

Pour créer une tâche de recommandation d'inférence avec un package modèleARN, utilisez l'exemple suivant :

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\", }"

Pour créer une tâche de recommandation d'inférence avec un nom de modèle et ContainerConfig, utilisez l'exemple suivant. L'exemple utilise le champ SupportedEndpointType pour indiquer que nous voulons uniquement renvoyer des recommandations d'inférence en temps réel :

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelName\": \"model-name\", \"ContainerConfig\" : { \"Domain\": \"COMPUTER_VISION\", \"Framework\": \"PYTORCH\", \"FrameworkVersion\": \"1.7.1\", \"NearestModelName\": \"resnet18\", \"PayloadConfig\": { \"SamplePayloadUrl\": \"s3://{bucket}/{payload_s3_key}\", \"SupportedContentTypes\": [\"image/jpeg\"] }, \"SupportedEndpointType\": \"RealTime\", \"DataInputConfig\": \"[[1,3,256,256]]\", \"Task\": \"IMAGE_CLASSIFICATION\", }, }"
Amazon SageMaker Studio Classic

Créez une tâche de recommandation d'inférence dans Studio Classic.

  1. Dans votre application Studio Classic, choisissez l'icône d'accueil ( ).

  2. Dans la barre latérale gauche de Studio Classic, sélectionnez Modèles.

  3. Choisissez Model Registry (Registre de modèles) dans la liste déroulante pour afficher les modèles que vous avez enregistrés dans le registre de modèles.

    Le panneau de gauche affiche une liste de groupes de modèles. La liste inclut tous les groupes de modèles enregistrés dans le registre des modèles de votre compte, y compris les modèles enregistrés en dehors de Studio Classic.

  4. Sélectionnez le nom de votre groupe de modèles. Lorsque vous sélectionnez votre groupe de modèles, le volet droit de Studio Classic affiche des en-têtes de colonne tels que Versions et Paramètres.

    Si vous avez un ou plusieurs packages de modèles dans votre groupe de modèles, la liste de ces packages de modèles s'affiche dans la colonne Versions.

  5. Sélectionnez la colonne Inference Recommender.

  6. Choisissez un IAM rôle qui accorde à Inference Recommender l'autorisation d'accéder AWS aux services. Pour ce faire, vous pouvez créer un rôle et y associer la politique AmazonSageMakerFullAccess IAM gérée. Vous pouvez également laisser Studio Classic créer un rôle pour vous.

  7. Choisissez Get recommendations (Obtenir des recommandations).

    La recommandation d'inférence peut prendre jusqu'à 45 minutes.

    Avertissement

    Ne fermez pas cet onglet. Si vous fermez cet onglet, la tâche de recommandation d'instance sera annulée.

SageMaker console

Créez une tâche de recommandation d'instance via 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 Créer une tâche.

  4. Pour Étape 1 : Configuration du modèle, procédez comme suit :

    1. Pour Type de tâche, choisissez Tâche Recommender par défaut.

    2. Si vous utilisez un modèle enregistré dans le registre des SageMaker modèles, activez le bouton Choisir un modèle dans le registre des modèles et procédez comme suit :

      1. Dans la liste déroulante des groupes de modèles, choisissez le groupe de modèles dans le registre des SageMaker modèles où se trouve votre modèle.

      2. Dans la liste déroulante Version du modèle, choisissez la version souhaitée de votre modèle.

    3. Si vous utilisez un modèle que vous avez créé dans SageMaker, désactivez le bouton Choisir un modèle dans le registre des modèles et procédez comme suit :

      1. Dans le champ Nom du modèle, entrez le nom de votre SageMaker modèle.

    4. Dans la liste déroulante des IAMrôles, vous pouvez sélectionner un AWS IAM rôle existant disposant des autorisations nécessaires pour créer une tâche de recommandation d'instance. Si vous n'avez pas de rôle existant, vous pouvez également choisir Créer un nouveau rôle pour ouvrir la fenêtre contextuelle de création de rôle et SageMaker ajouter les autorisations nécessaires au nouveau rôle que vous créez.

    5. Pour Compartiment S3 destiné à l'analyse comparative de la charge utile, entrez le chemin Amazon S3 vers votre archive d'échantillons de charge utile, qui doit contenir des exemples de fichiers de charge utile qu'Inference Recommender utilise pour analyser votre modèle sur différents types d'instances.

    6. Pour le type de contenu de charge utile, entrez les MIME types de vos exemples de données de charge utile.

    7. (Facultatif) Si vous avez désactivé le bouton Choisir un modèle dans le registre des modèles et que vous avez spécifié un SageMaker modèle, procédez comme suit pour la configuration du conteneur :

      1. Dans la liste déroulante Domaine, sélectionnez le domaine de machine learning du modèle, tel que la vision par ordinateur, le traitement du langage naturel ou le machine learning.

      2. Dans la liste déroulante Framework, sélectionnez le framework de votre conteneur, tel que TensorFlow ouXGBoost.

      3. Pour Version de framework, entrez la version de framework de votre image de conteneur.

      4. Dans la liste déroulante Nom du modèle le plus proche, sélectionnez le modèle préentraîné qui correspond le plus souvent au vôtre.

      5. Dans la liste déroulante Tâche, sélectionnez la tâche de machine learning exécutée par le modèle, telle que la classification d'image ou la régression.

    8. (Facultatif) Pour la compilation de modèles à l'aide de SageMaker Neo, vous pouvez configurer la tâche de recommandation pour un modèle que vous avez compilé à l'aide de SageMaker Neo. Pour Configuration d'entrée de données, entrez la forme de données d'entrée correcte pour votre modèle dans un format similaire à {'input':[1,1024,1024,3]}.

    9. Choisissez Suivant.

  5. Pour Étape 2 : Instances et paramètres d'environnement, procédez comme suit :

    1. (Facultatif) Pour Sélectionner des instances à des fins de comparaison, vous pouvez sélectionner jusqu'à 8 types d'instances que vous souhaitez comparer. Si vous ne sélectionnez aucune instance, Inference Recommender prend en compte tous les types d'instances.

    2. Choisissez Suivant.

  6. Pour Étape 3 : Paramètres de tâche, procédez comme suit :

    1. (Facultatif) Dans le champ Nom de la tâche, entrez le nom de la tâche de recommandation de votre instance. Lorsque vous créez la tâche, SageMaker ajoute un horodatage à la fin de ce nom.

    2. (Facultatif) Dans le champ Description de la tâche, entrez une brève description de la tâche.

    3. (Facultatif) Dans la liste déroulante des clés de chiffrement, choisissez une AWS KMS clé par son nom ou saisissez-la ARN pour chiffrer vos données.

    4. (Facultatif) Pour Durée (s) maximale (s) de test, entrez le nombre maximal de secondes pendant lequel vous souhaitez que chaque test s'exécute.

    5. (Facultatif) Pour Invocations par minute, entrez le nombre maximal de demandes par minute que le point de terminaison peut atteindre avant d'arrêter la tâche de recommandation. Une fois cette limite atteinte, SageMaker met fin à la tâche.

    6. (Facultatif) Pour Seuil de latence du modèle P99 (ms), entrez le percentile de latence du modèle en millisecondes.

    7. Choisissez Suivant.

  7. Pour Étape 4 : Vérification de la tâche, passez en revue vos configurations, puis choisissez Soumettre.

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 Surveillez 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 Surveillez 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 Interprétation des résultats des recommandations.

Arrêt de votre recommandation d'inférence

Vous souhaiterez peut-être arrêter une tâche en cours d'exécution si vous l'avez démarrée par erreur ou si vous n'avez plus besoin de l'exécuter. Arrêtez vos tâches de recommandation d'inférence Inference Recommender par programmation avec ou avec Studio Classic. StopInferenceRecommendationsJob API

AWS SDK for Python (Boto3)

Spécifiez le nom de la tâche de recommandation d'inférence pour le champ JobName :

sagemaker_client.stop_inference_recommendations_job( JobName='<INSERT>' )
AWS CLI

Spécifiez le nom de la tâche de recommandation d'inférence pour l'indicateur job-name :

aws sagemaker stop-inference-recommendations-job --job-name <job-name>
Amazon SageMaker Studio Classic

Fermez l'onglet dans lequel vous avez lancé la recommandation d'inférence pour arrêter votre recommandation d'inférence Inference Recommender.

SageMaker console

Pour arrêter votre tâche de recommandation d'instance via la SageMaker console, procédez 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, sélectionnez la tâche de recommandation de votre instance.

  4. Choisissez Arrêter la tâche.

  5. Dans la boîte de dialogue qui s'affiche, choisissez Confirmer.

Après avoir arrêté votre tâche, le Statut de la tâche devrait passer à Arrêt en cours.