Utiliser EI sur les points de terminaison SageMaker hébergés par Amazon - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser EI sur les points de terminaison SageMaker hébergés par Amazon

Pour utiliser Elastic Inference (EI) sur Amazon SageMaker avec un point de terminaison hébergé à des fins d'inférence en temps réel, spécifiez un accélérateur EI lorsque vous créez le modèle déployable à héberger sur ce point de terminaison. Vous pouvez effectuer cette opération de différentes manières :

  • Utilisez les versions du SDK Amazon SageMaker Python de MXnet PyTorch ou des conteneurs prédéfinis pour TensorFlow, MXnet et TensorFlow SageMaker PyTorch

  • Créez votre propre conteneur et utilisez l' SageMaker API de bas niveau (Boto 3). Vous devrez importer la version compatible IE de TensorFlow MXnet ou PyTorch des sites Amazon S3 fournis dans votre conteneur, puis utiliser l'une de ces versions pour écrire votre script de formation.

  • Employez les algorithmes intégrés Classification des images – MXNet ou Détection d'objets : MXNet, et utilisez le AWS SDK for Python (Boto3) pour exécuter votre tâche d'entraînement et créer votre modèle déployable ainsi que le point de terminaison hébergé.

Utiliser EI avec un SageMaker TensorFlow conteneur

Pour l'utiliser TensorFlow avec EI in SageMaker, vous devez appeler la deploy méthode des objets Estimator ou Model. Vous pouvez ensuite spécifier un type d'accélérateur au moyen de l'argument d'entrée correspondant. Pour plus d'informations sur l'utilisation TensorFlow dans le SDK SageMaker Python, consultez : https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/index.html.

SageMaker fournit un code d'entraînement et d'inférence du modèle par défaut pour votre commodité. Pour les formats de fichier personnalisés, il se peut que vous ayez besoin d'implémenter un entraînement de modèle et un code d'inférence personnalisés.

Utiliser un objet évaluateur

Pour utiliser un objet évaluateur avec EI, lorsque vous utilisez la méthode deploy, incluez l'argument d'entrée accelerator_type. L'évaluateur renvoie un objet prédicteur dont nous appelons la méthode deploy, comme illustré dans l'exemple de code.

# 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')

Utiliser un objet modèle

Pour utiliser un objet modèle avec EI, lorsque vous utilisez la méthode deploy, incluez l'argument d'entrée accelerator_type. L'évaluateur renvoie un objet prédicteur dont nous appelons la méthode deploy, comme illustré dans l'exemple de code.

# 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')

Utiliser EI avec un conteneur SageMaker MXnet

Pour utiliser MXnet avec EI in SageMaker, vous devez appeler la deploy méthode des objets Estimator ou Model. Vous spécifiez ensuite un type d'accélérateur à l'aide de l'argument d'entrée accelerator_type. Pour plus d'informations sur l'utilisation de MXnet dans le SDK Amazon SageMaker Python, consultez https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/index.html

Pour votre commodité, SageMaker fournit un code d'entraînement et d'inférence du modèle par défaut. Pour les formats de fichier personnalisés, il se peut que vous ayez besoin d'écrire du code d'entraînement et d'inférence de modèle personnalisé.

Utiliser un objet évaluateur

Pour utiliser un objet évaluateur avec EI, lorsque vous utilisez la méthode deploy, incluez l'argument d'entrée accelerator_type. L'évaluateur renvoie un objet prédicteur dont nous appelons la méthode deploy, comme illustré dans l'exemple de code.

# 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')

Utiliser un objet modèle

Pour utiliser un objet modèle avec EI, lorsque vous utilisez la méthode deploy, incluez l'argument d'entrée accelerator_type. L'évaluateur renvoie un objet prédicteur dont nous appelons la méthode deploy, comme illustré dans l'exemple de code.

# 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')

Utiliser EI avec un SageMaker PyTorch conteneur

Pour l'utiliser PyTorch avec EI in SageMaker, vous devez appeler la deploy méthode des objets Estimator ou Model. Vous spécifiez ensuite un type d'accélérateur à l'aide de l'argument d'entrée accelerator_type. Pour plus d'informations sur l'utilisation PyTorch dans le SDK Amazon SageMaker Python, consultez SageMaker PyTorch Estimateurs et modèles.

