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 Inference-Workloads von Instances auf x86-Basis zu Instances auf Graviton-Basis migrieren, indem Sie entweder ARM-kompatible Container-Images oder Container-Images mit mehreren Architekturen verwenden. In diesem Handbuch wird davon ausgegangen, dass Sie entweder AWS
Deep-Learning-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 (Amazon ECR), 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 den Platzhaltertext des Benutzers
in den Code-Beispielen durch Ihre eigenen Informationen.
Themen
Container-Images nach Amazon ECR verschieben
Sie können Ihre Container-Images mit dem an Amazon ECR übertragen. AWS CLI Wenn Sie ein ARM-kompatibles Image verwenden, achten Sie darauf, dass es die ARM-Architektur unterstützt:
docker inspect
deep-learning-container-uri
Die Antwort "Architecture": "arm64"
weist darauf hin, dass das Image die ARM-Architektur unterstützt. Sie können es mit dem docker push
Befehl nach Amazon ECR verschieben. 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 sondern auch eine Manifest-Liste an Amazon ECR verschieben. Eine Manifest-Liste ermöglicht die verschachtelte Aufnahme anderer Image-Manifeste. Dabei wird jedes enthaltene Image nach Architektur, Betriebssystem und weiteren Plattformattributen angegeben. Im folgenden Beispiel wird eine Manifest-Liste erstellt und nach Amazon ECR verschoben.
-
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 Manifest-Listen an Amazon ECR finden Sie unter Einführung in Multi-Architektur-Container-Images für Amazon ECR
Erstellen Sie ein Modell SageMaker
Erstellen Sie ein SageMaker Modell, indem Sie die CreateModel
API aufrufen.
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 )
Erstellen Sie eine Endpunktkonfiguration
Erstellen Sie eine Endpunktkonfiguration, indem Sie die CreateEndpointConfig
API aufrufen. 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
Stellen Sie einen Endpunkt her, indem Sie die CreateEndpoint
API aufrufen.
sagemaker_client.create_endpoint( EndpointName = "
endpoint-name
", EndpointConfigName = "endpoint-config-name
" )