Hébergement de modèles FAQs - 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.

Hébergement de modèles FAQs

Consultez les FAQ éléments suivants pour obtenir des réponses aux questions fréquemment posées sur l'hébergement d' SageMaker inférence.

Hébergement général

Les FAQ éléments suivants répondent aux questions générales courantes relatives à l' SageMaker inférence.

R : Une fois que vous avez créé et entraîné des modèles, Amazon SageMaker propose quatre options pour les déployer afin que vous puissiez commencer à faire des prédictions. L'inférence en temps réel convient aux charges de travail avec des exigences de latence de l'ordre de la milliseconde, des charges utiles allant jusqu'à 6 Mo et des durées de traitement allant jusqu'à 60 secondes. La transformation par lots est idéale pour les prédictions hors ligne sur de grands lots de données disponibles à l'avance. L'inférence asynchrone est conçue pour les charges de travail qui ne nécessitent pas une latence inférieure à la seconde, dont les charges utiles vont jusqu'à 1 Go et dont les durées de traitement vont jusqu'à 15 minutes. Avec Serverless Inference, vous pouvez déployer rapidement des modèles de machine learning pour l'inférence sans avoir à configurer ni à gérer l'infrastructure sous-jacente, et vous ne payez que pour la capacité de calcul utilisée pour traiter les demandes d'inférence, ce qui est idéal pour les charges de travail intermittentes.

R : Le schéma suivant peut vous aider à choisir une option de déploiement du modèle SageMaker d'hébergement.

Organigramme expliquant comment choisir une option de déploiement de modèle dans SageMaker.

Le schéma précédent vous guide tout au long du processus de décision suivant. Si vous souhaitez traiter les demandes par lots, vous pouvez choisir la transformation par lots. Sinon, si vous souhaitez recevoir une inférence pour chaque demande adressée à votre modèle, vous pouvez choisir l'inférence asynchrone, l'inférence sans serveur ou l'inférence en temps réel. Vous pouvez choisir l'inférence asynchrone si vous avez de longues durées de traitement ou des charges utiles importantes et que vous souhaitez mettre les demandes en file d'attente. Vous pouvez choisir l'inférence sans serveur si votre charge de travail présente un trafic imprévisible ou intermittent. Vous pouvez choisir l'inférence en temps réel si vous avez un trafic soutenu et que vous avez besoin d'une latence plus faible et constante pour vos demandes.

R : Pour optimiser vos coûts avec SageMaker Inference, vous devez choisir l'option d'hébergement adaptée à votre cas d'utilisation. Vous pouvez également utiliser les fonctionnalités d'inférence telles qu'Amazon SageMaker Savings Plans, l'optimisation des modèles avec SageMaker Neo, les points de terminaison multimodèles et les points de terminaison multiconteneurs, ou le dimensionnement automatique. Pour obtenir des conseils sur la façon d'optimiser vos coûts d'inférence, consultez Bonnes pratiques d'optimisation des coûts d'inférence.

R : Vous devez utiliser Amazon SageMaker Inference Recommender si vous avez besoin de recommandations pour la bonne configuration des terminaux afin d'améliorer les performances et de réduire les coûts. Auparavant, les scientifiques des données qui souhaitaient déployer leurs modèles devaient exécuter des tests comparatifs manuels pour sélectionner la bonne configuration de points de terminaison. Tout d'abord, ils devaient sélectionner le type d'instance de machine learning approprié parmi plus de 70 types d'instance disponibles en fonction des besoins en ressources de leurs modèles et de leurs exemples de charges utiles, puis optimiser le modèle pour tenir compte des différents matériels. Ensuite, ils devaient mener des tests de charge approfondis pour vérifier que les exigences de latence et de débit étaient respectées et que les coûts étaient faibles. Inference Recommender élimine cette complexité en vous aidant à réaliser les tâches suivantes :

  • Démarrer en quelques minutes grâce à une recommandation d'instance.

  • Mener des tests de charge sur différents types d'instances pour obtenir des recommandations sur votre configuration de points de terminaison en quelques heures.

  • Régler automatiquement les paramètres de conteneur et de serveur de modèle, et effectuer des optimisations de modèle pour un type d'instance donné.