Pour votre commodité, SageMaker fournit un code d'entraînement et d'inférence du modèle par défaut. Pour les formats de fichier personnalisés, il se peut que vous ayez besoin d'écrire du code d'entraînement et d'inférence de modèle personnalisé.

Utiliser un objet évaluateur

Pour utiliser un objet évaluateur avec EI, lorsque vous utilisez la méthode deploy, incluez l'argument d'entrée accelerator_type. L'évaluateur renvoie un objet prédicteur dont nous appelons la méthode deploy, comme illustré dans l'exemple de code suivant.

# 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')

Utiliser un objet modèle

Pour utiliser un objet modèle avec EI, lorsque vous utilisez la méthode deploy, incluez l'argument d'entrée accelerator_type. Le modèle renvoie un objet prédicteur dont nous appelons la méthode deploy, comme illustré dans l'exemple de code suivant.

# 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')

Utilisation d'EI avec votre propre conteneur

Pour utiliser IE avec un modèle dans un conteneur personnalisé que vous créez, utilisez le AWS SDK de bas niveau pour Python (Boto 3). Téléchargez et importez les versions AWS compatibles IE d' TensorFlowApache MXnet ou des frameworks d'apprentissage PyTorch automatique, et rédigez votre script d'entraînement à l'aide de ces frameworks.

Importez la version EI de TensorFlow, MXnet, ou PyTorch dans votre conteneur Docker

Pour utiliser EI avec votre propre conteneur, vous devez importer la bibliothèque Amazon EI TensorFlow Serving, la bibliothèque Amazon EI Apache MXnet ou la bibliothèque PyTorch compatible Elastic Inference dans votre conteneur. Les versions compatibles IE de et de TensorFlow MXnet sont actuellement disponibles sous forme de fichiers binaires stockés dans des emplacements Amazon S3. Vous pouvez télécharger le fichier binaire compatible IE depuis le compartiment Amazon S3 à l'adresse TensorFlow console.aws.amazon.com/s3/buckets/amazonei-tensorflow. Pour plus d'informations sur la création d'un conteneur utilisant la version compatible IE de TensorFlow, consultez https://github.com/aws/sagemaker-tensorflow-container#building-the-sagemaker-elastic-inference-tensorflow-serving-container. Vous pouvez télécharger le binaire compatible EI pour Apache MXNet à partir du compartiment Amazon S3 public à l'adresse console.aws.amazon.com/s3/buckets/amazonei-apachemxnet. Pour plus d'informations sur la création d'un conteneur utilisant la version compatible EI de MXNet, consultez https://github.com/aws/sagemaker-mxnet-container#building-the-sagemaker-elastic-inference-mxnet-container. Vous pouvez télécharger le fichier binaire compatible avec Elastic Inference pour. PyTorch Pour plus d'informations sur la création d'un conteneur utilisant la version compatible avec Elastic Inference de PyTorch, consultez Création de votre image.

Création d'un point de terminaison EI avec le AWS SDK pour Python (Boto 3)

Pour créer un point de terminaison à l'aide du AWS SDK pour Python (Boto 3), vous devez d'abord créer une configuration de point de terminaison. La configuration de point de terminaison spécifie un ou plusieurs modèles (appelés variantes de production) que vous souhaitez héberger au point de terminaison. Pour attacher EI à une ou plusieurs des variantes de production hébergées au point de terminaison, vous devez spécifier l'un des types d'instance EI en tant que champ AcceleratorType pour cette ProductionVariant. Vous pouvez ensuite transmettre cette configuration de point de terminaison lorsque vous créez le point de terminaison.

Création d'une configuration de point de terminaison

Pour utiliser EI, vous devez spécifier un type d'accélérateur dans la configuration de point de terminaison.

# 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'])

Création d'un point de terminaison

Une fois que vous avez créé une configuration de point de terminaison avec un type d'accélérateur, vous pouvez créer un point de terminaison.

endpoint_name = 'ImageClassificationEndpoint-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) endpoint_response = sagemaker.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name)

Après avoir créé le point de terminaison, vous pouvez l'appeler en utilisant la méthode invoke_endpoint dans un objet d'exécution Boto3, comme vous le feriez pour tout autre point de terminaison.