Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Migre la carga de trabajo de inferencias de x86 a AWS Graviton
AWS Graviton
Puede migrar sus cargas de trabajo de inferencias existentes de instancias basadas en x86 a instancias basadas en Graviton, utilizando imágenes de contenedor compatibles o imágenes de contenedor de múltiples arquitecturas. ARM En esta guía se asume que está utilizando alguna de las dos AWS
Imágenes
A un nivel alto, la migración de la carga de trabajo de inferencias de instancias basadas en x86 a instancias basadas en Graviton es un proceso de cuatro pasos:
Envíe las imágenes del contenedor a Amazon Elastic Container Registry (AmazonECR), y AWS registro de contenedores gestionado.
Cree un SageMaker modelo.
Crear una configuración de punto de conexión.
Creación de un punto de conexión.
En las siguientes secciones de esta guía se facilita más información sobre los pasos anteriores. Sustituya el user placeholder text
en los ejemplos de código con su propia información.
Temas
Envía imágenes de contenedores a Amazon ECR
Puedes enviar las imágenes de tus contenedores a Amazon ECR con la AWS CLI. Cuando utilice una imagen ARM compatible, compruebe que es compatible con ARM la arquitectura:
docker inspect
deep-learning-container-uri
La respuesta "Architecture": "arm64"
indica que la imagen es compatible con ARM la arquitectura. Puedes enviarlo a Amazon ECR con el docker push
comando. Para obtener más información, compruebe Insertar una imagen de Docker.
Las imágenes de contenedor de arquitecturas múltiples son, fundamentalmente, un conjunto de imágenes de contenedor compatibles con diferentes arquitecturas o sistemas operativos, a las que puedes hacer referencia con un nombre de manifiesto común. Si utilizas imágenes de contenedores de varias arquitecturas, además de enviar las imágenes a AmazonECR, también tendrás que enviar una lista de manifiestos a AmazonECR. Una lista de manifiestos permite incluir anidados de otros manifiestos de imágenes, donde cada imagen incluida se especifica por arquitectura, sistema operativo y otros atributos de plataforma. En el siguiente ejemplo, se crea una lista de manifiestos y se envía a AmazonECR.
-
Cree un archivo de manifiesto.
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
\ -
Anote la lista de manifiestos para que identifique correctamente qué imagen corresponde a cada arquitectura.
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
-
Inserte el manifiesto.
docker manifest push
aws-account-id
.dkr.ecr.aws-region
.amazonaws.com/my-repository
Para obtener más información sobre cómo crear y enviar listas de manifiestos a AmazonECR, consulta Introducir imágenes de contenedores multiarquitectura para Amazon ECR
Cree un modelo SageMaker
Cree un SageMaker modelo llamando al 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 )
Crear la configuración de un punto de conexión
Cree una configuración de punto final llamando al CreateEndpointConfig
API. Para obtener una lista de instancias basadas en Graviton, consulte Instancias optimizadas para la computación.
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 } ] )
Creación de un punto de conexión
Cree un punto final llamando al CreateEndpoint
API.
sagemaker_client.create_endpoint( EndpointName = "
endpoint-name
", EndpointConfigName = "endpoint-config-name
" )