Verwenden von EI auf Amazon SageMaker Hosted Endpunkten - Amazon SageMaker

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.

Verwenden von EI mit einem SageMaker TensorFlow-Container

Um TensorFlow mit EI in SageMaker zu verwenden, müssen Sie dasdeployMethode entweder derSchätzfunktionoderModel-Bucket. Anschließend geben Sie einen Accelerator-Typ mithilfe des Eingabearguments accelerator-type an. Weitere Informationen zur Verwendung von TensorFlow im SageMaker Python SDK finden Sie unter:https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/index.htmlaus.

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 dasdeployMethode entweder derSchätzfunktionoderModel-Bucket. Anschließend geben Sie einen Beschleunigertyp mit dem accelerator_type-Eingabeargument an. Weitere Informationen über die Verwendung von MXNet imAmazon SageMaker Python SDKfinden Sie unter,https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/index.html

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 dasdeployMethode entweder derSchätzfunktionoderModel-Bucket. Anschließend geben Sie einen Beschleunigertyp mit dem accelerator_type-Eingabeargument an. Weitere Informationen über die Verwendung von PyTorch imAmazon SageMaker Python SDKfinden Sie unter,SageMaker PyTorch Estimators and Modelsaus.

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-Tensorflowaus. Weitere Informationen zum Erstellen eines Containers, der die EI-fähige Version von TensorFLow verwendet, finden Sie unter https://github.com/aws/sagemaker-tensorflow-container#building-the-sagemaker-elastic-inference-tensorflow-serving-container. Sie können das EI-fähige Binary für Apache MXNet aus dem öffentlichen Amazon S3 S3-Bucket unter herunterladenconsole.aws.amazon.com/s3/buckets/amazonei-apachemxnetaus. Weitere Informationen zum Erstellen eines Containers, der die EI-fähige Version von MXNet verwendet, finden Sie unter https://github.com/aws/sagemaker-mxnet-container#building-the-sagemaker-elastic-inference-mxnet-container. Sie können die Elastic Inference Inference-fähige Binärdatei für PyTorch vom öffentlichen Amazon S3 S3-Bucket unter herunterladenconsole.aws.amazon.com/s3/buckets/amazonei-Pytorchaus. Informationen zum Erstellen eines Containers, der die Elastic Inference-fähige Version von PyTorch verwendet, finden Sie unter Erstellen Ihres Abbilds.

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.