

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
<a name="realtime-endpoints-graviton"></a>

 [AWS Graviton](https://aws.amazon.com/ec2/graviton/) es una serie de ARM-based procesadores 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 Graviton-based instancias 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 Graviton-based instancias, 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](https://github.com/aws/deep-learning-containers/blob/master/available_images.md) 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](https://github.com/aws/deep-learning-containers#building-your-image). 

 En un nivel alto, la migración de la carga de trabajo de inferencias de instancias basadas en x86 a instancias es un proceso de cuatro pasos: Graviton-based 

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

1. Cree un modelo de SageMaker IA.

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

1. Crear 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. 

**Topics**
+ [Inserción de imágenes de contenedor en Amazon ECR](#realtime-endpoints-graviton-ecr)
+ [Cree un modelo de SageMaker IA](#realtime-endpoints-graviton-model)
+ [Creación de una configuración de punto de conexión](#realtime-endpoints-graviton-epc)
+ [Creación de un punto de conexión](#realtime-endpoints-graviton-ep)

## Inserción de imágenes de contenedor en Amazon ECR
<a name="realtime-endpoints-graviton-ecr"></a>

 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](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html). 

 Multi-architecture Las imágenes de contenedor son fundamentalmente un conjunto de imágenes de contenedor compatibles con diferentes arquitecturas o sistemas operativos, a las que puede 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}} \
   ```

1.  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}}
   ```

1. 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](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/) e [Insertar una imagen de arquitecturas múltiples](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-multi-architecture-image.html). 

## Cree un modelo de SageMaker IA
<a name="realtime-endpoints-graviton-model"></a>

 Cree un modelo de SageMaker IA llamando a la [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)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
<a name="realtime-endpoints-graviton-epc"></a>

 Crea una configuración de punto de conexión llamando a la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html). Para ver una lista de Graviton-based instancias, consulta Instancias [optimizadas para cómputo](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/compute-optimized-instances.html). 

```
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
<a name="realtime-endpoints-graviton-ep"></a>

 Cree un punto de conexión llamando a la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html). 

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