R : Les SageMaker points de HTTP REST terminaison sont des points de terminaison qui utilisent un serveur Web conteneurisé, qui inclut un serveur modèle. Ces conteneurs sont responsables du chargement et du traitement des demandes pour un modèle de machine learning. Ils implémentent un serveur Web qui répond à /invocations et /ping sur le port 8080.

Les modèles de serveurs courants incluent TensorFlow Serving TorchServe et Multi Model Server. SageMaker les conteneurs Framework intègrent ces modèles de serveurs.

R : Dans SageMaker Inference, tout est conteneurisé. SageMaker fournit des conteneurs gérés pour les frameworks courants tels que TensorFlowSKlearn, et HuggingFace. Pour une liste complète et actualisée de ces images, consultez Images disponibles (langue française non garantie).

Il existe parfois des frameworks personnalisés pour lesquels vous pouvez avoir besoin de créer un conteneur. Cette approche est connue sous le nom de Bring Your Own Container ou BYOC. Avec BYOC cette approche, vous fournissez l'image Docker pour configurer votre framework ou votre bibliothèque. Vous envoyez ensuite l'image vers Amazon Elastic Container Registry (AmazonECR) afin de pouvoir l'utiliser avec SageMaker. Pour un exemple d'BYOCapproche, consultez la section Présentation des conteneurs pour Amazon. SageMaker

Au lieu de créer une image à partir de zéro, vous pouvez également étendre un conteneur. Vous pouvez prendre l'une des images de base qui la SageMaker fournit et y ajouter vos dépendances dans votre Dockerfile.

R : SageMaker offre la capacité d'apporter votre propre modèle de framework entraîné que vous avez appris en dehors SageMaker et de le déployer sur n'importe quelle option SageMaker d'hébergement.

SageMaker vous oblige à empaqueter le modèle dans un model.tar.gz fichier et à disposer d'une structure de répertoire spécifique. Chaque framework possède sa propre structure de modèle (consultez la question suivante pour voir des exemples de structures). Pour plus d'informations, consultez la SDK documentation SageMaker Python pour TensorFlowPyTorch, et MXNet.

Bien que vous puissiez choisir parmi des images de framework prédéfinies telles que TensorFlow PyTorch, et MXNet pour héberger votre modèle entraîné, vous pouvez également créer votre propre conteneur pour héberger vos modèles entraînés sur des points de SageMaker terminaison. Pour une procédure pas-à-pas, consultez l'exemple de bloc-notes Jupyter Création de votre propre conteneur d'algorithmes (langue française non garantie).

R : SageMaker nécessite que les artefacts de votre modèle soient compressés dans un .tar.gz fichier ou une archive tar. SageMaker extrait automatiquement ce .tar.gz fichier dans le /opt/ml/model/ répertoire de votre conteneur. L'archive ne doit pas contenir de liens symboliques ni de fichiers inutiles. Si vous utilisez l'un des conteneurs du framework, tel que, ou TensorFlow PyTorchMXNet, le conteneur s'attend à ce que votre TAR structure soit la suivante :

TensorFlow

model.tar.gz/ |--[model_version_number]/ |--variables |--saved_model.pb code/ |--inference.py |--requirements.txt

PyTorch

model.tar.gz/ |- model.pth |- code/ |- inference.py |- requirements.txt # only for versions 1.3.1 and higher

MXNet

model.tar.gz/ |- model-symbol.json |- model-shapes.json |- model-0000.params |- code/ |- inference.py |- requirements.txt # only for versions 1.6.0 and higher

A : ContentType est le MIME type de données d'entrée dans le corps de la demande (le MIME type de données que vous envoyez à votre point de terminaison). Le serveur de modèle utilise ContentType pour déterminer s'il peut traiter ou non le type fourni.

