

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.

# Migrer la charge de travail d'inférence de x86 vers AWS Graviton
<a name="realtime-endpoints-graviton"></a>

 [AWS Graviton](https://aws.amazon.com/ec2/graviton/) est une série de ARM-based processeurs conçus par AWS. Ils sont plus économes en énergie que les processeurs x86 et offrent un rapport qualité-prix convaincant. Amazon SageMaker AI propose des Graviton-based instances qui vous permettent de tirer parti de ces processeurs avancés pour vos besoins d'inférence. 

 Vous pouvez migrer vos charges de travail d'inférence existantes d'instances x86 vers des instances, en utilisant soit des images de Graviton-based conteneur compatibles ARM, soit des images de conteneur multi-architectures. Ce guide suppose que vous utilisez des [images de conteneur Deep Learning AWS](https://github.com/aws/deep-learning-containers/blob/master/available_images.md) ou vos propres images de conteneur compatibles avec ARM. Pour plus d'informations sur la création de vos propres images, consultez [Building your image](https://github.com/aws/deep-learning-containers#building-your-image) (Création de votre image). 

 À un niveau élevé, la migration de la charge de travail d'inférence d'instances basées sur x86 vers des instances est un processus en Graviton-based quatre étapes : 

1. Transférez les images de conteneurs vers Amazon Elastic Container Registry (Amazon ECR), AWS un registre de conteneurs géré.

1. Créez un modèle d' SageMaker IA.

1. Créez une configuration de point de terminaison.

1. Créez un point de terminaison .

 Les sections suivantes de ce guide fournissent plus de détails concernant les étapes ci-dessus. Remplacez {{user placeholder text}} les exemples de code par vos propres informations. 

**Topics**
+ [Transmission des images de conteneur vers Amazon ECR](#realtime-endpoints-graviton-ecr)
+ [Création d'un modèle d' SageMaker IA](#realtime-endpoints-graviton-model)
+ [Créer une configuration de point de terminaison](#realtime-endpoints-graviton-epc)
+ [Créer un point de terminaison](#realtime-endpoints-graviton-ep)

## Transmission des images de conteneur vers Amazon ECR
<a name="realtime-endpoints-graviton-ecr"></a>

 Vous pouvez transférer les images de vos conteneurs vers Amazon ECR à l'aide du AWS CLI. Lorsque vous utilisez une image compatible avec ARM, vérifiez qu'elle prend en charge l'architecture ARM : 

```
docker inspect {{deep-learning-container-uri}}
```

 La réponse `"Architecture": "arm64"` indique que l'image est compatible avec l'architecture ARM. Vous pouvez la transmettre vers Amazon ECR à l'aide de la commande `docker push`. Pour plus d'informations, consultez [Pousser une image Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html). 

 Multi-architecture les images de conteneur sont fondamentalement un ensemble d'images de conteneur supportant différentes architectures ou systèmes d'exploitation, auxquelles vous pouvez faire référence par un nom de manifeste commun. Si vous utilisez des images de conteneur multi-architecture, en plus de transférer les images vers Amazon ECR, vous devrez également envoyer une liste de manifestes à Amazon ECR. Une liste de manifestes permet l'inclusion imbriquée d'autres manifestes d'images, chaque image incluse étant spécifiée par l'architecture, le système d'exploitation et d'autres attributs de plateforme. L'exemple suivant crée une liste de manifestes et la transmet à Amazon ECR. 

1. Créez une liste de manifestes.

   ```
   docker manifest create {{aws-account-id}}.dkr.ecr.{{aws-region}}.amazonaws.com/{{my-repository}} \
     {{aws-account-id}}.dkr.ecr.{{aws-account-id}}.amazonaws.com/{{my-repository:amd64}} \
   	{{aws-account-id}}.dkr.ecr.{{aws-account-id}}.amazonaws.com/{{my-repository:arm64}} \
   ```

1.  Annotez la liste des manifestes afin qu'elle identifie correctement quelle image correspond à quelle architecture. 

   ```
   docker manifest annotate --arch arm64 {{aws-account-id}}.dkr.ecr.{{aws-region}}.amazonaws.com/{{my-repository}} \
     {{aws-account-id}}.dkr.ecr.{{aws-region}}.amazonaws.com/{{my-repository:arm64}}
   ```

1. Transmettez le manifeste.

   ```
   docker manifest push {{aws-account-id}}.dkr.ecr.{{aws-region}}.amazonaws.com/{{my-repository}}
   ```

 Pour plus d'informations sur la création et la transmission de listes de manifeste vers Amazon ECR, consultez [Introducing multi-architecture container images for Amazon ECR](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/) (Présentation d'images de conteneurs multi-architecture pour Amazon ECR) et [Transmission d'une image multi-architecture](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-multi-architecture-image.html). 

## Création d'un modèle d' SageMaker IA
<a name="realtime-endpoints-graviton-model"></a>

 Créez un modèle d' SageMaker IA en appelant l'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)API. 

```
import boto3
from sagemaker import get_execution_role


aws_region = "{{aws-region}}"
sagemaker_client = boto3.client("sagemaker", region_name=aws_region)

role = get_execution_role()

sagemaker_client.create_model(
    ModelName = "{{model-name}}",
    PrimaryContainer = {
        "Image": "{{deep-learning-container-uri}}",
        "ModelDataUrl": "{{model-s3-location}}",
        "Environment": {
            "SAGEMAKER_PROGRAM": "{{inference.py}}",
            "SAGEMAKER_SUBMIT_DIRECTORY": "{{inference-script-s3-location}}",
            "SAGEMAKER_CONTAINER_LOG_LEVEL": "20",
            "SAGEMAKER_REGION": aws_region,
        }
    },
    ExecutionRoleArn = role
)
```

## Créer une configuration de point de terminaison
<a name="realtime-endpoints-graviton-epc"></a>

 Créez une configuration de point de terminaison en appelant l'API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html). Pour obtenir la liste des Graviton-based instances, cochez la case [Instances optimisées pour le calcul](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/compute-optimized-instances.html). 

```
sagemaker_client.create_endpoint_config(
    EndpointConfigName = "{{endpoint-config-name}}",
    ProductionVariants = [
        {
            "VariantName": "{{variant-name}}",
            "ModelName": "{{model-name}}",
            "InitialInstanceCount": {{1}},
            "InstanceType": "{{ml.c7g.xlarge}}", # Graviton-based instance
       }
    ]
)
```

## Créer un point de terminaison
<a name="realtime-endpoints-graviton-ep"></a>

 Créez un point de terminaison en appelant l'API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html). 

```
sagemaker_client.create_endpoint(
    EndpointName = "{{endpoint-name}}",
    EndpointConfigName = "{{endpoint-config-name}}"
)
```