Utilisation d'Amazon SageMaker Elastic Inference (EI) - Amazon SageMaker

Utilisation d'Amazon SageMaker Elastic Inference (EI)

Grâce à Amazon Elastic Inference (EI), accélérez le débit et réduisez la latence d'obtention d'inférences en temps réel depuis vos modèles de deep learning déployés en tant que modèles hébergés par Amazon SageMaker, à une fraction du coût d'utilisation d'une instance GPU pour votre point de terminaison. EI vous permet d'ajouter l'accélération d'inférence à un point de terminaison hébergé pour une fraction du coût d'utilisation d'une instance GPU complète. Ajoutez un accélérateur EI dans l'une des tailles disponibles à un modèle déployable en plus d'un type d'instance d'UC, puis ajoutez ce modèle sous la forme d'une variante de production à une configuration de point de terminaison employée pour déployer un point de terminaison hébergé. Vous pouvez aussi ajouter un accélérateur EI à une instance de bloc-notes SageMaker de sorte à tester et évaluer les performances d'inférence lors de la création de vos modèles.

Elastic Inference est pris en charge dans les versions compatibles EI de TensorFlow, Apache MXNet et PyTorch. Pour utiliser une autre infrastructure deep learning, exporter votre modèle en utilisant ONNX, puis importez-le dans MXNet. Vous pouvez ensuite utiliser votre modèle avec EI en tant que modèle MXNet. Pour de plus amples informations sur l'importation d'un modèle ONNX dans MxNet, veuillez consulter Importing an ONNX model into MXNet.

Fonctionnement d'EI

Les accélérateurs Amazon Elastic Inference sont des périphériques attachés au réseau qui fonctionnent conjointement avec les instances SageMaker dans votre point de terminaison pour accélérer vos appels d'inférence. Elastic Inference accélère l'inférence en vous permettant d'attacher des GPU fractionnés à une instance SageMaker. Vous pouvez sélectionner l'instance client pour exécuter votre application et attacher un accélérateur Elastic Inference pour utiliser la bonne quantité d'accélération GPU pour vos besoins d'inférence. Elastic Inference vous aide à réduire vos coûts lorsque vous n'utilisez pas pleinement votre instance GPU à des fins d'inférence. Nous vous recommandons d'essayer Elastic Inference avec votre modèle en utilisant différentes instances CPU et tailles d'accélérateur.

Les types d'accélérateurs EI suivants sont disponibles. Vous pouvez configurer vos points de terminaison ou instances de bloc-notes avec n'importe quel type d'accélérateur EI.

Dans la table, le débit en téraflops (TFLOPS) est répertorié à la fois pour des opérations à virgule flottante à simple précision (F32) ou moitié moins précises (F16). La mémoire (en Go) est également indiquée.

Type d'accélérateur Débit F32 en TFLOPS Débit F16 en TFLOPS Mémoire en Go
ml.eia2.medium 1 8 2
ml.eia2.large 2 16 4
ml.eia2.xlarge 4 32 8
ml.eia1.medium 1 8 1
ml.eia1.large 2 16 2
ml.eia1.xlarge 4 32 4

Sélection d'un type d'accélérateur EI

Tenez compte des facteurs suivants lorsque vous choisissez un type d'accélérateur pour un modèle hébergé :

  • Les modèles, les tenseurs d'entrée et les tailles de lot influent sur la quantité de mémoire dont vous avez besoin pour l'accélérateur. Démarrez avec un type d'accélérateur qui fournit au moins autant de mémoire que la taille de fichier de votre modèle entraîné. Prenez en compte le fait qu'un modèle peut utiliser beaucoup plus de mémoire que la taille du fichier lors de l'exécution.

  • Les exigences liées aux ressources de calcul de l'UC, à la mémoire système principale, à l'accélération basée sur GPU et à la mémoire d'accélérateur varient considérablement d'un type de modèle de deep learning à l'autre. En outre, les exigences en matière de latence et de débit de l'application déterminent la quantité de calcul et l'accélération dont vous avez besoin. Testez bien différentes configurations de types d'instance et de tailles d'accélérateur EI pour vous assurer que vous choisissez la configuration qui répond le mieux aux besoins de performances de votre application.

Pour de plus amples informations sur la sélection d'un accélérateur EI, veuillez consulter :

