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á.
AWS Graviton
Você pode migrar suas workloads de inferência existentes de instâncias baseadas em x86 para instâncias baseadas em Graviton, usando imagens de contêiner compatíveis com ARM ou imagens de contêiner multiarquitetura. Este guia pressupõe que você esteja usando imagens de contêiner do AWS
aprendizado profundo 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 (Amazon ECR), AWS um registro gerenciado de contêineres.
Crie um modelo de SageMaker IA.
Crie uma configuração de endpoint.
Crie um endpoint do .
As seções a seguir deste guia fornecem mais detalhes sobre as etapas acima. user placeholder text
Substitua os exemplos de código pelos seus próprios dados.
Tópicos
Envie imagens de contêiner no Amazon ECR
Você pode enviar suas imagens de contêiner para o Amazon ECR com o. AWS CLI Ao usar uma imagem compatível com ARM, verifique se ela é compatível com a arquitetura ARM:
docker inspect
deep-learning-container-uri
A resposta "Architecture": "arm64"
indica que a imagem é compatível com a arquitetura ARM. Você pode enviá-lo para o Amazon ECR com o comando docker push
. 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 apoio 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 multiarquitetura, além de enviar as imagens para o Amazon ECR, você também terá que enviar uma lista de manifesto para o 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 o Amazon ECR.
-
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 a criação e o envio de listas de manifesto para o Amazon ECR, consulte Introdução a imagens de contêiner multiarquitetura para o Amazon ECR
Crie um modelo de SageMaker IA
Crie um modelo de SageMaker IA chamando a 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
)
Criar uma configuração de endpoint
Crie uma configuração de endpoint chamando a API CreateEndpointConfig
. 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
}
]
)
Crie um endpoint do
Crie uma configuração de endpoint chamando a API CreateEndpoint
.
sagemaker_client.create_endpoint(
EndpointName = "endpoint-name
",
EndpointConfigName = "endpoint-config-name
"
)