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.
Verwenden von EI auf Amazon SageMaker Hosted Endpunkten
Um Elastic Inference (EI) in Amazon SageMaker mit einem gehosteten Endpunkt für Echtzeit-Inferenz zu verwenden, geben Sie einen EI-Accelerator beim Erstellen des bereitstellbaren Modells an, das an diesem Endpunkt gehostet werden soll. Sie können dafür eine der folgenden Möglichkeiten auswählen:
-
Verwenden derAmazon SageMaker Python SDK
-Versionen von TensorFlow, MXNet oder PyTorch und der SageMaker-Vorgefertigten -Container für TensorFlow, MXNet und PyTorch. -
Erstellen Sie Ihren eigenen Container und verwenden Sie die Low-Level-SageMaker-API (Boto 3). Sie müssen die EI-fähige Version von TensorFlow, MXNet oder PyTorch aus den angegebenen Amazon S3 S3-Standorten in Ihren Container importieren und eine dieser Versionen zum Schreiben Ihres Schulungsskripts verwenden.
-
Nutzen Sie den integrierten Bildklassifikationsalgorithmus- oder Objekterkennungsalgorithmus-Algorithmus und verwenden Sie AWS SDK for Python (Boto3), um Ihren Schulungsauftrag auszuführen und Ihr bereitstellbares Modell und den gehosteten Endpunkt zu erstellen.
Themen
Verwenden von EI mit einem SageMaker TensorFlow-Container
Um TensorFlow mit EI in SageMaker zu verwenden, müssen Sie dasdeploy
Methode entweder derSchätzfunktion
SageMaker bietet Standard-Modellschulungs- und -Inferenz-Code. Für benutzerdefinierte Dateiformate müssen Sie möglicherweise benutzerdefinierten Modellschulungs- und Inferenz-Code implementieren.
Verwenden eines Schätzfunktion-Objekts
Um ein Schätzfunktion-Objekt mit EI zu verwenden, wenn Sie die Bereitstellungsmethode nutzen, fügen Sie das accelerator_type
-Eingabeargument ein. Die Schätzfunktion gibt ein Prognose-Objekt zurück, das wir als seine Bereitstellungsmethode bezeichnen, wie im Beispiel-Code gezeigt.
# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')
Verwenden eines Modell-Objekts
Um ein Modell-Objekt mit EI zu verwenden, wenn Sie die Bereitstellungsmethode nutzen, fügen Sie das accelerator_type
-Eingabeargument ein. Die Schätzfunktion gibt ein Prognose-Objekt zurück, das wir als seine Bereitstellungsmethode bezeichnen, wie im Beispiel-Code gezeigt.
# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')
Verwenden von EI mit einem SageMaker MXNet-Container
Um MXNet mit EI in SageMaker zu verwenden, müssen Sie dasdeploy
Methode entweder derSchätzfunktionaccelerator_type
-Eingabeargument an. Weitere Informationen über die Verwendung von MXNet imAmazon SageMaker Python SDK
SageMaker bietet Standard-Modellschulungs- und -Inferenz-Code. Für benutzerdefinierte Dateiformate müssen Sie möglicherweise benutzerdefinierten Modellschulungs- und Inferenz-Code schreiben.
Verwenden eines Schätzfunktion-Objekts
Um ein Schätzfunktion-Objekt mit EI zu verwenden, wenn Sie die Bereitstellungsmethode nutzen, fügen Sie das accelerator_type
-Eingabeargument ein. Die Schätzfunktion gibt ein Prognose-Objekt zurück, das wir als seine Bereitstellungsmethode bezeichnen, wie im Beispiel-Code gezeigt.
# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')
Verwenden eines Modell-Objekts
Um ein Modell-Objekt mit EI zu verwenden, wenn Sie die Bereitstellungsmethode nutzen, fügen Sie das accelerator_type
-Eingabeargument ein. Die Schätzfunktion gibt ein Prognose-Objekt zurück, das wir als seine Bereitstellungsmethode bezeichnen, wie im Beispiel-Code gezeigt.
# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')
Ein umfassendes Beispiel für die Verwendung von EI mit MXNet in SageMaker finden Sie im Beispiel-Notebook unterhttps://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/mxnet_mnist/mxnet_mnist_elastic_inference.ipynb
Verwenden von EI mit einem SageMaker PyTorch-Container
Um PyTorch mit EI in SageMaker zu verwenden, müssen Sie dasdeploy
Methode entweder derSchätzfunktionaccelerator_type
-Eingabeargument an. Weitere Informationen über die Verwendung von PyTorch imAmazon SageMaker Python SDK
SageMaker bietet Standard-Modellschulungs- und -Inferenz-Code. Für benutzerdefinierte Dateiformate müssen Sie möglicherweise benutzerdefinierten Modellschulungs- und Inferenz-Code schreiben.
Verwenden eines Schätzfunktion-Objekts
Um ein Schätzfunktion-Objekt mit EI zu verwenden, wenn Sie die Bereitstellungsmethode nutzen, fügen Sie das accelerator_type
-Eingabeargument ein. Die Schätzfunktion gibt ein Prognose-Objekt zurück, das wir als seine Bereitstellungsmethode bezeichnen, wie in diesem Beispiel-Code gezeigt.
# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')
Verwenden eines Modell-Objekts
Um ein Modell-Objekt mit EI zu verwenden, wenn Sie die Bereitstellungsmethode nutzen, fügen Sie das accelerator_type
-Eingabeargument ein. Das Modell gibt ein Prognose-Objekt zurück, das wir als seine Bereitstellungsmethode bezeichnen, wie in diesem Beispiel-Code gezeigt.
# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')
Verwenden von EI mit Ihrem eigenen Container
Um EI mit einem Modell in einem benutzerdefinierten Container zu nutzen, den Sie erstellen, verwenden Sie das Low-Level-AWS SDK für Python (Boto 3), laden die AWS-EI-fähigen Versionen der TensorFlow-, Apache MXNet- oder PyTorch-Machine-Learning-Frameworks herunter, importieren diese und schreiben anschließend Ihr Schulungsskript mithilfe dieser Frameworks.
Importieren der EI-Version von TensorFlow, MXNet oder PyTorch in Ihren Docker-Container
Um EI mit Ihrem eigenen Container zu verwenden, müssen Sie entweder die Amazon EI TensorFlow Serving-Bibliothek, die Amazon EI Apache MXNet-Bibliothek oder die Elastic Inference-fähige PyTorch-Bibliothek in Ihren Container importieren. Die EI-fähige Version von TensorFlow und MXNet ist derzeit als binäre Datei in Amazon S3 S3-Standorten verfügbar. Sie können das EI-fähige Binary für TensorFlow aus dem Amazon S3 S3-Bucket unter herunterladenconsole.aws.amazon.com/s3/buckets/amazonei-Tensorflow
Erstellen eines EI-Endpunkts mitAWSSDK für Python (Boto 3)
Um einen Endpunkt mithilfe von AWS SDK für Python (Boto 3) zu erstellen, erstellen Sie zunächst eine Endpunktkonfiguration. Die Endpunktkonfiguration legt ein oder mehrere Modelle fest (sogenannte Produktionsvarianten), die Sie am Endpunkt hosten möchten. Um EI an eine oder mehrere Produktionsvarianten, die am Endpunkt gehostet werden, anzufügen, legen Sie einen der EI-Instance-Typen als AcceleratorType
-Feld für diese ProductionVariant
fest. Anschließend übergeben Sie diese Endpunktkonfiguration, wenn Sie den Endpunkt erstellen.
Erstellen einer Endpunktkonfiguration
Um EI zu verwenden, müssen Sie einen Accelerator-Typ in der Endpunktkonfiguration angeben.
# Create Endpoint Configuration from time import gmtime, strftime endpoint_config_name = 'ImageClassificationEndpointConfig-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print(endpoint_config_name) create_endpoint_config_response = sagemaker.create_endpoint_config( EndpointConfigName = endpoint_config_name, ProductionVariants=[{ 'InstanceType':'ml.m4.xlarge', 'InitialInstanceCount':1, 'ModelName':model_name, 'VariantName':'AllTraffic', 'AcceleratorType':'ml.eia2.medium'}]) print("Endpoint Config Arn: " + create_endpoint_config_response['EndpointConfigArn'])
Erstellen eines Endpunkts
Nachdem Sie eine Endpunktkonfiguration mit einem Accelerator-Typ erstellt haben, können Sie einen Endpunkt erstellen.
endpoint_name = 'ImageClassificationEndpoint-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) endpoint_response = sagemaker.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name)
Nachdem Sie den Endpunkt erstellt haben, können Sie ihn wie jeden anderen Endpunkt mit der Methode invoke_endpoint
in einem Boto3-Laufzeitobjekt aufrufen.