Acceptest le MIME type de réponse d'inférence (le MIME type de données renvoyé par votre point de terminaison). Le serveur de modèle utilise le type Accept pour déterminer s'il peut traiter ou non le renvoi du type fourni.

Les MIME types courants incluent text/csvapplication/json, etapplication/jsonlines.

R : SageMaker transmet toute demande au conteneur modèle sans modification. Ce conteneur doit contenir la logique permettant de désérialiser la demande. Pour obtenir des informations sur les formats définis pour les algorithmes intégrés, consultez Formats de données courants à l'inférence. Si vous créez votre propre conteneur ou utilisez un conteneur SageMaker Framework, vous pouvez inclure la logique permettant d'accepter le format de demande de votre choix.

De même, renvoie SageMaker également la réponse sans modification, puis le client doit désérialiser la réponse. Dans le cas des algorithmes intégrés, les réponses sont renvoyées dans des formats spécifiques. Si vous créez votre propre conteneur ou utilisez un conteneur SageMaker Framework, vous pouvez inclure la logique permettant de renvoyer une réponse dans le format de votre choix.

Utilisez l'APIappel Invoke Endpoint pour faire une inférence par rapport à votre point de terminaison.

Lorsque vous transmettez votre entrée sous forme de charge utile au InvokeEndpointAPI, vous devez fournir le type de données d'entrée correct attendu par votre modèle. Lorsque vous transmettez une charge utile dans l'InvokeEndpointAPIappel, les octets de demande sont transmis directement au conteneur modèle. Par exemple, pour une image, vous pouvez utiliser application/jpeg pour ContentType et veiller à ce que votre modèle puisse effectuer une inférence sur ce type de données. Cela s'applique à JSON la vidéo ou à tout autre type d'entrée auquel vous pourriez avoir affaire. CSV

Les limites de taille de la charge utile sont un autre facteur à prendre en compte. En termes de points de terminaison en temps réel et sans serveur, la limite de la charge utile est de 6 Mo. Vous pouvez diviser votre vidéo en plusieurs images et appeler le point de terminaison avec chaque image individuellement. Autrement, si votre cas d'utilisation le permet, vous pouvez envoyer l'intégralité de la vidéo dans la charge utile à l'aide d'un point de terminaison asynchrone, qui prend en charge des charges utiles pouvant atteindre jusqu'à 1 Go.

Pour un exemple illustrant comment exécuter l'inférence par reconnaissance d'image sur de grandes vidéos à l'aide de l'inférence asynchrone, consultez ce billet de blog.

Inférence en temps réel

Les FAQ éléments suivants répondent aux questions courantes relatives à l'inférence SageMaker en temps réel.

R : Vous pouvez créer un SageMaker point de AWS terminaison à l'aide d'outils pris en charge tels que le SageMaker Python AWS SDKsSDK, le AWS Management Console AWS CloudFormation, et le. AWS Cloud Development Kit (AWS CDK)

La création d'un point de terminaison comporte trois entités clés : un SageMaker modèle, une configuration de point de SageMaker terminaison et un SageMaker point de terminaison. Le SageMaker modèle pointe vers les données du modèle et l'image que vous utilisez. La configuration du point de terminaison définit vos variantes de production, qui peuvent inclure le type et le nombre d'instances. Vous pouvez ensuite utiliser l'appel create_endpoint ou l'APIappel .deploy () pour créer un point de terminaison en utilisant SageMaker les métadonnées de votre modèle et de la configuration du point de terminaison.

R : Non, vous pouvez utiliser les différentes options AWS SDKs (voir Invoke/Create pour les options disponiblesSDKs) ou même appeler APIs directement le site Web correspondant.

R : Un point de terminaison multimodèle est une option d'inférence en temps réel qui SageMaker fournit. Avec les points de terminaison multimodèles, vous pouvez héberger des milliers de modèles derrière un seul point de terminaison. Un serveur multimodèle est un framework open source destiné à traiter des modèles de machine learning. Il fournit les fonctionnalités HTTP frontales et de gestion des modèles requises par les points de terminaison multimodèles pour héberger plusieurs modèles au sein d'un même conteneur, charger des modèles dans le conteneur et les décharger dynamiquement hors du conteneur, et effectuer des inférences sur un modèle chargé spécifié.