Utilisation d'EI dans une instance de bloc-notes SageMaker

En général, vous créez et testez des modèles de machine learning dans un bloc-notes SageMaker avant de les déployer en production. Vous pouvez attacher EI à l'instance de bloc-notes lorsque vous créez une instance de bloc-notes. Vous pouvez configurer un point de terminaison qui est hébergé localement sur l'instance de bloc-notes en utilisant le mode local pris en charge par les modèles et estimateurs TensorFlow, MXNet et PyTorch dans le kit SDK Amazon SageMaker Python pour tester la performance d'inférence. PyTorch compatible Elastic Inference n'est actuellement pas pris en charge sur les instances de bloc-notes. Pour plus d'informations sur la façon d'attacher EI à une instance de bloc-notes et de configurer un point de terminaison local pour l'inférence, consultez Attacher EI à une instance de bloc-notes. Il existe également des noyaux SageMaker Notebook Jupyter compatibles Elastic Inference pour les versions compatibles Elastic Inference de TensorFlow et Apache MXNet. Pour de plus amples informations sur l'utilisation d'instances de bloc-notes SageMaker, veuillez consulter Use Amazon SageMaker Notebook Instances (Utilisation d'instances de bloc-notes Amazon SageMaker).

Utilisation d'EI sur un point de terminaison hébergé

Lorsque vous êtes prêt à déployer votre modèle en production pour fournir des inférences, vous créez un point de terminaison hébergé SageMaker. Vous pouvez attacher EI à l'instance sur laquelle votre point de terminaison est hébergé pour augmenter ses performances en matière de fourniture d'inférences. Pour plus d'informations sur la façon d'attacher EI à une instance hébergée de point de terminaison, consultez Utilisation d'EI sur des points de terminaison hébergés Amazon SageMaker.

Infrastructures qui prennent en charge EI

Amazon Elastic Inference est conçu pour être utilisé avec les versions AWS améliorées des cadres de machine learning TensorFlow, Apache MXNet et PyTorch. Ces versions améliorées des infrastructures sont automatiquement intégrées dans les conteneurs lorsque vous utilisez le kit SDK Python d'Amazon SageMaker, ou vous pouvez les télécharger en tant que fichiers binaires et les importer dans vos propres conteneurs Docker.

Vous pouvez télécharger les fichiers binaires TensorFlow compatibles EI, du compartiment Amazon S3 public amazonei-tensorflow vers les conteneurs de service TensorFlow. Pour de plus amples informations sur la création d'un conteneur qui utilise la version de TensorFlow compatible avec EI, veuillez consulter la page relative à Amazon Elastic Inference avec TensorFlow dans SageMaker.

Vous pouvez télécharger les fichiers binaires MXNet compatibles EI, du compartiment Amazon S3 public amazonei-apachemxnet vers les conteneurs de service MXNet. Pour de plus amples informations sur la création d'un conteneur qui utilise la version de MXNet compatible avec EI, veuillez consulter la page relative à Amazon Elastic Inference avec MXNet dans SageMaker.

Vous pouvez télécharger les fichiers binaires PyTorch compatibles EI, du compartiment Amazon S3 public amazonei-pytorch vers les conteneurs de service PyTorch. Pour de plus amples informations sur la création d'un conteneur qui utilise la version de PyTorch compatible avec EI, veuillez consulter la page relative à Amazon Elastic Inference avec PyTorch dans SageMaker.

Pour utiliser Elastic Inference dans un point de terminaison hébergé, vous pouvez choisir l'un des cadres suivants, en fonction de vos besoins.

Si, pour déployer votre modèle, vous devez créer un conteneur personnalisé complexe et nécessitant des extensions pour un cadre non pris en charge par les conteneurs SageMaker préconçus, utilisez le kit SDK pour Python (Boto 3) AWS de bas niveau.

Utilisation d'EI avec les algorithmes intégrés SageMaker

Actuellement, les algorithmes intégrés Algorithme de classification d'images et Algorithme de détection d'objets prennent en charge EI. Pour obtenir un exemple qui utilise l'algorithme de classification des images avec EI, veuillez consulter End-to-End Multiclass Image Classification Example.

Exemples de blocs-notes EI

Les exemples de blocs-notes suivants illustrent l'utilisation d'EI dans SageMaker :