As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Migre a carga de trabalho de inferência do x86 para o Graviton AWS
AWS Graviton
Você pode migrar suas cargas de trabalho de inferência existentes de instâncias baseadas em x86 para instâncias baseadas em Graviton usando imagens de contêiner compatíveis ou ARM imagens de contêiner de várias arquiteturas. Este guia pressupõe que você esteja usando imagens de contêiner do AWS
Deep Learning ou suas próprias imagens
Em um alto nível, migrar a workload de inferência de instâncias baseadas em x86 para instâncias baseadas em Graviton é um processo de quatro etapas:
Envie imagens de contêineres para o Amazon Elastic Container Registry (AmazonECR), um registro AWS gerenciado de contêineres.
Crie um SageMaker modelo.
Crie uma configuração de endpoint.
Crie um endpoint do .
As seções a seguir deste guia fornecem mais detalhes sobre as etapas acima. Substitua o user placeholder text
nos exemplos de código com suas próprias informações.
Tópicos
Envie imagens de contêineres para a Amazon ECR
Você pode enviar suas imagens de contêiner para a Amazon ECR com AWS CLI o. Ao usar uma imagem ARM compatível, verifique se ela oferece suporte à ARM arquitetura:
docker inspect
deep-learning-container-uri
A resposta "Architecture": "arm64"
indica que a imagem oferece suporte à ARM arquitetura. Você pode enviá-lo para a Amazon ECR com o docker push
comando. Para obter mais informações, consulte Enviando uma imagem do Docker.
As imagens de contêiner de várias arquiteturas são basicamente um conjunto de imagens de contêiner que oferecem suporte a diferentes arquiteturas ou sistemas operacionais, aos quais você pode se referir por um nome de manifesto comum. Se você estiver usando imagens de contêiner de várias arquiteturas, além de enviar as imagens para a AmazonECR, você também precisará enviar uma lista de manifestos para a Amazon. ECR Uma lista de manifestos permite a inclusão aninhada de outros manifestos de imagem, em que cada imagem incluída é especificada por arquitetura, sistema operacional e outros atributos da plataforma. O exemplo a seguir cria uma lista de manifestos e a envia para a AmazonECR.
-
Crie uma lista de manifesto.
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 a lista de manifesto para que ela identifique corretamente qual imagem é para qual arquitetura.
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
-
Envie o manifesto.
docker manifest push
aws-account-id
.dkr.ecr.aws-region
.amazonaws.com/my-repository
Para obter mais informações sobre como criar e enviar listas de manifestos para a AmazonECR, consulte Apresentando imagens de contêiner de várias arquiteturas para a Amazon ECR
Crie um SageMaker modelo
Crie um SageMaker modelo chamando CreateModel
APIo.
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 )
Criar uma configuração de endpoint
Crie uma configuração de endpoint chamando o. CreateEndpointConfig
API Para ver uma lista de instâncias baseadas em Graviton, consulte Instâncias otimizadas para computação.
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 } ] )
Criar um endpoint
Crie um endpoint chamando o. CreateEndpoint
API
sagemaker_client.create_endpoint( EndpointName = "
endpoint-name
", EndpointConfigName = "endpoint-config-name
" )