R : L'inférence SageMaker en temps réel prend en charge diverses architectures de déploiement de modèles, telles que les points de terminaison multi-modèles, les points de terminaison multi-conteneurs et les pipelines d'inférence en série.

Points de terminaison multimodèles (MME) : MME permet aux clients de déployer des milliers de modèles hyperpersonnalisés de manière rentable. Tous les modèles sont déployés sur une flotte à ressources partagées. MMEfonctionne mieux lorsque les modèles ont une taille et une latence similaires et appartiennent au même framework ML. Ces points de terminaison sont idéals lorsque vous n'avez pas besoin d'appeler le même modèle à tout moment. Vous pouvez charger dynamiquement les modèles respectifs sur le SageMaker terminal pour répondre à votre demande.

Points de terminaison multi-conteneurs (MCE) : MCE permet aux clients de déployer 15 conteneurs différents dotés de frameworks et de fonctionnalités ML variés, sans démarrage à froid, tout en utilisant un SageMaker seul point de terminaison. Vous pouvez appeler directement ces conteneurs. MCEest idéal lorsque vous souhaitez conserver tous les modèles en mémoire.

Pipelines d'inférence en série (SIP) : vous pouvez les utiliser SIP pour enchaîner 2 à 15 conteneurs sur un seul point de terminaison. SIPest principalement adapté pour combiner le prétraitement et l'inférence de modèles sur un seul point de terminaison et pour les opérations à faible latence.

Serverless Inference

Les FAQ éléments suivants répondent aux questions les plus fréquemment posées sur Amazon SageMaker Serverless Inference.

R : Déployez des modèles avec Amazon SageMaker Serverless Inference est une option de traitement spécialisé de modèle sans serveur qui facilite le déploiement et la mise à l'échelle de modèles de machine learning. Les points de terminaison d'inférence sans serveur démarrent automatiquement les ressources de calcul et les font évoluer en fonction du trafic, et vous évitent ainsi d'avoir à choisir un type d'instance, à exécuter la capacité allouée et à gérer la mise à l'échelle. En option, vous pouvez spécifier la mémoire requise pour votre point de terminaison sans serveur. Vous ne payez que pour la durée d'exécution du code d'inférence et la quantité de données traitées, et non pour les périodes d'inactivité.

R : L'inférence sans serveur simplifie l'expérience des développeurs en éliminant la nécessité d'allouer des capacités à l'avance et de gérer des politiques de dimensionnement. L'inférence sans serveur peut passer instantanément de dizaines à des milliers d'inférences en quelques secondes en fonction des modèles d'utilisation, ce qui la rend idéale pour les applications de machine learning avec un trafic intermittent ou imprévisible. Par exemple, un service de chatbot utilisé par une société de traitement des salaires connaît une augmentation des demandes de renseignements à la fin du mois, alors que le trafic est intermittent le reste du mois. Dans de tels scénarios, l'allocation d'instances pour le mois entier n'est pas rentable, car, au final, vous payez pour des périodes d'inactivité.

L'inférence sans serveur permet de gérer ces types de cas d'utilisation en fournissant une mise à l'échelle automatique et rapide dès le départ, sans qu'il vous soit nécessaire de prévoir le trafic à l'avance ni de gérer des politiques de dimensionnement. En outre, vous ne payez que pour le temps de calcul nécessaire à l'exécution de votre code d'inférence et au traitement des données, ce qui est idéal pour les charges de travail à trafic intermittent.

R : La RAM taille minimale de votre point de terminaison sans serveur est de 1024 Mo (1 Go) et la RAM taille maximale que vous pouvez choisir est de 6 144 Mo (6 Go). Voici les tailles de mémoire parmi lesquelles vous pouvez choisir : 1 024 Mo, 2 048 Mo, 3 072 Mo, 4 096 Mo, 5 120 Mo ou 6 144 Mo. Serverless Inference attribue automatiquement des ressources de calcul proportionnelles à la mémoire que vous sélectionnez. Si vous choisissez une taille de mémoire plus grande, votre conteneur a accès à davantage de mémoirevCPUs.

