Verwenden von EI auf von Amazon SageMaker gehosteten 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 von Amazon SageMaker gehosteten Endpunkten

Um Elastic Inference (EI) in Amazon SageMaker mit einem gehosteten Endpunkt für Echtzeit-Inferenzen zu verwenden, geben Sie einen EI-Accelerator an, wenn Sie das bereitstellbare Modell erstellen, das an diesem Endpunkt gehostet werden soll. Sie können dafür eine der folgenden Möglichkeiten auswählen:

  • Verwenden Sie die Amazon SageMaker Python SDK-Versionen von TensorFlow, MXNet oder PyTorch und die SageMaker vordefinierten 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 entweder TensorFlow, MXNet oder PyTorch von den bereitgestellten Amazon S3-Speicherorten in Ihren Container importieren und eine dieser Versionen verwenden, um Ihr Trainingsskript zu schreiben.

  • Nutzen Sie den integrierten Bildklassifikation - MXNet- oder Objekterkennung – MXNet-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 zu verwenden SageMaker, müssen Sie die deploy Methode der Objekte Schätzer oder Model laufrufen. Anschließend geben Sie einen Accelerator-Typ mithilfe des Eingabearguments accelerator-type an. Informationen zur Verwendung von TensorFlow SageMaker im Python SDK finden Sie unter: https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/index.html.

SageMaker bietet standardmäßigen Modelltrainings- und Inferenzcode zu Ihrer Bequemlichkeit. 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 zu verwenden SageMaker, müssen Sie die deploy Methode der Objekte Schätzer oder Model laufrufen. Anschließend geben Sie einen Beschleunigertyp mit dem accelerator_type-Eingabeargument an. Informationen zur Verwendung von MXNet im Amazon SageMaker Python SDK finden Sie unter https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/index.html.

Der Einfachheit halber SageMaker stellt standardmäßigen Modelltrainings- und Inferenzcode bereit. 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 vollständiges Beispiel für die Verwendung von EI mit MXNet in SageMakerfinden Sie im Beispiel-Notebook unter https://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 zu verwenden SageMaker, müssen Sie die -deployMethode der Schätzer- oder Model lobjekteaufrufen. Anschließend geben Sie einen Beschleunigertyp mit dem accelerator_type-Eingabeargument an. Informationen zur Verwendung von PyTorch im Amazon SageMaker Python SDK finden Sie unter SageMaker PyTorch Schätzer und Modelle.

Der Einfachheit halber SageMaker stellt standardmäßigen Modelltrainings- und Inferenzcode bereit. 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 verwenden, den Sie erstellen, verwenden Sie das Low-Level-AWSSDK für Python (Boto 3). laden Sie die AWS EI-fähigen Versionen von TensorFlow, Apache MXNet oder PyTorch Machine Learning-Frameworks herunter und importieren Sie sie und schreiben Sie Ihr Trainingsskript mit diesen 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ähigen Versionen von TensorFlow und MXNet sind derzeit als Binärdateien verfügbar, die an Amazon S3-Speicherorten gespeichert sind. Sie können die EI-fähige Binärdatei für TensorFlow aus dem Amazon S3-Bucket unter console.aws.amazon.com/s3/buckets/amazonei-tensorflow herunterladen. Informationen zum Erstellen eines Containers, der die EI-fähige Version von verwendet TensorFlow, 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-Bucket unter console.aws.amazon.com/s3/buckets/amazonei-apachemxnet herunterladen. 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-fähige Binärdatei für PyTorch herunterladen. Informationen zum Erstellen eines Containers, der die Elastic Inference-fähige Version von verwendet PyTorch, finden Sie unter Erstellen Ihres Images.

Erstellen eines EI-Endpunkts mit AWS SDK 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.