View a markdown version of this page

Migrer la charge de travail d'inférence de x86 vers AWS Graviton - Amazon SageMaker AI

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

AWS 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 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 (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é.

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

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

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

Transmission des images de conteneur vers Amazon ECR

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.

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 \
  2. 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
  3. 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 (Présentation d'images de conteneurs multi-architecture pour Amazon ECR) et Transmission d'une image multi-architecture.

Création d'un modèle d' SageMaker IA

Créez un modèle d' SageMaker IA en appelant l'CreateModelAPI.

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

Créez une configuration de point de terminaison en appelant l'API CreateEndpointConfig. Pour obtenir la liste des Graviton-based instances, cochez la case Instances optimisées pour le calcul.

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

Créez un point de terminaison en appelant l'API CreateEndpoint.

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