Migre la carga de trabajo de inferencias de x86 a Graviton AWS - Amazon SageMaker AI

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 es una serie de procesadores basados en ARM diseñados por. AWS Son más eficientes desde el punto de vista energético que los procesadores basados en x86 y ofrecen una atractiva relación precio-rendimiento. Amazon SageMaker AI ofrece instancias basadas en Graviton para que pueda aprovechar estos procesadores avanzados para sus necesidades de inferencia.

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 o sus propias imágenes de contenedor compatibles con ARM. Para obtener más información sobre cómo crear sus propias imágenes, consulte Crear su imagen.

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:

  1. Envía las imágenes de los contenedores a Amazon Elastic Container Registry (Amazon ECR), AWS un registro de contenedores gestionado.

  2. Cree un modelo de SageMaker IA.

  3. Crear una configuración de punto de conexión.

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

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.

  1. 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 \
  2. 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
  3. 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 e Insertar una imagen de arquitecturas múltiples.

Cree un modelo de SageMaker IA

Cree un modelo de SageMaker IA llamando a la 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 )

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" )