

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.

# Emplois de recommandation avec Amazon SageMaker Inference Recommender
<a name="inference-recommender-recommendation-jobs"></a>

Amazon SageMaker Inference Recommender peut émettre deux types de recommandations :

1. Les recommandations d’inférence (type de tâche `Default`) exécutent un ensemble de tests de charge sur les types d’instances recommandés. Vous pouvez également effectuer un test de charge pour un point de terminaison sans serveur. Il vous suffit de fournir un package de modèle Amazon Resource Name (ARN) pour lancer ce type de tâche de recommandation. Les tâches de recommandation d’inférence sont terminées en 45 minutes.

1. Les recommandations de point de terminaison (type de tâche `Advanced`) sont basées sur un test de charge personnalisé dans lequel vous sélectionnez les instances de machine learning que vous voulez ou un point de terminaison sans serveur, fournissez un modèle de trafic personnalisé et des exigences de latence et de débit en fonction de vos exigences de production. Cette tâche dure en moyenne 2 heures en fonction de la durée de la tâche définie et du nombre total de configurations d’inférences testées.

Les deux types de recommandations utilisent la même APIs méthode pour créer, décrire et arrêter des tâches. La sortie est une liste de recommandation de configuration d’instance avec les variables d’environnement associées, les métriques de coût, de débit et de latence. Les tâches de recommandation fournissent également un nombre d’instances initial, que vous pouvez utiliser pour configurer une politique de mise à l’échelle automatique. Pour différencier les deux types de tâches, lorsque vous créez une tâche via la console SageMaker AI ou le, spécifiez de créer des recommandations préliminaires sur les points `Default` de terminaison APIs, des tests de charge personnalisés et `Advanced` des recommandations de point de terminaison.

**Note**  
Vous n’avez pas besoin d’effectuer les deux types de tâches de recommandation dans votre propre flux de travail. Vous pouvez faire l’un ou l’autre indépendamment.

Inference Recommender peut également vous fournir une liste d’instances potentielles, ou les cinq principaux types d’instances optimisés en termes de coût, de débit et de latence pour le déploiement du modèle, ainsi qu’un score de confiance. Vous pouvez choisir ces instances lors du déploiement de votre modèle. Inference Recommender effectue automatiquement une analyse comparative par rapport à votre modèle afin que vous puissiez fournir les instances potentielles. Comme il s’agit de recommandations préliminaires, nous vous recommandons d’exécuter d’autres tâches de recommandation d’instance pour obtenir des résultats plus précis. Pour consulter les instances potentielles, rendez-vous sur la page de détails de votre modèle d' SageMaker IA. Pour de plus amples informations, veuillez consulter [Obtention d’instances potentielles instantanées](inference-recommender-prospective.md).

**Topics**
+ [Obtention d’instances potentielles instantanées](inference-recommender-prospective.md)
+ [Recommandations d’inférence](inference-recommender-instance-recommendation.md)
+ [Obtention d’une recommandation d’inférence pour un point de terminaison existant](inference-recommender-existing-endpoint.md)
+ [Arrêt de votre recommandation d’inférence](instance-recommendation-stop.md)
+ [Recommandations compilées avec Neo](inference-recommender-neo-compilation.md)
+ [Résultats des recommandations](inference-recommender-interpret-results.md)
+ [Obtention de recommandations en matière de politique de mise à l’échelle automatique](inference-recommender-autoscaling.md)
+ [Exécuter un test de charge personnalisé](inference-recommender-load-test.md)
+ [Arrêt de votre test de charge](load-test-stop.md)
+ [Résolution des erreurs Inference Recommender](inference-recommender-troubleshooting.md)

# Obtention d’instances potentielles instantanées
<a name="inference-recommender-prospective"></a>

Inference Recommender peut également vous fournir une liste d'*instances potentielles, ou de types d'instances* susceptibles de convenir à votre modèle, sur la page de détails de votre modèle d' SageMaker IA. Inference Recommender effectue automatiquement une analyse comparative préliminaire par rapport à votre modèle afin que vous puissiez fournir les cinq principales instances potentielles. Comme il s'agit de recommandations préliminaires, nous vous recommandons d'exécuter d'autres tâches de recommandation d'instance pour obtenir des résultats plus précis.

Vous pouvez afficher la liste des instances potentielles de votre modèle par programmation à l'aide de l'[DescribeModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeModel.html)API, du SDK SageMaker Python ou de la SageMaker console AI.

**Note**  
Vous n'obtiendrez pas d'instances potentielles pour les modèles que vous avez créés dans SageMaker AI avant que cette fonctionnalité ne soit disponible.

Pour afficher les instances potentielles de votre modèle via la console, procédez comme suit :

1. Accédez à la SageMaker console à 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 **Modèles**.

1. Dans la liste des modèles, choisissez votre modèle.

Sur la page de détails de votre modèle, accédez à la section **Instances potentielles pour déployer le modèle**. La capture d’écran suivante montre cette section.

![\[Capture d’écran de la liste des instances potentielles sur la page de détails du modèle.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inf-rec-prospective.png)


Dans cette section, vous pouvez afficher les instances potentielles optimisées en termes de coût, de débit et de latence pour le déploiement du modèle, ainsi que des informations supplémentaires pour chaque type d’instance, telles que la taille de la mémoire, le nombre de CPU et de GPU et le coût par heure.

Si vous décidez d’analyser un exemple de données utiles et d’exécuter une tâche de recommandation d’inférence complète pour votre modèle, vous pouvez démarrer une tâche de recommandation d’inférence par défaut à partir de cette page. Pour démarrer une tâche par défaut via la console, procédez comme suit :

1. Sur la page de détails de votre modèle, dans la **section Instances potentielles pour déployer le modèle**, choisissez **Exécuter la tâche Inference Recommender**.

1. Dans la boîte de dialogue qui apparaît, pour le **compartiment S3 destiné à l’analyse comparative des données utiles**, entrez l’emplacement Amazon S3 où vous avez stocké un exemple de données utiles pour votre modèle.

1. Pour **Type de contenu de la charge utile**, entrez les types MIME pour vos données de charge utile.

1. (Facultatif) Dans la section **Compilation du modèle à l'aide de SageMaker Neo**, pour la **configuration de saisie** des données, entrez une forme de données au format dictionnaire.

1. Choisissez **Exécuter la tâche**.

Inference Recommender démarre la tâche, et vous pouvez consulter la tâche et ses résultats sur la page de liste des **recommandations d'inférence** de la console AI. SageMaker 

Si vous souhaitez exécuter une tâche avancée et effectuer des tests de charge personnalisés, ou si vous souhaitez configurer des réglages et des paramètres supplémentaires pour votre tâche, consultez [Exécuter un test de charge personnalisé](inference-recommender-load-test.md).

# 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).

# Obtention d’une recommandation d’inférence pour un point de terminaison existant
<a name="inference-recommender-existing-endpoint"></a>

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

Vous pouvez comparer et obtenir des recommandations d'inférence pour un point de terminaison SageMaker AI Inference existant afin de vous aider à améliorer les performances de votre point de terminaison. La procédure d'obtention de recommandations pour un point de terminaison SageMaker AI Inference existant est similaire à la procédure d'[obtention de recommandations d'inférence](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-instance-recommendation.html) sans point de terminaison. Il existe plusieurs exclusions de caractéristiques à prendre en compte lors de l’analyse comparative d’un point de terminaison existant :
+ Vous ne pouvez utiliser qu’un seul point de terminaison existant par tâche Inference Recommender.
+ Vous ne pouvez avoir qu’une seule variante sur votre point de terminaison.
+ Vous ne pouvez pas utiliser un point de terminaison qui active la mise à l’échelle automatique.
+ Cette fonctionnalité n’est prise en charge que pour l’[Inférence en temps réel](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html).
+ Cette fonction ne prend pas en charge [Real-Time Multi-Model Endpoints](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-model-endpoints.html) (Points de terminaison multi-modèles en temps réel).

**Avertissement**  
Nous vous déconseillons fortement d’exécuter une tâche Inference Recommender sur un point de terminaison de production qui gère le trafic réel. La charge synthétique lors de l’analyse comparative peut affecter votre point de terminaison de production et provoquer des limitations ou fournir des résultats d’évaluation inexacts. Nous vous recommandons d’utiliser un point de terminaison externe à la production ou de développement à des fins de comparaison. 

Les sections suivantes montrent comment utiliser Amazon SageMaker Inference Recommender pour créer une recommandation d'inférence pour un point de terminaison existant en fonction de votre type de modèle à l'aide du AWS SDK pour Python (Boto3) et du. AWS CLI

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

