Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migra il carico di lavoro di inferenza da x86 a Graviton AWS
AWS Graviton
Puoi migrare i carichi di lavoro di inferenza esistenti da istanze basate su x86 a istanze basate su Graviton, utilizzando immagini di container compatibili o immagini di container multiarchitettura. ARM Questa guida presuppone che tu stia utilizzando AWS
immagini di container di Deep Learning o immagini di container compatibili.
Ad alto livello, la migrazione del carico di lavoro di inferenza da istanze basate su x86 a istanze basate su Graviton è un processo in quattro fasi:
Invia le immagini dei container ad Amazon Elastic Container Registry (AmazonECR), un registro di container AWS gestito.
Crea un SageMaker modello.
Crea una configurazione endpoint
Crea un endpoint .
Le seguenti sezioni di questa guida forniscono maggiori dettagli sulle fasi precedenti. Sostituisci il user placeholder text
negli esempi di codice con le tue informazioni.
Argomenti
Invia le immagini dei container ad Amazon ECR
Puoi inviare le immagini dei tuoi container ad Amazon ECR con AWS CLI. Quando usi un'immagine ARM compatibile, verifica che supporti ARM l'architettura:
docker inspect
deep-learning-container-uri
La risposta "Architecture": "arm64"
indica che l'immagine supporta l'ARMarchitettura. Puoi inviarlo ad Amazon ECR con il docker push
comando. Per ulteriori informazioni, consulta Invio di un'immagine Docker.
Le immagini di container multi-architettura sono fondamentalmente un insieme di immagini di container che supportano diverse architetture o sistemi operativi, a cui puoi fare riferimento con un nome manifest comune. Se utilizzi immagini di container multiarchitettura, oltre a inviare le immagini ad AmazonECR, dovrai anche inviare un elenco di manifest ad Amazon. ECR Un elenco di manifesti consente l'inclusione annidata di altri manifesti di immagini, in cui ogni immagine inclusa è specificata dall'architettura, dal sistema operativo e da altri attributi della piattaforma. L'esempio seguente crea un elenco di manifesti e lo invia ad AmazonECR.
-
Crea un elenco dei manifesti
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
\ -
Annota l'elenco dei manifesti, in modo che identifichi correttamente quale immagine è destinata a quale architettura.
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
-
Invia il manifesto.
docker manifest push
aws-account-id
.dkr.ecr.aws-region
.amazonaws.com/my-repository
Per ulteriori informazioni sulla creazione e l'invio di elenchi manifest su AmazonECR, consulta Introducing multi-architecture container images for Amazon ECR
Crea un modello SageMaker
Crea un SageMaker modello chiamando il 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 )
Creare una configurazione endpoint
Crea una configurazione dell'endpoint chiamando il CreateEndpointConfig
API. Per un elenco di istanze basate su Graviton, seleziona Istanze ottimizzate per il calcolo.
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 } ] )
Crea un endpoint
Crea un endpoint chiamando il. CreateEndpoint
API
sagemaker_client.create_endpoint( EndpointName = "
endpoint-name
", EndpointConfigName = "endpoint-config-name
" )