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 Graviton AWS
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 con ARM o imágenes de contenedor de múltiples arquitecturas. En esta guía se presupone que está utilizando imágenes de contenedor de aprendizaje profundo AWS
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ía las imágenes de los contenedores a Amazon Elastic Container Registry (Amazon ECR), AWS un registro de contenedores gestionado.
Cree un modelo de SageMaker IA.
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 user placeholder text
los ejemplos de código por su propia información.
Temas
Inserción de imágenes de contenedor en Amazon ECR
Puede enviar las imágenes de su contenedor a Amazon ECR con el AWS CLI. Cuando utilice una imagen compatible con ARM, compruebe que sea compatible con la arquitectura ARM:
docker inspect
deep-learning-container-uri
La respuesta "Architecture": "arm64"
indica que la imagen es compatible con la arquitectura ARM. Puede enviarla a Amazon ECR con el comando docker push
. 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 utiliza imágenes de contenedores de arquitecturas múltiples, además de enviar las imágenes a Amazon ECR, también tendrá que enviar una lista de manifiestos a Amazon ECR. 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 Amazon ECR.
-
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 la creación e inserción de listas de manifiestos en Amazon ECR, consulte Introducir imágenes de contenedores de arquitecturas múltiples para Amazon ECR
Cree un modelo de SageMaker IA
Cree un modelo de SageMaker IA llamando a la 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 )
Creación de una configuración de punto de conexión
Crea una configuración de punto de conexión llamando a la API CreateEndpointConfig
. 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 de conexión llamando a la API CreateEndpoint
.
sagemaker_client.create_endpoint( EndpointName = "
endpoint-name
", EndpointConfigName = "endpoint-config-name
" )