## Conditions préalables
<a name="inference-recommender-existing-endpoint-prerequisites"></a>

Si vous ne possédez pas encore de point de terminaison SageMaker AI Inference, vous pouvez soit [obtenir une recommandation d'inférence](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-instance-recommendation.html) sans point de terminaison, soit créer un point de terminaison d'inférence en temps réel en suivant les instructions de la section [Création de votre point de terminaison et déploiement de votre](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html) modèle.

## Création d’une tâche de recommandation d’inférence pour un point de terminaison existant
<a name="inference-recommender-existing-endpoint-create"></a>

Créez une recommandation d'inférence par programmation à l'aide de AWS SDK pour Python (Boto3), ou du. AWS CLI Spécifiez un nom de tâche pour votre recommandation d'inférence, le nom d'un point de terminaison SageMaker AI Inference existant, un ARN de AWS rôle IAM, une configuration d'entrée et l'ARN de votre package de modèles à partir du moment où vous avez enregistré votre modèle dans le registre des modèles.

------
#### [ 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 obtenir une 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 :
+ Donnez 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.
+ 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`.
+ L’ARN du package de modèle versionné que vous avez créé lorsque vous avez enregistré votre modèle auprès du registre de modèles. Définissez-le pour `ModelPackageVersionArn` dans le champ `InputConfig`.
+ Indiquez le nom d'un point de terminaison SageMaker AI Inference existant que vous souhaitez comparer dans Inference Recommender sur le terrain`Endpoints`. `InputConfig`

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), l’ARN du groupe de packages de modèle a été stocké dans une variable nommée `model_package_arn`.

```
# Create a low-level SageMaker service client.
import boto3
aws_region = '<region>'
sagemaker_client = boto3.client('sagemaker', region_name=aws_region) 

# Provide your model package ARN that was created when you registered your 
# model with Model Registry 
model_package_arn = '<model-package-arn>'

# Provide a unique job name for SageMaker Inference Recommender job
job_name = '<job-name>'

# 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/*>'
                                    
# Provide endpoint name for your endpoint that want to benchmark in Inference Recommender
endpoint_name = '<existing-endpoint-name>'

sagemaker_client.create_inference_recommendations_job(
    JobName = job_name,
    JobType = job_type,
    RoleArn = role_arn,
    InputConfig = {
        'ModelPackageVersionArn': model_package_arn,
        'Endpoints': [{'EndpointName': endpoint_name}]
    }
)
```

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 obtenir une recommandation de point de terminaison d’instance. Définissez le champ `job-type` sur `'Default'` pour les tâches de recommandation de point de terminaison d’instance. En outre, fournissez les éléments suivants :
+ Donnez 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.
+ 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`.
+ 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`.
+ Indiquez le nom d'un point de terminaison SageMaker AI Inference existant que vous souhaitez comparer dans Inference Recommender sur le terrain`Endpoints`. `input-config`

```
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/*>\",
        \"Endpoints\": [{\"EndpointName\": <endpoint_name>}]
        }"
```

------

## Obtention des résultats de votre tâche de recommandation d'inférence
<a name="inference-recommender-existing-endpoint-results"></a>

Vous pouvez collecter les résultats de votre tâche de recommandation d’inférence par programmation avec la même procédure que pour les tâches de recommandation d’inférence standard. Pour de plus amples informations, veuillez consulter [Obtention des résultats de votre tâche de recommandation d’inférence](instance-recommendation-results.md).

Lorsque vous obtenez les résultats d’une tâche de recommandation d’inférence pour un point de terminaison existant, vous devez recevoir une réponse JSON similaire à la suivante :

```
{
    "JobName": "job-name",
    "JobType": "Default",
    "JobArn": "arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id",
    "RoleArn": "iam-role-arn",
    "Status": "COMPLETED",
    "CreationTime": 1664922919.2,
    "LastModifiedTime": 1664924208.291,
    "InputConfig": {
        "ModelPackageVersionArn": "arn:aws:sagemaker:region:account-id:model-package/resource-id",
        "Endpoints": [
            {
                "EndpointName": "endpoint-name"
            }
        ]
    },
    "InferenceRecommendations": [
        {
            "Metrics": {
                "CostPerHour": 0.7360000014305115,
                "CostPerInference": 7.456940238625975e-06,
                "MaxInvocations": 1645,
                "ModelLatency": 171
            },
            "EndpointConfiguration": {
                "EndpointName": "sm-endpoint-name",
                "VariantName": "variant-name",
                "InstanceType": "ml.g4dn.xlarge",
                "InitialInstanceCount": 1
            },
            "ModelConfiguration": {
                "EnvironmentParameters": [
                    {
                        "Key": "TS_DEFAULT_WORKERS_PER_MODEL",
                        "ValueType": "string",
                        "Value": "4"
                    }
                ]
            }
        }
    ],
    "EndpointPerformances": [
        {
            "Metrics": {
                "MaxInvocations": 184,
                "ModelLatency": 1312
            },
            "EndpointConfiguration": {
                "EndpointName": "endpoint-name"
            }
        }
    ]
}
```

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 dernières heures de création et de modification.

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.

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.

Le dictionnaire imbriqué `EndpointPerformances` contient le nom de votre point de terminaison existant sur lequel la tâche de recommandation a été exécutée (`EndpointName`) et les métriques de performance de votre point de terminaison (`MaxInvocations` et `ModelLatency`).

# Arrêt de votre recommandation d’inférence
<a name="instance-recommendation-stop"></a>

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 l’API `StopInferenceRecommendationsJob` ou avec Studio Classic.

------
#### [ AWS SDK pour 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 AI console ]

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

1. Choisissez **Arrêter la tâche**.

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

------

# Recommandations compilées avec Neo
<a name="inference-recommender-neo-compilation"></a>

Dans Inference Recommender, vous pouvez compiler votre modèle avec Neo et obtenir des recommandations de points de terminaison pour votre modèle compilé. [SageMaker Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html) est un service qui permet d'optimiser votre modèle pour une plate-forme matérielle cible (c'est-à-dire un type d'instance ou un environnement spécifique). L’optimisation d’un modèle avec Neo peut améliorer les performances de votre modèle hébergé.

Pour les conteneurs et les frameworks pris en charge par Neo, Inference Recommender suggère automatiquement des recommandations optimisées par Neo. Pour être éligible à la compilation Neo, votre entrée doit remplir les conditions préalables suivantes :
+ Vous utilisez un [DLC](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/what-is-dlc.html) ou un XGBoost conteneur appartenant à l' SageMaker IA.
+ Vous utilisez une version de framework prise en charge par Neo. Pour les versions du framework prises en charge par Neo, consultez [Instances cloud](neo-supported-cloud.md#neo-supported-cloud-instances) la documentation de SageMaker Neo.
+ Neo exige que vous fournissiez une forme de données d’entrée correcte pour votre modèle. Vous pouvez spécifier cette forme de données en tant que `[DataInputConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelInput.html#sagemaker-Type-ModelInput-DataInputConfig)` dans `[InferenceSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-InferenceSpecification)` lorsque vous créez un package de modèle. Pour plus d'informations sur les formes de données correctes pour chaque framework, voir [Préparer le modèle pour la compilation](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-compilation-preparing-model.html) dans la documentation SageMaker Neo.

  L’exemple suivant montre comment spécifier le champ `DataInputConfig` dans `InferenceSpecification`, où `data_input_configuration` est une variable qui contient la forme de données dans un format dictionnaire (par exemple, `{'input':[1,1024,1024,3]}`).

  ```
  "InferenceSpecification": {
          "Containers": [
              {
                  "Image": dlc_uri,
                  "Framework": framework.upper(),
                  "FrameworkVersion": framework_version,
                  "NearestModelName": model_name,
                  "ModelInput": {"DataInputConfig": data_input_configuration},
              }
          ],
          "SupportedContentTypes": input_mime_types,  # required, must be non-null
          "SupportedResponseMIMETypes": [],
          "SupportedRealtimeInferenceInstanceTypes": supported_realtime_inference_types,  # optional
      }
  ```

Si ces conditions sont remplies dans votre demande, Inference Recommender exécute des scénarios pour les versions compilées et non compilées de votre modèle, vous offrant ainsi plusieurs combinaisons de recommandations parmi lesquelles choisir. Vous pouvez comparer les configurations des versions compilées et non compilées de la même recommandation d’inférence et déterminer celle qui convient le mieux à votre cas d’utilisation. Les recommandations sont classées en fonction de leur coût par inférence.

Pour obtenir les recommandations de compilation Neo, vous n’avez pas à effectuer de configuration supplémentaire en plus de veiller à ce que votre entrée répond aux exigences qui précèdent. Inference Recommender exécute automatiquement la compilation Neo sur votre modèle si votre entrée répond aux exigences et vous recevez une réponse incluant les recommandations Neo.

Si vous rencontrez des erreurs au cours de la compilation Neo, consultez [Résolution des erreurs de compilation Neo](neo-troubleshooting-compilation.md).

Le tableau suivant est un exemple de réponse que vous pouvez obtenir à partir d’une tâche Inference Recommender, qui inclut des recommandations pour les modèles compilés. Si le champ `InferenceSpecificationName` a pour valeur `None`, la recommandation est un modèle non compilé. La dernière ligne, dans laquelle se trouve la valeur du **InferenceSpecificationName**champ`neo-00011122-2333-4445-5566-677788899900`, correspond à un modèle compilé avec Neo. La valeur du champ est le nom de la tâche Neo utilisée pour compiler et optimiser votre modèle.


| EndpointName | InstanceType | InitialInstanceCount | EnvironmentParameters | CostPerHour | CostPerInference | MaxInvocations | ModelLatency | InferenceSpecificationName | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| sm-epc-example-000111222 | ml.c5.9xlarge | 1 | [] | 1,836 | 9,15E-07 | 33456 | 7 | Aucune | 
| sm-epc-example-111222333 | ml.c5.2xlarge | 1 | [] | 0,408 | 2,11E-07 | 32211 | 21 | Aucune | 
| sm-epc-example-222333444 | ml.c5.xlarge | 1 | [] | 0,204 | 1,86E-07 | 18276 | 92 | Aucune | 
| sm-epc-example-333444555 | ml.c5.xlarge | 1 | [] | 0,204 | 1,60E-07 | 21286 | 42 | neo-00011122-2333-4445-5566-677788899900 | 

## Mise en route
<a name="inference-recommender-neo-compilation-get-started"></a>

Les étapes générales pour créer une tâche Inference Recommender qui inclut des recommandations optimisées par Neo sont les suivantes :
+ Préparez votre modèle de machine learning pour la compilation. Pour plus d’informations, consultez [Préparation d’un modèle pour la compilation](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-compilation-preparing-model.html) dans la documentation sur Neo.
+ Empaquetez votre modèle dans une archive de modèle (fichier `.tar.gz`).
+ Créez un exemple d’archive de données utiles.
+ Enregistrez votre modèle dans le SageMaker Model Registry.
+ Créez une tâche Inference Recommender.
+ Affichez les résultats de la tâche Inference Recommender et choisissez une configuration.
+ Déboguez les échecs de compilation, le cas échéant Pour plus d’informations, consultez [Résolution des erreurs de compilation Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html).

Pour un exemple illustrant le flux de travail précédent et expliquant comment obtenir des recommandations optimisées pour Neo XGBoost, consultez l'[exemple de bloc-notes](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-inference-recommender/xgboost/xgboost-inference-recommender.ipynb) suivant. Pour un exemple montrant comment obtenir des recommandations optimisées pour Neo à l'aide de Neo TensorFlow, consultez l'[exemple de bloc-notes](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-inference-recommender/inference-recommender.ipynb) suivant.

# Résultats des recommandations
<a name="inference-recommender-interpret-results"></a>

Le résultat de chaque tâche Inference Recommender inclut `InstanceType`, `InitialInstanceCount` et `EnvironmentParameters`, qui sont des paramètres de variables d’environnement ajustés pour votre conteneur afin d’améliorer sa latence et son débit. Les résultats incluent également des métriques de performances et de coûts telles que `MaxInvocations`, `ModelLatency`, `CostPerHour`, `CostPerInference`, `CpuUtilization` et `MemoryUtilization`.

Dans le tableau ci-dessous, nous fournissons une description de ces métriques. Ces métriques peuvent vous aider à affiner votre recherche pour trouver la configuration de point de terminaison la mieux adaptée à votre cas d’utilisation. Par exemple, si votre motivation est la performance globale en termes de prix en mettant l’accent sur le débit, vous devez vous concentrer sur `CostPerInference`. 


| Métrique | Description | Cas d’utilisation | 
| --- | --- | --- | 
|  `ModelLatency`  |  Intervalle de temps nécessaire à un modèle pour répondre tel qu'il est vu par l' SageMaker IA. Cet intervalle 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. Unités : millisecondes  | Charges de travail sensibles à la latence, telles que la diffusion d’annonces et les diagnostics médicaux | 
|  `MaximumInvocations`  |  Le nombre maximum de demandes `InvokeEndpoint` envoyées à un point de terminaison de modèle en une minute. Unités : aucune  | Charges de travail axées sur le débit, telles que le traitement vidéo ou l’inférence par lots | 
|  `CostPerHour`  |  Le coût horaire estimé pour votre point de terminaison en temps réel. Unités : dollars américains  | Charges de travail sensibles aux coûts sans délais de latence | 
|  `CostPerInference`  |  Le coût horaire estimé par appel d’inférence pour votre point de terminaison en temps réel. Unités : dollars américains  | Optimiser le rapport prix-performance global en mettant l’accent sur le débit | 
|  `CpuUtilization`  |  Utilisation prévue du processeur pour un nombre maximal d’appels par minute pour l’instance de point de terminaison. Unités : pourcentage  | Comprendre l’état de santé de l’instance lors de l’analyse comparative en ayant une visibilité sur l’utilisation du processeur principal de l’instance | 
|  `MemoryUtilization`  |  Utilisation prévue de la mémoire pour un nombre maximal d’appels par minute pour l’instance de point de terminaison. Unités : pourcentage  | Comprendre l’état de santé de l’instance lors de l’analyse comparative en ayant une visibilité sur l’utilisation de la mémoire principale de l’instance | 

Dans certains cas, vous souhaiterez peut-être explorer d'autres [métriques SageMaker AI Endpoint Invocation](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html#cloudwatch-metrics-endpoint-invocation), telles que`CPUUtilization`. Les résultats de chaque tâche Inference Recommender incluent les noms des points de terminaison générés lors du test de charge. Vous pouvez l'utiliser CloudWatch pour consulter les journaux de ces points de terminaison même après leur suppression.

L'image suivante est un exemple de CloudWatch mesures et de graphiques que vous pouvez consulter pour un seul point de terminaison à partir du résultat de vos recommandations. Le résultat de cette recommandation provient d’une tâche par défaut. Pour interpréter les valeurs scalaires à partir des résultats des recommandations, elles sont basées sur le moment où le graphe Invocations commence à se stabiliser pour la première fois. Par exemple, la valeur `ModelLatency` signalée se trouve au début du plateau autour de `03:00:31`.

![\[Graphiques pour CloudWatch les métriques.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/inference-recommender-cw-metrics.png)


Pour une description complète des CloudWatch métriques utilisées dans les graphiques précédents, voir [SageMaker AI Endpoint Invocation metrics](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html#cloudwatch-metrics-endpoint-invocation).

Vous pouvez également consulter les métriques de performances telles que `ClientInvocations` et `NumberOfUsers` publiées par Inference Recommender dans l’espace de noms `/aws/sagemaker/InferenceRecommendationsJobs`. Pour obtenir la liste complète des métriques et des descriptions publiées par Inference Recommender, consultez [SageMaker Indicateurs des emplois Inference Recommender](monitoring-cloudwatch.md#cloudwatch-metrics-inference-recommender).

Consultez le bloc-notes [Amazon SageMaker Inference Recommender - CloudWatch Metrics](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-inference-recommender/tensorflow-cloudwatch/tf-cloudwatch-inference-recommender.ipynb) Jupyter dans le référentiel [amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples)Github pour découvrir comment utiliser le AWS SDK pour Python (Boto3) afin d'explorer les métriques de vos points de terminaison. CloudWatch 

# Obtention de recommandations en matière de politique de mise à l’échelle automatique
<a name="inference-recommender-autoscaling"></a>

Avec Amazon SageMaker Inference Recommender, vous pouvez obtenir des recommandations concernant les politiques de mise à l'échelle automatique de votre point de terminaison d' SageMaker IA en fonction de votre schéma de trafic prévu. Si vous avez déjà effectué une tâche de recommandation d’inférence, vous pouvez fournir les détails de la tâche afin d’obtenir une recommandation pour une politique de mise à l’échelle automatique que vous pouvez appliquer à votre point de terminaison.

Inference Recommender compare différentes valeurs pour chaque métrique afin de déterminer la configuration de mise à l’échelle automatique idéale pour votre point de terminaison. La recommandation de mise à l’échelle automatique renvoie une politique de mise à l’échelle automatique recommandée pour chaque métrique définie dans votre tâche de recommandation d’inférence. Vous pouvez enregistrer les politiques et les appliquer à votre terminal à l'aide de l'[PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)API.

Pour commencer, consultez les conditions préalables suivantes.

## Conditions préalables
<a name="inference-recommender-autoscaling-prereqs"></a>

Avant de commencer, vous devez avoir terminé avec succès une tâche de recommandation d’inférence. Dans la section suivante, vous pouvez fournir un ID de recommandation d'inférence ou le nom d'un point de terminaison d' SageMaker IA qui a été comparé lors d'une tâche de recommandation d'inférence.

Pour récupérer l'ID de votre tâche de recommandation ou le nom de votre point de terminaison, vous pouvez soit consulter les détails de votre tâche de recommandation d'inférence dans la console SageMaker AI, soit utiliser les `EndpointName` champs `RecommendationId` ou renvoyés par l'[DescribeInferenceRecommendationsJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeInferenceRecommendationsJob.html)API.

## Création d’une recommandation de configuration de mise à l’échelle automatique
<a name="inference-recommender-autoscaling-create"></a>

Pour créer une politique de recommandation de mise à l’échelle automatique, vous pouvez utiliser le kit AWS SDK pour Python (Boto3).

L'exemple suivant montre les champs de l'[ GetScalingConfigurationRecommendation](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_GetScalingConfigurationRecommendation.html)API. Utilisez les champs suivants lorsque vous appelez l’API :
+ `InferenceRecommendationsJobName` : entrez le nom de votre tâche de recommandation d’inférence.
+ `RecommendationId` : entrez l’ID d’une recommandation d’inférence issue d’une tâche de recommandation. Ceci est facultatif si vous avez spécifié le champ `EndpointName`.
+ `EndpointName` : entrez le nom d’un point de terminaison qui a été comparé lors d’une tâche de recommandation d’inférence. Ceci est facultatif si vous avez spécifié le champ `RecommendationId`.
+ `TargetCpuUtilizationPerCore` : (facultatif) entrez une valeur en pourcentage du taux d’utilisation que vous souhaitez qu’une instance de votre point de terminaison utilise avant la mise à l’échelle automatique. La valeur par défaut si vous ne spécifiez pas ce champ est de 50 %.
+ `ScalingPolicyObjective` : (facultatif) objet dans lequel vous spécifiez le modèle de trafic prévu.
  + `MinInvocationsPerMinute` : (facultatif) nombre minimum de demandes attendues vers votre point de terminaison par minute.
  + `MaxInvocationsPerMinute` : (facultatif) nombre maximum de demandes attendues vers votre point de terminaison par minute.

```
{
    "InferenceRecommendationsJobName": "string", // Required
    "RecommendationId": "string", // Optional, provide one of RecommendationId or EndpointName
    "EndpointName": "string", // Optional, provide one of RecommendationId or EndpointName
    "TargetCpuUtilizationPerCore": number, // Optional
    "ScalingPolicyObjective": { // Optional
        "MinInvocationsPerMinute": number,
        "MaxInvocationsPerMinute": number
    }
}
```

Après avoir soumis votre demande, vous recevrez une réponse contenant des politiques de mise à l’échelle automatique définies pour chaque métrique. Consultez la section suivante pour plus d’informations sur l’interprétation de la réponse.

## Révision de vos résultats de recommandation de configuration de mise à l’échelle automatique
<a name="inference-recommender-autoscaling-review"></a>

L'exemple suivant montre la réponse de l'[ GetScalingConfigurationRecommendation](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_GetScalingConfigurationRecommendation.html)API :

```
{
    "InferenceRecommendationsJobName": "string", 
    "RecommendationId": "string", // One of RecommendationId or EndpointName is shown
    "EndpointName": "string", 
    "TargetUtilizationPercentage": Integer,
    "ScalingPolicyObjective": { 
        "MinInvocationsPerMinute": Integer, 
        "MaxInvocationsPerMinute": Integer
    },
    "Metric": {
        "ModelLatency": Integer,
        "InvocationsPerInstance": Integer
    },
    "DynamicScalingConfiguration": {
        "MinCapacity": number,
        "MaxCapacity": number, 
        "ScaleInCooldown": number,
        "ScaleOutCooldown": number,
        "ScalingPolicies": [
            {
                "TargetTracking": {
                    "MetricSpecification": {
                        "Predefined" {
                            "PredefinedMetricType": "string"
                         },
                        "Customized": {
                            "MetricName": "string",
                            "Namespace": "string",
                            "Statistic": "string"
                         }
                    },
                    "TargetValue": Double
                } 
            }
        ]
    }
}
```

`InferenceRecommendationsJobName`, `RecommendationID` ou `EndpointName`, `TargetCpuUtilizationPerCore` et les champs d’objet `ScalingPolicyObjective` sont copiés à partir de votre demande initiale.

L’objet `Metric` répertorie les métriques qui ont été comparées dans votre tâche de recommandation d’inférence, ainsi qu’un calcul des valeurs pour chaque métrique lorsque l’utilisation de l’instance serait identique à la valeur `TargetCpuUtilizationPerCore`. Cela est utile pour anticiper les métriques de performance de votre point de terminaison lors de sa mise à l’échelle horizontale et de sa montée en puissance conformément à la politique de mise à l’échelle automatique recommandée. Par exemple, déterminez si le taux d’utilisation de votre instance était de 50 % dans votre tâche de recommandation d’inférence alors que votre valeur `InvocationsPerInstance` était à l’origine `4`. Si vous spécifiez la valeur `TargetCpuUtilizationPerCore` sur 100 % dans votre demande de recommandation de mise à l’échelle automatique, la valeur de métrique `InvocationsPerInstance` renvoyée dans la réponse est `2`, car vous avez prévu d’allouer deux fois plus d’utilisation des instances.

L'`DynamicScalingConfiguration`objet renvoie les valeurs que vous devez spécifier [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html#autoscaling-PutScalingPolicy-request-TargetTrackingScalingPolicyConfiguration)lorsque vous appelez l'[PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html)API. Cela inclut les valeurs de capacité minimale et maximale recommandées, les temps de stabilisation de réduction horizontale et d’augmentation horizontale, ainsi que l’objet `ScalingPolicies`, qui contient la `TargetValue` recommandée que vous devez spécifier pour chaque métrique.

# Exécuter un test de charge personnalisé
<a name="inference-recommender-load-test"></a>

Les tests de charge Amazon SageMaker Inference Recommender permettent d'effectuer des tests de performance approfondis en fonction des exigences de production en matière de latence et de débit, des modèles de trafic personnalisés et des points de terminaison sans serveur ou des instances en temps réel (jusqu'à 10) que vous sélectionnez.

Les sections suivantes montrent comment créer, décrire et arrêter un test de charge par programmation à l'aide du AWS SDK pour Python (Boto3) et AWS CLI, ou de manière interactive à l'aide d'Amazon SageMaker Studio Classic ou de la SageMaker console AI.

## Création d’une tâche de test de charge
<a name="load-test-create"></a>

Créez un test de charge par programmation à l'aide de AWS SDK pour Python (Boto3), avec ou de manière interactive à l' AWS CLI aide de Studio Classic ou de la SageMaker console AI. Comme pour les recommandations d'inférence d'Inference Recommender, spécifiez un nom de tâche pour votre test de charge, un ARN de rôle AWS IAM, une configuration d'entrée et l'ARN de votre package de modèles à partir du moment où vous avez enregistré votre modèle dans le registre des modèles. Les tests de charge nécessitent que vous spécifiiez également un modèle de trafic et des conditions d’arrêt.

------
#### [ AWS SDK pour Python (Boto3) ]

Utilisez l’API `CreateInferenceRecommendationsJob` pour créer un test de charge d’Inference Recommender. Spécifiez `Advanced` pour `JobType` et fournissez les éléments suivants : 
+ Un nom de tâche pour votre test de charge (`JobName`). Le nom du poste doit être unique dans votre AWS région et dans votre AWS compte.
+ 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 dictionnaire de configuration des points de terminaison (`InputConfig`) dans lequel spécifiez les éléments suivants :
  + Pour `TrafficPattern`, spécifiez le modèle de trafic par phases ou escaliers. Avec le modèle de trafic par phases, les nouveaux utilisateurs apparaissent chaque minute au rythme que vous spécifiez. Avec le modèle de trafic par escaliers, les nouveaux utilisateurs apparaissent à intervalles réguliers (ou par *étapes*) au rythme que vous spécifiez. Sélectionnez l’une des méthodes suivantes :
    + Pour `TrafficType`, spécifiez `PHASES`. Ensuite, pour le tableau `Phases`, spécifiez le `InitialNumberOfUsers` (le nombre d’utilisateurs simultanés avec lesquels commencer, avec un minimum de 1 et un maximum de 3), `SpawnRate` (le nombre d’utilisateurs à faire apparaître en une minute pour une phase spécifique du test de charge, avec un minimum de 0 et un maximum de 3) et `DurationInSeconds` (la durée de la phase de trafic, avec un minimum de 120 et un maximum de 3 600).
    + Pour `TrafficType`, spécifiez `STAIRS`. Ensuite, pour le tableau `Stairs`, spécifiez la `DurationInSeconds` (la durée de la phase de trafic, avec un minimum de 120 et un maximum de 3 600), `NumberOfSteps` (le nombre d’intervalles utilisés pendant la phase) et `UsersPerStep` (le nombre d’utilisateurs ajoutés pendant chaque intervalle). Notez que la longueur de chaque étape est la valeur de `DurationInSeconds / NumberOfSteps`. Par exemple, si votre `DurationInSeconds` est `600` et que vous spécifiez `5` étapes, chaque étape dure 120 secondes.
**Note**  
Un utilisateur est défini comme un acteur généré par le système qui s’exécute en boucle et appelle des demandes vers un point de terminaison dans le cadre d’Inference Recommender. Pour un XGBoost conteneur classique exécuté sur une `ml.c5.large` instance, les points de terminaison peuvent atteindre 30 000 appels par minute (500 tps) avec seulement 15 à 20 utilisateurs.
  + Pour `ResourceLimit`, spécifiez `MaxNumberOfTests` (le nombre maximum de tests de charge d’analyse comparative pour une tâche Inference Recommender, avec un minimum de 1 et un maximum de 10) et `MaxParallelOfTests` (le nombre maximum de tests de charge d’analyse comparative parallèle pour une tâche Inference Recommender, avec un minimum de 1 et un maximum de 10).
  + Pour `EndpointConfigurations`, vous pouvez spécifier l’un des éléments suivants :
    + Pour le champ `InstanceType`, spécifiez le type d’instance sur lequel vous souhaitez exécuter vos tests de charge.
    + La `ServerlessConfig`, dans laquelle vous spécifiez vos valeurs idéales pour `MaxConcurrency` et `MemorySizeInMB` pour un point de terminaison sans serveur. Pour plus d’informations, consultez la [documentation Inférence sans serveur](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html).
+ Un dictionnaire des conditions d’arrêt (`StoppingConditions`), dans lequel, si l’une des conditions est remplie, la tâche Inference Recommender s’arrête. Pour cet exemple, spécifiez les champs suivants dans le dictionnaire :
  + Pour `MaxInvocations`, spécifiez le nombre maximum de demandes par minute attendues pour le point de terminaison, avec un minimum de 1 et un maximum de 30 000.
  + Pour `ModelLatencyThresholds`, spécifiez `Percentile` (le seuil percentile de latence du modèle) et `ValueInMilliseconds` (la valeur du percentile de latence du modèle en millisecondes).
  + (Facultatif) Pour `FlatInvocations`, vous pouvez spécifier si vous souhaitez poursuivre le test de charge lorsque le taux de TPS (invocations par minute) s’aplatit. Un taux de TPS aplati signifie généralement que le point de terminaison a atteint sa capacité maximale. Toutefois, vous souhaiterez peut-être continuer à surveiller le point de terminaison dans des conditions de pleine capacité. Pour continuer le test de charge lorsque cela se produit, spécifiez cette valeur comme `Continue`. Sinon, la valeur par défaut est `Stop`.

```
# Create a low-level SageMaker service client.
import boto3
aws_region=<INSERT>
sagemaker_client=boto3.client('sagemaker', region=aws_region) 
                
# Provide a name to your recommendation based on load testing
load_test_job_name="<INSERT>"

# Provide the name of the sagemaker instance type
instance_type="<INSERT>"

# Provide the IAM Role that gives SageMaker permission to access AWS services 
role_arn='arn:aws:iam::<account>:role/*'

# Provide your model package ARN that was created when you registered your 
# model with Model Registry
model_package_arn='arn:aws:sagemaker:<region>:<account>:role/*'

sagemaker_client.create_inference_recommendations_job(
                        JobName=load_test_job_name,
                        JobType="Advanced",
                        RoleArn=role_arn,
                        InputConfig={
                            'ModelPackageVersionArn': model_package_arn,
                            "JobDurationInSeconds": 7200,
                            'TrafficPattern' : {
                                # Replace PHASES with STAIRS to use the stairs traffic pattern
                                'TrafficType': 'PHASES',
                                'Phases': [
                                    {
                                        'InitialNumberOfUsers': 1,
                                        'SpawnRate': 1,
                                        'DurationInSeconds': 120
                                    },
                                    {
                                        'InitialNumberOfUsers': 1,
                                        'SpawnRate': 1,
                                        'DurationInSeconds': 120
                                    }
                                ]
                                # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern
                                # 'Stairs' : {
                                #   'DurationInSeconds': 240,
                                #   'NumberOfSteps': 2,
                                #   'UsersPerStep': 2
                                # }
                            },
                            'ResourceLimit': {
                                        'MaxNumberOfTests': 10,
                                        'MaxParallelOfTests': 3
                                },
                            "EndpointConfigurations" : [{
                                        'InstanceType': 'ml.c5.xlarge'
                                    },
                                    {
                                        'InstanceType': 'ml.m5.xlarge'
                                    },
                                    {
                                        'InstanceType': 'ml.r5.xlarge'
                                    }]
                                    # Uncomment the ServerlessConfig and comment out the InstanceType field if you want recommendations for a serverless endpoint
                                    # "ServerlessConfig": {
                                    #     "MaxConcurrency": value, 
                                    #     "MemorySizeInMB": value 
                                    # }
                        },
                        StoppingConditions={
                            'MaxInvocations': 1000,
                            'ModelLatencyThresholds':[{
                                'Percentile': 'P95', 
                                'ValueInMilliseconds': 100
                            }],
                            # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 
                            'FlatInvocations': 'Stop'
                        }
                )
```

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`CreateInferenceRecommendationsJob`.

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

Utilisez l’API `create-inference-recommendations-job` pour créer un test de charge d’Inference Recommender. Spécifiez `Advanced` pour `JobType` et fournissez les éléments suivants : 
+ Un nom de tâche pour votre test de charge (`job-name`). Le nom du poste doit être unique dans votre AWS région et dans votre AWS compte.
+ 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 `role-arn`.
+ Un dictionnaire de configuration des points de terminaison (`input-config`) dans lequel spécifiez les éléments suivants :
  + Pour `TrafficPattern`, spécifiez le modèle de trafic par phases ou escaliers. Avec le modèle de trafic par phases, les nouveaux utilisateurs apparaissent chaque minute au rythme que vous spécifiez. Avec le modèle de trafic par escaliers, les nouveaux utilisateurs apparaissent à intervalles réguliers (ou par *étapes*) au rythme que vous spécifiez. Sélectionnez l’une des méthodes suivantes :
    + Pour `TrafficType`, spécifiez `PHASES`. Ensuite, pour le tableau `Phases`, spécifiez le `InitialNumberOfUsers` (le nombre d’utilisateurs simultanés avec lesquels commencer, avec un minimum de 1 et un maximum de 3), `SpawnRate` (le nombre d’utilisateurs à faire apparaître en une minute pour une phase spécifique du test de charge, avec un minimum de 0 et un maximum de 3) et `DurationInSeconds` (la durée de la phase de trafic, avec un minimum de 120 et un maximum de 3 600).
    + Pour `TrafficType`, spécifiez `STAIRS`. Ensuite, pour le tableau `Stairs`, spécifiez la `DurationInSeconds` (la durée de la phase de trafic, avec un minimum de 120 et un maximum de 3 600), `NumberOfSteps` (le nombre d’intervalles utilisés pendant la phase) et `UsersPerStep` (le nombre d’utilisateurs ajoutés pendant chaque intervalle). Notez que la longueur de chaque étape est la valeur de `DurationInSeconds / NumberOfSteps`. Par exemple, si votre `DurationInSeconds` est `600` et que vous spécifiez `5` étapes, chaque étape dure 120 secondes.
**Note**  
Un utilisateur est défini comme un acteur généré par le système qui s’exécute en boucle et appelle des demandes vers un point de terminaison dans le cadre d’Inference Recommender. Pour un XGBoost conteneur classique exécuté sur une `ml.c5.large` instance, les points de terminaison peuvent atteindre 30 000 appels par minute (500 tps) avec seulement 15 à 20 utilisateurs.
  + Pour `ResourceLimit`, spécifiez `MaxNumberOfTests` (le nombre maximum de tests de charge d’analyse comparative pour une tâche Inference Recommender, avec un minimum de 1 et un maximum de 10) et `MaxParallelOfTests` (le nombre maximum de tests de charge d’analyse comparative parallèle pour une tâche Inference Recommender, avec un minimum de 1 et un maximum de 10).
  + Pour `EndpointConfigurations`, vous pouvez spécifier l’un des éléments suivants :
    + Pour le champ `InstanceType`, spécifiez le type d’instance sur lequel vous souhaitez exécuter vos tests de charge.
    + La `ServerlessConfig`, dans laquelle vous spécifiez vos valeurs idéales pour `MaxConcurrency` et `MemorySizeInMB` pour un point de terminaison sans serveur.
+ Un dictionnaire des conditions d’arrêt (`stopping-conditions`), dans lequel, si l’une des conditions est remplie, la tâche Inference Recommender s’arrête. Pour cet exemple, spécifiez les champs suivants dans le dictionnaire :
  + Pour `MaxInvocations`, spécifiez le nombre maximum de demandes par minute attendues pour le point de terminaison, avec un minimum de 1 et un maximum de 30 000.
  + Pour `ModelLatencyThresholds`, spécifiez `Percentile` (le seuil percentile de latence du modèle) et `ValueInMilliseconds` (la valeur du percentile de latence du modèle en millisecondes).
  + (Facultatif) Pour `FlatInvocations`, vous pouvez spécifier si vous souhaitez poursuivre le test de charge lorsque le taux de TPS (invocations par minute) s’aplatit. Un taux de TPS aplati signifie généralement que le point de terminaison a atteint sa capacité maximale. Toutefois, vous souhaiterez peut-être continuer à surveiller le point de terminaison dans des conditions de pleine capacité. Pour continuer le test de charge lorsque cela se produit, spécifiez cette valeur comme `Continue`. Sinon, la valeur par défaut est `Stop`.

```
aws sagemaker create-inference-recommendations-job\
    --region <region>\
    --job-name <job-name>\
    --job-type ADVANCED\
    --role-arn arn:aws:iam::<account>:role/*\
    --input-config \"{
        \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region>:<account>:role/*\",
        \"JobDurationInSeconds\": 7200,                                
        \"TrafficPattern\" : {
                # Replace PHASES with STAIRS to use the stairs traffic pattern
                \"TrafficType\": \"PHASES\",
                \"Phases\": [
                    {
                        \"InitialNumberOfUsers\": 1,
                        \"SpawnRate\": 60,
                        \"DurationInSeconds\": 300
                    }
                ]
                # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern
                # 'Stairs' : {
                #   'DurationInSeconds': 240,
                #   'NumberOfSteps': 2,
                #   'UsersPerStep': 2
                # }
            },
            \"ResourceLimit\": {
                \"MaxNumberOfTests\": 10,
                \"MaxParallelOfTests\": 3
            },
            \"EndpointConfigurations\" : [
                {
                    \"InstanceType\": \"ml.c5.xlarge\"
                },
                {
                    \"InstanceType\": \"ml.m5.xlarge\"
                },
                {
                    \"InstanceType\": \"ml.r5.xlarge\"
                }
                # Use the ServerlessConfig and leave out the InstanceType fields if you want recommendations for a serverless endpoint
                # \"ServerlessConfig\": {
                #     \"MaxConcurrency\": value, 
                #     \"MemorySizeInMB\": value 
                # }
            ]
        }\"
    --stopping-conditions \"{
        \"MaxInvocations\": 1000,
        \"ModelLatencyThresholds\":[
                {
                    \"Percentile\": \"P95\", 
                    \"ValueInMilliseconds\": 100
                }
        ],
        # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 
        \"FlatInvocations\": \"Stop\"
    }\"
```

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

Créez un test de charge avec 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 **Déploiements**.

1. Sélectionnez **Inference Recommender** dans la liste déroulante.

1. Choisissez **Créer une tâche Inference Recommender**. Un nouvel onglet intitulé **Créer une tâche Inference Recommender** s’ouvre.

1. Sélectionnez le nom de votre groupe de modèles dans le champ **Groupe 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 une version de modèle dans le champ déroulant **Version de modèle**.

1. Sélectionnez **Continuer**.

1. Fournissez un nom pour la tâche dans le champ **Nom**.

1. (Facultatif) Fournissez une description de votre tâche dans le champ **Description**.

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, ou vous pouvez laisser Studio Classic créer un rôle pour vous.

1. Sélectionnez **Conditions d’arrêt** pour développer les champs de saisie disponibles. Fournissez un jeu de conditions pour arrêter une recommandation de déploiement. 

   1. Spécifiez le nombre maximal de demandes par minute attendues pour le point de terminaison dans le champ **Nombre d’appels max. par minute**.

   1. Spécifiez le seuil de latence du modèle en microsecondes dans le champ **Seuil de latence du modèle**. Le champ **Seuil de latence du modèle** décrit l’intervalle de temps nécessaire à un modèle pour répondre, tel qu’il est vu dans Inference Recommender. L’intervalle comprend le temps de communication local nécessaire pour envoyer la demande et récupérer la réponse du conteneur modèle et le temps nécessaire pour terminer l’inférence dans le conteneur.

1. Sélectionnez **Modèle de trafic** pour développer les champs de saisie disponibles.

   1. Définissez le nombre initial d’utilisateurs virtuels en spécifiant un nombre entier dans le champ **Nombre initial d’utilisateurs**.

   1. Fournissez un nombre entier pour le champ **Taux de génération**. Le taux d’apparition définit le nombre d’utilisateurs créés par seconde.

   1. Définissez la durée de la phase en secondes en spécifiant un nombre entier dans le champ **Durée**.

   1. (Facultatif) Ajoutez des modèles de trafic supplémentaires. Pour ce faire, sélectionnez **Ajouter**.

1. Sélectionnez le paramètre **Supplémentaire** pour afficher le champ **Durée maximale du test**. Spécifiez (en secondes) la durée maximale qu’un test peut prendre pendant une tâche. Les nouvelles tâches ne sont pas planifiées après la durée définie. Cela permet de garantir que les tâches en cours ne sont pas arrêtés et que vous ne visualisez que les tâches terminées.

1. Sélectionnez **Continuer**.

1. Sélectionnez **Instances sélectionnées**.

1. Dans le champ **Instances pour analyse comparative**, sélectionnez **Ajouter des instances à tester**. Sélectionnez jusqu’à 10 instances pour Inference Recommender à utiliser pour les tests de charge.

1. Sélectionnez **Paramètres supplémentaires**.

   1. Fournissez un nombre entier qui définit une limite supérieure du nombre de tests qu’une tâche peut effectuer pour le champ **Nombre max. de tests**. Notez que chaque configuration de point de terminaison entraîne un nouveau test de charge.

   1. Indiquez un nombre entier pour le champ de test **Max. parallèle**. Ce paramètre définit une limite supérieure du nombre de tests de charge pouvant s’exécuter en parallèle.

1. Sélectionnez **Soumettre**.

   Le test de charge peut durer jusqu’à 2 heures.
**Avertissement**  
Ne fermez pas cet onglet. Si vous fermez cet onglet, vous annulez la tâche de test de charge d’Inference Recommender.

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

Créez un test de charge personnalisé 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 avancée**.

   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. Pour **le rôle 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 de la charge utile**, entrez les types MIME pour votre exemple de données de charge utile.

   1. Pour **Modèle de trafic**, configurez les phases du test de charge en procédant comme suit :

      1. Pour **Nombre initial d’utilisateurs**, spécifiez le nombre d’utilisateurs simultanés avec lesquels vous souhaitez commencer (avec un minimum de 1 et un maximum de 3).

      1. Pour **Taux d’apparition**, spécifiez le nombre d’utilisateurs à faire apparaître en une minute pour la phase (avec un minimum de 0 et un maximum de 3).

      1. Pour **Durée (secondes)**, spécifiez la durée de la phase de trafic en secondes (avec un minimum de 120 et un maximum de 3 600).

   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. Pour **Sélectionner des instances à des fins de comparaison**, vous pouvez sélectionner jusqu’à 8 types d’instances que vous souhaitez comparer.

   1. (Facultatif) Pour **Plages de paramètres d’environnement**, vous pouvez spécifier des paramètres d’environnement qui permettent d’optimiser votre modèle. Spécifiez les paramètres sous forme de paires **Clé** et **Valeur**.

   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 **Nombre maximal de tests**, entrez le nombre de tests que vous souhaitez exécuter pendant la tâche de recommandation.

   1. (Facultatif) Pour **Nombre maximal de tests parallèles**, entrez le nombre maximal de tests parallèles que vous souhaitez exécuter pendant la tâche de recommandation.

   1. 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. 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. 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 de vos résultats de test de charge
<a name="load-test-describe"></a>

Vous pouvez collecter des métriques par programmation pour tous les tests de charge une fois que ceux-ci sont effectués avec AWS SDK pour Python (Boto3) Studio Classic ou la console SageMaker AI. AWS CLI

------
#### [ AWS SDK pour Python (Boto3) ]

Collectez des métriques avec l’API `DescribeInferenceRecommendationsJob`. Spécifiez le nom de la tâche du test de charge pour le champ `JobName` :

```
load_test_response = sagemaker_client.describe_inference_recommendations_job(
                                                        JobName=load_test_job_name
                                                        )
```

Imprimez l’objet de réponse.

```
load_test_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': 'Advanced', 
    'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 
    'Status': 'COMPLETED', 
    'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 
    'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 
    'InputConfig': {
        'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 
        'JobDurationInSeconds': 7200, 
        'TrafficPattern': {
            'TrafficType': 'PHASES'
            }, 
        'ResourceLimit': {
            'MaxNumberOfTests': 100, 
            'MaxParallelOfTests': 100
            }, 
        'EndpointConfigurations': [{
            'InstanceType': 'ml.c5d.xlarge'
            }]
        }, 
    'StoppingConditions': {
        'MaxInvocations': 1000, 
        'ModelLatencyThresholds': [{
            'Percentile': 'P95', 
            'ValueInMilliseconds': 100}
            ]}, 
    'InferenceRecommendations': [{
        'Metrics': {
            'CostPerHour': 0.6899999976158142, 
            'CostPerInference': 1.0332434612791985e-05, 
            'MaximumInvocations': 1113, 
            'ModelLatency': 100000
            }, 
    'EndpointConfiguration': {
        'EndpointName': 'endpoint-name', 
        'VariantName': 'variant-name', 
        'InstanceType': 'ml.c5d.xlarge', 
        'InitialInstanceCount': 3
        }, 
    'ModelConfiguration': {
        'Compiled': False, 
        'EnvironmentParameters': []
        }
    }], 
    'ResponseMetadata': {
        'RequestId': 'request-id', 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': {
            'x-amzn-requestid': 'x-amzn-requestid', 
            'content-type': 'content-type', 
            'content-length': '1199', 
            'date': 'Tue, 26 Oct 2021 19:57:42 GMT'
            }, 
        'RetryAttempts': 0}
    }
```

Les premières lignes fournissent des informations sur la tâche de test de charge 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 `EndpointConfiguration` imbriqué contient également la recommandation du nombre d’instances (`InitialInstanceCount`). Il s’agit du nombre d’instances que vous devez provisionner dans le point de terminaison pour répondre aux `MaxInvocations` spécifiées dans `StoppingConditions`. Par exemple, si `InstanceType` est `ml.m5.large` et `InitialInstanceCount` est `2`, vous devez provisionner 2 instances `ml.m5.large` pour votre point de terminaison afin qu’il puisse gérer le TPS spécifié dans la condition d’arrêt `MaxInvocations`.

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`) pour votre point de terminaison en temps réel, le nombre maximum de `InvokeEndpoint` demandes envoyées au point de terminaison et la latence du modèle (`ModelLatency`), qui est l'intervalle de temps (en microsecondes) 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 test de charge 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 valeurs spécifiées pour `MaxConcurrency` et `MemorySizeInMB` lors de la configuration du test de charge. Les recommandations sans serveur mesurent également la métrique `ModelSetupTime`, qui mesure (en microsecondes) le temps nécessaire au lancement des ressources de calcul 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 ]

Collectez des métriques avec l'API `describe-inference-recommendations-job`. Spécifiez le nom de la tâche du test de charge pour l’indicateur `job-name` :

```
aws sagemaker describe-inference-recommendations-job --job-name <job-name>
```

Cela renvoie une réponse 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': 'Advanced', 
    'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 
    'Status': 'COMPLETED', 
    'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 
    'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 
    'InputConfig': {
        'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 
        'JobDurationInSeconds': 7200, 
        'TrafficPattern': {
            'TrafficType': 'PHASES'
            }, 
        'ResourceLimit': {
            'MaxNumberOfTests': 100, 
            'MaxParallelOfTests': 100
            }, 
        'EndpointConfigurations': [{
            'InstanceType': 'ml.c5d.xlarge'
            }]
        }, 
    'StoppingConditions': {
        'MaxInvocations': 1000, 
        'ModelLatencyThresholds': [{
            'Percentile': 'P95', 
            'ValueInMilliseconds': 100
            }]
        }, 
    'InferenceRecommendations': [{
        'Metrics': {
        'CostPerHour': 0.6899999976158142, 
        'CostPerInference': 1.0332434612791985e-05, 
        'MaximumInvocations': 1113, 
        'ModelLatency': 100000
        }, 
        'EndpointConfiguration': {
            'EndpointName': 'endpoint-name', 
            'VariantName': 'variant-name', 
            'InstanceType': 'ml.c5d.xlarge', 
            'InitialInstanceCount': 3
            }, 
        'ModelConfiguration': {
            'Compiled': False, 
            'EnvironmentParameters': []
            }
        }], 
    'ResponseMetadata': {
        'RequestId': 'request-id', 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': {
            'x-amzn-requestid': 'x-amzn-requestid', 
            'content-type': 'content-type', 
            'content-length': '1199', 
            'date': 'Tue, 26 Oct 2021 19:57:42 GMT'
            }, 
        'RetryAttempts': 0
        }
    }
```

Les premières lignes fournissent des informations sur la tâche de test de charge 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`) pour votre point de terminaison en temps réel, le nombre maximum de `InvokeEndpoint` demandes envoyées au point de terminaison et la latence du modèle (`ModelLatency`), qui est l'intervalle de temps (en microsecondes) 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 test de charge 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 valeurs spécifiées pour `MaxConcurrency` et `MemorySizeInMB` lors de la configuration du test de charge. 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 sont renseignées dans un nouvel onglet appelé **Recommandations d’inférence** dans Studio Classic. L’affichage des résultats peut prendre jusqu’à 2 heures. Cet onglet contient les colonnes **Résultats** et **Détails**.

La colonne **Détails** fournit des informations sur la tâche de test de charge, telles que le nom donné à la tâche de test de charge, la date de création de la tâche (**Heure de création**), etc. Elle fournit également des informations sur les **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 des fenêtres d'**objectifs de déploiement** et de **recommandations d'SageMaker IA** dans lesquelles vous pouvez ajuster l'ordre dans lequel les résultats sont affichés 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 : **Importance la plus faible**, **Importance faible**, **Importance modérée**, **Importance élevée** ou **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.

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 résultats de vos tâches de test de charge personnalisées 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).

------

# Arrêt de votre test de charge
<a name="load-test-stop"></a>

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 test de charge par programmation à l'aide de l'`StopInferenceRecommendationsJob`API, de Studio Classic ou de la console SageMaker AI.

------
#### [ AWS SDK pour Python (Boto3) ]

Spécifiez le nom de la tâche du test de charge pour le champ `JobName` :

```
sagemaker_client.stop_inference_recommendations_job(
                                    JobName='<INSERT>'
                                    )
```

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

Spécifiez le nom de la tâche du test de charge 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é votre tâche de chargement personnalisé pour arrêter votre test de charge d’Inference Recommender.

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

Pour arrêter votre tâche de test de charge via la console SageMaker AI, procédez 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**, sélectionnez votre tâche de test de charge.

1. Choisissez **Arrêter la tâche**.

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

------

# Résolution des erreurs Inference Recommender
<a name="inference-recommender-troubleshooting"></a>

Cette section contient des informations sur la façon de comprendre et d’éviter les erreurs courantes, les messages d’erreur qu’elles génèrent, ainsi que des conseils sur la manière de résoudre ces erreurs.

## Comment résoudre les problèmes
<a name="inference-recommender-troubleshooting-how-to"></a>

Vous pouvez tenter de résoudre l’erreur en suivant les étapes suivantes :
+ Vérifiez si vous avez couvert toutes les conditions préalables pour utiliser Inference Recommender. Consultez les [prérequis](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-prerequisites.html).
+ Vérifiez que vous êtes en mesure de déployer votre modèle depuis le registre de modèles vers un point de terminaison et qu’il peut traiter vos données utiles sans erreur. Consultez [Déploiement d’un modèle dans le registre](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-deploy.html).
+ Lorsque vous lancez une tâche de recommandation d'inférence, vous devriez voir les points de terminaison créés dans la console et vous pouvez consulter les journaux. CloudWatch 

## Erreurs courantes
<a name="inference-recommender-troubleshooting-common"></a>

Consultez le tableau suivant pour connaître les erreurs Inference Recommender courantes et leurs solutions.


| Erreur | Solution | 
| --- | --- | 
|  Spécifiez `Domain` dans le package de modèle version 1. `Domain` est un paramètre obligatoire pour la tâche.  |  Assurez-vous de fournir le domaine ML ou `OTHER` s’il est inconnu.  | 
|  L’ARN du rôle fourni ne peut pas être assumé et une erreur `AWSSecurityTokenServiceException` se produit.  |  Assurez-vous que le rôle d’exécution fourni possède les autorisations nécessaires spécifiées dans les prérequis.  | 
|  Spécifiez `Framework` dans le package de modèle version 1. `Framework` est un paramètre obligatoire pour la tâche.  |  Assurez-vous de fournir le cadre ML ou `OTHER` s’il est inconnu.  | 
|  Il y a 0 utilisateur à la fin de la phase précédente et 1 utilisateur initial de la phase actuelle.  |  Les utilisateurs font ici référence aux utilisateurs virtuels ou aux fils de discussion utilisés pour envoyer des demandes. Chaque phase commence avec les utilisateurs A et se termine avec les utilisateurs B, de sorte que B > A. Entre les phases séquentielles, x\$11 et x\$12, nous exigeons que abs(x\$12.A - x\$11.B) <= 3 et >= 0.  | 
|  La durée totale du trafic (transversal) ne doit pas dépasser la durée de la tâche.  |  La durée totale de toutes vos phases ne peut pas dépasser la durée de la tâche.  | 
|  Le type d’instance extensible ml.t2.medium n’est pas autorisé.  |  Inference Recommender ne prend pas en charge les tests de charge sur la famille d’instances t2, car les instances extensibles ne fournissent pas de performances constantes.  | 
|  ResourceLimitExceeded lors de l' CreateEndpointopération d'appel  |  Vous avez dépassé la limite de ressources de l' SageMaker IA. Par exemple, Inference Recommender peut ne pas être en mesure de provisionner des points de terminaison à des fins d’analyse comparative si le compte a atteint le quota de points de terminaison. Pour plus d'informations sur les limites et les quotas d' SageMaker IA, consultez [Amazon SageMaker AI Endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).  | 
|  ModelError lors de l' InvokeEndpoint opération d'appel  |  Une erreur de modèle peut se produire pour les raisons suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/inference-recommender-troubleshooting.html)  | 
|  PayloadError lors de l' InvokeEndpoint opération d'appel  |  Une erreur de charge utile peut se produire pour les raisons suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/inference-recommender-troubleshooting.html)  | 

## Vérifiez CloudWatch
<a name="inference-recommender-troubleshooting-check-cw"></a>

Lorsque vous lancez une tâche Inference Recommender, vous devriez voir des points de terminaison créés dans la console. Sélectionnez l'un des points de terminaison et consultez les CloudWatch journaux pour détecter toute erreur 4xx/5xx. Si votre tâche Inference Recommender est réussie, vous pourrez voir les noms des points de terminaison dans les résultats. Même si votre tâche de recommandation d'inférence échoue, vous pouvez toujours consulter les CloudWatch journaux des points de terminaison supprimés en suivant les étapes ci-dessous :

1. Ouvrez la CloudWatch console Amazon à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Sélectionnez la région dans laquelle vous avez créé la tâche Inference Recommender dans la liste déroulante **Région** située en haut à droite.

1. Dans le volet de navigation de CloudWatch, choisissez **Logs**, puis sélectionnez **Log groups**.

1. Recherchez le groupe de journaux nommé `/aws/sagemaker/Endpoints/sm-epc-*`. Sélectionnez le groupe de journaux en fonction de votre dernière tâche Inference Recommender.

Vous pouvez également résoudre les problèmes liés à votre tâche en consultant les journaux d'Inference CloudWatch Recommender. Les journaux Inference Recommender, publiés dans le groupe de `/aws/sagemaker/InferenceRecommendationsJobs` CloudWatch journaux, fournissent une vue d'ensemble de la progression de la tâche dans le flux de `<jobName>/execution` journaux. Vous trouverez des informations détaillées sur chacune des configurations de point de terminaison testées dans le flux de journaux `<jobName>/Endpoint/<endpointName>`.

**Vue d’ensemble des flux de journaux d’Inference Recommender**
+ `<jobName>/execution` contient des informations générales sur les tâches, telles que les configurations de point de terminaison planifiées pour l’analyse comparative, la raison pour laquelle la tâche de compilation a été ignorée et la raison de l’échec de la validation.
+ `<jobName>/Endpoint/<endpointName>` contient des informations telles que la progression de la création de ressources, la configuration du test, la raison de l’arrêt du test de chargement et le statut du nettoyage des ressources.
+ `<jobName>/CompilationJob/<compilationJobName>` contient des informations sur les tâches de compilation créées par Inference Recommender, telles que la configuration et le statut des tâches de compilation.

**Création d’une alarme pour les messages d’erreur d’Inference Recommender**

Inference Recommender génère des instructions de journal pour les erreurs qui peuvent être utiles lors du dépannage. À l'aide d'un groupe de CloudWatch journaux et d'un filtre métrique, vous pouvez rechercher des termes et des modèles dans ces données de journal au fur et à mesure de leur envoi CloudWatch. Vous pouvez ensuite créer une CloudWatch alarme basée sur le filtre métrique du groupe de logs. Pour plus d'informations, voir [Création d'une CloudWatch alarme basée sur un filtre métrique de groupe de logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_alarm_log_group_metric_filter.html).

## Vérifier les comparaisons
<a name="inference-recommender-troubleshooting-check-benchmarks"></a>

Lorsque vous lancez une tâche Inference Recommender, Inference Recommender crée plusieurs comparaisons pour évaluer les performances de votre modèle sur différents types d’instances. Vous pouvez utiliser l'[ListInferenceRecommendationsJobSteps](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListInferenceRecommendationsJobSteps.html)API pour consulter les détails de tous les benchmarks. Si une comparaison a échoué, vous pouvez voir les raisons de l’échec dans les résultats.

Pour utiliser l'[ListInferenceRecommendationsJobSteps](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListInferenceRecommendationsJobSteps.html)API, entrez les valeurs suivantes :
+ Pour `JobName`, spécifiez le nom de la tâche Inference Recommender.
+ Pour `StepType`, utilisez `BENCHMARK` pour renvoyer des détails sur les comparaisons de la tâche.
+ Pour `Status`, utilisez `FAILED` pour renvoyer des détails sur les comparaisons ayant échoué uniquement. Pour obtenir la liste des autres types de statut, consultez le `Status` champ de l'[ListInferenceRecommendationsJobSteps](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListInferenceRecommendationsJobSteps.html)API.

```
# Create a low-level SageMaker service client.
import boto3
aws_region = '<region>'
sagemaker_client = boto3.client('sagemaker', region_name=aws_region) 

# Provide the job name for the SageMaker Inference Recommender job
job_name = '<job-name>'

# Filter for benchmarks
step_type = 'BENCHMARK' 

# Filter for benchmarks that have a FAILED status
status = 'FAILED'

response = sagemaker_client.list_inference_recommendations_job_steps(
    JobName = job_name,
    StepType = step_type,
    Status = status
)
```

Vous pouvez imprimer l’objet de réponse pour afficher les résultats. L’exemple de code précédent a stocké la réponse dans une variable appelée `response` :

```
print(response)
```