

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Obtention d’une recommandation d’inférence 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 terminal. La procédure d'obtention de recommandations pour un point de terminaison d'inférence SageMaker AI 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'[Real-Timeinférence](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html).
+ Cette fonctionnalité ne prend pas en charge les [ Real-Time Multi-Model points de terminaison. ](https://docs.aws.amazon.com/sagemaker/latest/dg/multi-model-endpoints.html)

**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 requises pour utiliser 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' Real-Time inférence en suivant les instructions de la rubrique [ Créer votre point de terminaison et déployer votre modèle. ](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html)

## 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 rôle AWS IAM, une configuration d'entrée et l'ARN de votre package de modèles depuis que vous avez enregistré votre modèle dans le registre des modèles.

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

Utilisez l’API [`CreateInferenceRecommendationsJob`](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 au sein de la AWS région et de 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 `Endpoints` terrain. `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 que vous pouvez transmettre [`CreateInferenceRecommendationsJob`](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 au sein de la AWS région et de 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 `Endpoints` terrain. `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 de 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 a été utilisé lors de la tâche de recommandation.

Le dictionnaire `Metrics` imbriqué contient des informations sur le coût horaire estimé (`CostPerHour`) pour votre terminal 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` requêtes 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`).