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.
Stellen Sie ein kompiliertes Modell mithilfe des SDK SageMaker bereit
Sie müssen den Abschnitt mit den Voraussetzungen erfüllen AWS SDK for Python (Boto3), AWS CLI wenn das Modell mit oder der Amazon SageMaker AI-Konsole kompiliert wurde. Folgen Sie einem der folgenden Anwendungsfälle, um ein mit SageMaker Neo kompiliertes Modell bereitzustellen, basierend darauf, wie Sie Ihr Modell kompiliert haben.
Themen
Wenn Sie Ihr Modell mit dem SageMaker SDK kompiliert haben
Das Objekthandle sagemaker.Modelml_c5.
from sagemaker.serve import ModelBuilder model_builder = ModelBuilder( model=compiled_model, role_arn=role, instance_type='ml.c5.4xlarge', ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.c5.4xlarge' ) # Print the name of newly created endpoint print(endpoint.endpoint_name)
Wenn Sie Ihr Modell mit MXNet kompiliert haben oder PyTorch
Erstellen und implementieren Sie das SageMaker KI-Modell mitModelBuilder. Geben Sie den s3_model_data_url Parameter als S3-Pfad zu Ihrem kompilierten Modellarchiv, den role_arn Parameter als Ihre Ausführungsrolle und den instance_type Parameter für Ihre Zielinstanz an. Sie müssen die MMS_DEFAULT_RESPONSE_TIMEOUT Umgebungsvariable auch auf setzen500.
Das folgende Beispiel zeigt, wie Sie diese Funktionen verwenden, um ein kompiliertes Modell mithilfe des SageMaker Python-SDK bereitzustellen:
from sagemaker.serve import ModelBuilder # V3 uses a unified ModelBuilder approach for all frameworks model_builder = ModelBuilder( s3_model_data_url='insert S3 path of compiled model archive', role_arn='AmazonSageMaker-ExecutionRole', instance_type='ml.p3.2xlarge', env={'MMS_DEFAULT_RESPONSE_TIMEOUT': '500'}, ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.p3.2xlarge' ) # Print the name of newly created endpoint print(endpoint.endpoint_name)
Anmerkung
Die Richtlinien AmazonSageMakerFullAccess und AmazonS3ReadOnlyAccess müssen der AmazonSageMaker-ExecutionRole IAM-Rolle zugeordnet werden.
Wenn Sie Ihr Modell mit Boto3, SageMaker Console oder der CLI für kompiliert haben TensorFlow
Konstruieren Sie ein Modellobjekt und rufen Sie dann deploy auf:
from sagemaker.serve import ModelBuilder model_builder = ModelBuilder( s3_model_data_url='S3 path for model file', role_arn=role, instance_type='ml.c5.xlarge', ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.c5.xlarge' )
Weitere Informationen finden Sie unter Direktes Deployment aus Modellartefakten
Sie können aus dieser Liste einen Amazon ECR-URI für ein Docker-Image auswählen, der Ihren Anforderungen entspricht.
Weitere Informationen zum Konstruieren eines TensorFlowModel Objekts finden Sie im SageMaker SDK
Anmerkung
Ihre erste Inferenzanforderung kann eine hohe Latenz haben, wenn Sie Ihr Modell auf einer GPU bereitstellen. Dies liegt daran, dass bei der ersten Inferenzanforderung ein optimierter Rechenkern erstellt wird. Wir empfehlen Ihnen, eine Aufwärmdatei mit Inferenzanfragen zu erstellen und diese zusammen mit Ihrer Modelldatei zu speichern, bevor Sie sie an ein TFX senden. Dies wird als „Aufwärmen“ des Modells bezeichnet.
Der folgende Codeausschnitt zeigt im Abschnitt mit den Voraussetzungen, wie die Aufwärmdatei für die Bildklassifizierung erstellt wird:
import tensorflow as tf from tensorflow_serving.apis import classification_pb2 from tensorflow_serving.apis import inference_pb2 from tensorflow_serving.apis import model_pb2 from tensorflow_serving.apis import predict_pb2 from tensorflow_serving.apis import prediction_log_pb2 from tensorflow_serving.apis import regression_pb2 import numpy as np with tf.python_io.TFRecordWriter("tf_serving_warmup_requests") as writer: img = np.random.uniform(0, 1, size=[224, 224, 3]).astype(np.float32) img = np.expand_dims(img, axis=0) test_data = np.repeat(img, 1, axis=0) request = predict_pb2.PredictRequest() request.model_spec.name = 'compiled_models' request.model_spec.signature_name = 'serving_default' request.inputs['Placeholder:0'].CopyFrom(tf.compat.v1.make_tensor_proto(test_data, shape=test_data.shape, dtype=tf.float32)) log = prediction_log_pb2.PredictionLog( predict_log=prediction_log_pb2.PredictLog(request=request)) writer.write(log.SerializeToString())
Weitere Informationen zum „Aufwärmen“ Ihres Modells finden Sie auf der TensorFlow TFX-Seite