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 Graviton AWS
AWS Graviton
Vous pouvez migrer vos charges de travail d'inférence existantes d'instances x86 vers des instances Graviton, en utilisant des images de conteneur compatibles avec ARM ou des images de conteneur multi-architecture. Ce guide suppose que vous utilisez des images de conteneur Deep Learning AWS
À un niveau global, la migration d'une charge de travail d'inférence d'instances x86 vers des instances Graviton s'effectue en quatre étapes :
Transférez les images de conteneurs vers Amazon Elastic Container Registry (Amazon ECR), AWS un registre de conteneurs géré.
Créez un modèle d' SageMaker IA.
Créez une configuration de point de terminaison.
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.
Rubriques
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.
Les images de conteneur multi-architecture sont essentiellement un ensemble d'images de conteneur prenant en charge 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.
-
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
\ -
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
-
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
Création d'un modèle d' SageMaker IA
Créez un modèle d' SageMaker IA en appelant l'CreateModel
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
Créez une configuration de point de terminaison en appelant l'API CreateEndpointConfig
. Pour obtenir la liste des instances Graviton, consultez Instances de calcul optimisé.
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
" )