Verwenden Sie EI auf Amazon SageMaker Hosted Endpoints - 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 Sie EI auf Amazon SageMaker Hosted Endpoints

Um Elastic Inference (EI) in Amazon SageMaker mit einem gehosteten Endpunkt für Echtzeit-Inferenzen zu verwenden, geben Sie einen EI-Beschleuniger an, wenn Sie das bereitstellbare Modell erstellen, das auf 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 entweder TensorFlow, MXNet oder PyTorch und die SageMaker vorgefertigten Container für TensorFlow, MXNet und PyTorch

  • Erstellen Sie Ihren eigenen Container und verwenden Sie die SageMaker Low-Level-API (Boto 3). Sie müssen die EI-fähige Version von MXNet oder TensorFlow PyTorch von den bereitgestellten Amazon S3 S3-Standorten in Ihren Container importieren und eine dieser Versionen verwenden, um Ihr Trainingsskript zu schreiben.

  • Nutzen Sie den integrierten – Bildklassifikation - MXNetoder Objekterkennung – MXNet-Algorithmus und verwenden Sie AWS SDK for Python (Boto3) , um Ihren Trainingsauftrag auszuführen und Ihr bereitstellbares Modell und den gehosteten Endpunkt zu erstellen.

Verwenden Sie EI mit einem Container SageMaker TensorFlow

Um TensorFlow mit EI in zu verwenden SageMaker, müssen Sie die deploy Methode der Objekte Estimator oder Model aufrufen. Anschließend geben Sie einen Accelerator-Typ mithilfe des Eingabearguments accelerator-type an. Informationen zur Verwendung TensorFlow im SageMaker Python-SDK finden Sie unter: https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/index.html.

SageMaker bietet standardmäßigen Modelltrainings- und Inferenzcode für Ihre Bequemlichkeit. Für benutzerdefinierte Dateiformate müssen Sie möglicherweise benutzerdefinierten Modelltrainings- 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 Sie EI mit einem SageMaker MXNet-Container

Um MXNet mit EI in zu verwenden SageMaker, müssen Sie die deploy Methode der Objekte Estimator oder Model aufrufen. 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 bietet es Standardcode für Modelltraining und Inferenz. Für benutzerdefinierte Dateiformate müssen Sie möglicherweise benutzerdefinierten Modelltrainings- 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')

Verwenden Sie EI mit einem Container SageMaker PyTorch

Um PyTorch mit EI in zu verwenden SageMaker, müssen Sie die deploy Methode der Objekte Estimator oder Model aufrufen. Anschließend geben Sie einen Beschleunigertyp mit dem accelerator_type-Eingabeargument an. Informationen zur Verwendung PyTorch im Amazon SageMaker Python SDK finden Sie unter SageMaker PyTorch Estimators and Models.

Der Einfachheit halber SageMaker bietet es Standardcode für Modelltraining und Inferenz. Für benutzerdefinierte Dateiformate müssen Sie möglicherweise benutzerdefinierten Modelltrainings- 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 von Ihnen erstellten benutzerdefinierten Container zu verwenden, verwenden Sie das AWS Low-Level-SDK für Python (Boto 3). Laden Sie die AWS EI-fähigen Versionen von TensorFlow Apache MXNet oder PyTorch Machine-Learning-Frameworks herunter, importieren Sie sie und schreiben Sie Ihr Trainingsskript mit diesen Frameworks.

Importieren Sie die 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 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 S3-Speicherorten gespeichert sind. Sie können die EI-fähige Binärdatei für TensorFlow aus dem Amazon S3 S3-Bucket unter console.aws.amazon.com/s3/buckets/amazonei-tensorflow herunterladen. Informationen zum Erstellen eines Containers, der die TensorFlow EI-fähige Version von 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-Bucket unter console.aws.amazon.com/s3/buckets/amazonei-apachemxnet herunterladen. 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 herunterladen. Informationen zum Erstellen eines Containers, der die Elastic Inference Inference-fähige Version von verwendet PyTorch, finden Sie unter Erstellen Ihres Images.

Erstellen Sie einen EI-Endpunkt mit AWS SDK für Python (Boto 3)

Um einen Endpunkt mithilfe des 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.