

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.

# Recommandations d’inférence
<a name="inference-recommender-instance-recommendation"></a>

Les tâches de recommandation d’inférence exécutent un ensemble de tests de charge sur les types d’instance recommandés ou un 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 [Conditions préalables à l'utilisation d'Amazon SageMaker Inference Recommender](inference-recommender-prerequisites.md) 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 pour Python (Boto3), AWS CLI et d'Amazon SageMaker Studio Classic et de la console AI SageMaker 

**Topics**
+ [

# Création d’une recommandation d’inférence
](instance-recommendation-create.md)
+ [

# Obtention des résultats de votre tâche de recommandation d’inférence
](instance-recommendation-results.md)

# Création d’une recommandation d’inférence
<a name="instance-recommendation-create"></a>

Créez une recommandation d'inférence par programmation à l'aide du AWS SDK pour Python (Boto3) ou du AWS CLI, ou de manière interactive à l'aide de Studio Classic ou de la console AI. SageMaker Spécifiez un nom de tâche pour votre recommandation d'inférence, un ARN de rôle AWS IAM, une configuration d'entrée et soit un ARN de package de modèle 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 pour Python (Boto3) ]

Utilisez l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html) pour 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 :
+ L’Amazon Resource Name (ARN) d’un rôle IAM qui permet à Inference Recommender d’effectuer des tâches en votre nom. Définissez-le pour le champ `RoleArn`.
+ Un ARN de package de modèle ou un nom de modèle. Inference Recommender prend en charge l’ARN d’un package de modèle ou un nom de modèle en entrée. Spécifiez l’un des éléments suivants :
  + L'ARN du package de modèles versionné que vous avez créé lorsque vous avez enregistré votre modèle dans le registre des modèles SageMaker AI. 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 pour Python (Boto3) package et créez un objet client SageMaker AI à 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 recommandation d’inférence avec l’ARN d’un package de modèle, stockez l’ARN du groupe de packages de modèle dans une variable nommée `model_package_arn`.
+ Option 2 : si vous souhaitez créer une tâche de recommandation 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 référence des SageMaker API Amazon](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html) pour obtenir la liste complète des arguments facultatifs et obligatoires auxquels vous pouvez passer [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html).

------
#### [ AWS CLI ]

Utilisez l’API `create-inference-recommendations-job` 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 rôle IAM qui permet à Amazon SageMaker Inference Recommender d'effectuer des tâches en votre nom. Définissez-le pour le champ `role-arn`.
+ Un ARN de package de modèle ou un nom de modèle. Inference Recommender prend en charge l’ARN d’un package de modèle ou un nom de modèle en entrée. Spécifiez l’un des éléments suivants :
  + L’ARN du package de modèle versionné que vous avez créé lorsque vous avez enregistré votre modèle dans le registre de modèles. 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 l’ARN d’un package de modèle, 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 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/studio/icons/house.png)).

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

1. Choisissez **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 comprend tous les groupes de modèles enregistrés dans le registre de modèles de votre compte, y compris les modèles enregistrés en dehors de Studio Classic.

1. 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 les en-têtes de colonne tels que **Versions** et **Paramètre**.

   Si vous avez un ou plusieurs packages de modèle dans votre groupe de modèles, vous voyez la liste de ces packages de modèle dans la colonne **Versions**.

1. Sélectionnez la colonne **Inference Recommender**.

1. Choisissez un rôle IAM qui accorde à Inference Recommender l'autorisation d'accéder aux services. AWS Vous pouvez créer un rôle et attacher la politique gérée IAM `AmazonSageMakerFullAccess` pour y parvenir. Vous pouvez également laisser Studio Classic créer un rôle pour vous.

1. Choisissez **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 AI console ]

Créez une tâche de recommandation d'instance via la console SageMaker AI en procédant comme suit :

1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. Sur la page **Tâches Inference Recommender**, choisissez **Créer une tâche**.

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

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

   1. Si vous utilisez un modèle enregistré dans le registre des modèles d' SageMaker IA, 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 modèles SageMaker AI où se trouve votre modèle.

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

   1. Si vous utilisez un modèle que vous avez créé dans SageMaker AI, 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 modèle d' SageMaker IA.

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

   1. Pour **Compartiment S3 destiné à l’analyse comparative des données utiles**, entrez le chemin Amazon S3 vers votre archive d’exemples de données utiles, qui doit contenir des exemples de fichiers de données utiles qu’Inference Recommender utilise pour analyser votre modèle sur différents types d’instances.

   1. Pour **Type de contenu des données utiles**, entrez les types MIME pour votre exemple de données utiles.

   1. (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 modèle d' SageMaker IA, 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.

      1. **Dans la liste déroulante Framework**, sélectionnez le framework de votre conteneur, tel que TensorFlow ou XGBoost.

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

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

      1. 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’images ou la régression.

   1. (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]}`.

   1. Choisissez **Suivant**.

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

   1. Choisissez **Suivant**.

1. 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 AI ajoute un horodatage à la fin de ce nom.

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

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

   1. (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.

   1. (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, l' SageMaker IA met fin au travail.

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

   1. Choisissez **Suivant**.

1. 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
<a name="instance-recommendation-results"></a>

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

------
#### [ AWS SDK pour 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 a stocké la réponse dans une variable appelée `response`.

```
print(response['Status'])
```

Cela renvoie une réponse JSON semblable à 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. Celles-ci incluent le nom de la tâche, l’ARN du 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 [Métriques Amazon SageMaker AI sur Amazon CloudWatch](monitoring-cloudwatch.md).

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) que votre modèle a mis pour répondre à l'IA. 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](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html).

------
#### [ 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 réponse JSON 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. Celles-ci incluent le nom de la tâche, l’ARN du rôle, 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 [Métriques Amazon SageMaker AI sur Amazon CloudWatch](monitoring-cloudwatch.md).

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) nécessaire à votre modèle pour répondre à l'IA. 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](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html).

------
#### [ Amazon SageMaker Studio Classic ]

Les recommandations d’inférence sont renseignées dans un nouvel onglet **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’invocations 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 de déploiement** et de **recommandations d'SageMaker IA** 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 **Coût**, de la **Latence** et du **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’invocations 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 **Toutes les exécutions**.

------
#### [ SageMaker AI console ]

Vous pouvez consulter les tâches de recommandation de votre instance dans la console SageMaker AI en procédant comme suit :

1. Accédez à la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

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

1. 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 recommandés par l' SageMaker IA 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 console SageMaker AI.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inf-rec-instant-recs.png)


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](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-interpret-results.html).

------

Pour plus d’informations sur l’interprétation des résultats de votre tâche de recommandation, consultez [Résultats des recommandations](inference-recommender-interpret-results.md).