Choisissez la taille de la mémoire de votre point de terminaison en fonction de la taille de votre modèle. En règle générale, la taille de la mémoire doit être au moins aussi grande que celle de votre modèle. Vous devrez peut-être effectuer un benchmarking afin de choisir la bonne sélection de mémoire pour votre modèle en fonction de votre latenceSLAs. Les augmentations de taille de mémoire ont des prix différents ; consultez la page de SageMaker tarification d'Amazon pour plus d'informations.

Transformation par lots

Les FAQ éléments suivants répondent aux questions les plus fréquemment posées sur SageMaker Batch Transform.

R : Pour des formats de fichiers spécifiques tels que Recordio et CSVTFRecord, SageMaker vous pouvez diviser vos données en mini-lots à enregistrement unique ou à enregistrements multiples et les envoyer sous forme de charge utile à votre modèle de conteneur. Lorsque la valeur de BatchStrategy estMultiRecord, SageMaker envoie le nombre maximum d'enregistrements dans chaque demande, jusqu'à la MaxPayloadInMB limite. Lorsque la valeur de BatchStrategy estSingleRecord, SageMaker envoie des enregistrements individuels dans chaque demande.

R : Le délai d'expiration maximal pour la transformation par lots est de 3 600 secondes. La taille maximale de la charge utile pour un enregistrement (par mini-lot) est de 100 Mo.

R : Si vous utilisez le CreateTransformJobAPI, vous pouvez réduire le temps nécessaire à l'exécution des tâches de transformation par lots en utilisant des valeurs optimales pour des paramètres tels que MaxPayloadInMBMaxConcurrentTransforms, ouBatchStrategy. Le rapport qualité-prix idéal pour MaxConcurrentTransforms est égal au nombre de travailleurs de calcul dans la tâche de transformation par lots. Si vous utilisez la SageMaker console, vous pouvez spécifier ces valeurs de paramètres optimales dans la section Configuration supplémentaire de la page de configuration de la tâche de transformation par lots. SageMaker trouve automatiquement les paramètres optimaux pour les algorithmes intégrés. Pour les algorithmes personnalisés, indiquez les valeurs suivantes par l'intermédiaire du point de terminaison execution-parameters.

R : Batch Transform prend en charge CSV etJSON.

Inférence asynchrone

Les FAQ éléments suivants répondent aux questions générales courantes relatives à l' SageMaker inférence asynchrone.

R : L'inférence asynchrone met en file d'attente les demandes entrantes et les traite de manière asynchrone. Cette option est idéale pour les demandes avec des charges utiles de grandes tailles ou de longues durées de traitement qui doivent être traitées dès leur arrivée. En option, vous pouvez configurer des paramètres de mise à l'échelle automatique pour réduire le nombre d'instances à zéro lorsque vous ne traitez pas activement de demandes.

R : Amazon SageMaker prend en charge le dimensionnement automatique (autoscaling) de votre point de terminaison asynchrone. La mise à l'échelle automatique ajuste dynamiquement le nombre d'instances allouées pour un modèle en réponse aux modifications de la charge de travail. Contrairement aux autres modèles hébergés pris SageMaker en charge, l'inférence asynchrone vous permet également de réduire à zéro vos instances de points de terminaison asynchrones. Les requêtes reçues lorsqu'il n'y a aucune instance sont mises en file d'attente pour traitement une fois que le point de terminaison augmente. Pour plus d'informations, consultez Mettre automatiquement à l'échelle un point de terminaison asynchrone.

Amazon SageMaker Serverless Inference est également automatiquement réduit à zéro. Vous ne le verrez pas, car il SageMaker gère le dimensionnement de vos points de terminaison sans serveur, mais si vous ne rencontrez aucun trafic, la même infrastructure s'applique.