Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Migrieren Sie den Inferenz-Workload von x86 nach Graviton AWS
AWS Graviton
Sie können Ihre vorhandenen Inferenz-Workloads von x86-basierten Instances auf Graviton-basierte Instances migrieren, indem Sie entweder kompatible Container-Images oder Container-Images mit mehreren Architekturen verwenden. ARM In diesem Handbuch wird davon ausgegangen, dass Sie entweder AWS
Deep Learning-Container-Images oder Ihre eigenen kompatiblen Container-Images
Im Großen und Ganzen besteht die Migration von Inference-Workloads von Instances auf x86-Basis zu Instances auf Graviton-Basis aus vier Schritten:
Übertragen Sie Container-Images an Amazon Elastic Container Registry (AmazonECR), eine AWS verwaltete Container-Registry.
Erstellen Sie ein SageMaker Modell.
Eine Endpunktkonfiguration erstellen.
Endpunkt herstellen.
In den folgenden Abschnitten dieses Handbuchs finden Sie weitere Einzelheiten zu den o.g. Schritten. Ersetzen Sie das user placeholder text
in den Codebeispielen durch Ihre eigenen Informationen.
Themen
Container-Bilder an Amazon senden ECR
Sie können Ihre Container-Images ECR mit dem an Amazon senden AWS CLI. Wenn Sie ein ARM kompatibles Image verwenden, stellen Sie sicher, dass es die folgende ARM Architektur unterstützt:
docker inspect
deep-learning-container-uri
Die Antwort "Architecture": "arm64"
weist darauf hin, dass das Image ARM Architektur unterstützt. Sie können es ECR mit dem docker push
Befehl an Amazon senden. Weitere Informationen finden Sie unter Ein Docker-Image verschieben.
Container-Images mit mehreren Architekturen sind im Grunde eine Reihe von Container-Images, die verschiedene Architekturen oder Betriebssysteme unterstützen und auf die Sie mit einem gemeinsamen Manifest-Namen verweisen können. Wenn Sie Container-Images mit mehreren Architekturen verwenden, müssen Sie nicht nur die Images an Amazon übertragenECR, sondern auch eine Manifestliste an Amazon ECR senden. Eine Manifest-Liste ermöglicht die verschachtelte Aufnahme anderer Image-Manifeste. Dabei wird jedes enthaltene Image nach Architektur, Betriebssystem und weiteren Plattformattributen angegeben. Das folgende Beispiel erstellt eine Manifestliste und überträgt sie an AmazonECR.
-
Eine Manifest-Liste erstellen.
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
\ -
Kommentieren Sie die Manifest-Liste so, dass sie korrekt angibt, welches Image für welche Architektur bestimmt ist.
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
-
Verschieben Sie das Manifest.
docker manifest push
aws-account-id
.dkr.ecr.aws-region
.amazonaws.com/my-repository
Weitere Informationen zum Erstellen und Übertragen von Manifestlisten an Amazon ECR finden Sie unter Einführung von Multiarchitektur-Container-Images für Amazon ECR
Erstellen Sie ein Modell SageMaker
Erstellen Sie ein SageMaker Modell, indem Sie die aufrufen 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 )
Endpunktkonfiguration erstellen
Erstellen Sie eine Endpunktkonfiguration, indem Sie die aufrufen CreateEndpointConfig
API. Eine Liste von Instances auf Graviton-Basis finden Sie unter für Datenverarbeitung optimierte Instances.
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 } ] )
Endpunkt herstellen
Erstellen Sie einen Endpunkt, indem Sie den aufrufen CreateEndpoint
API.
sagemaker_client.create_endpoint( EndpointName = "
endpoint-name
", EndpointConfigName = "endpoint-config-name
" )