Questions fréquentes (FAQ) sur l'hébergement de modèle - Amazon SageMaker AI

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.

Questions fréquentes (FAQ) sur l'hébergement de modèle

Consultez les questions fréquentes suivantes sur l’hébergement d’inférence SageMaker AI afin d’obtenir des réponses.

Hébergement général

Les éléments de FAQ suivants répondent aux questions générales courantes concernant l’inférence SageMaker AI.

R : Une fois que vous avez créé et entraîné des modèles, Amazon SageMaker AI propose quatre options pour les déployer et vous permettre de commencer à réaliser 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 données utiles allant jusqu’à 25 Mo et des durées de traitement allant jusqu’à 60 secondes pour les réponses régulières et 8 minutes pour les réponses en streaming. 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 données utiles vont jusqu’à 1 Go et dont les durées de traitement vont jusqu’à 60 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.

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 d’inférence SageMaker AI, vous devez choisir l’option d’hébergement adaptée à votre cas d’utilisation. Vous pouvez également utiliser des caractéristiques d’inférence telles qu’Amazon SageMaker AI Savings Plans, l’optimisation des modèles avec SageMaker Neo, les points de terminaison multimodèles, les points de terminaison multiconteneurs ou la mise à l’échelle 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 devriez utiliser Amazon SageMaker Inference Recommender si vous avez besoin de recommandations quant à la bonne configuration des points de terminaison à adopter 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 points de terminaison SageMaker AI sont des points de terminaison HTTP REST qui utilisent un serveur web conteneurisé, qui inclut un serveur de 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 serveurs de modèle courants incluent TensorFlow Serving, TorchServe et Multi Model Server. Ces serveurs de modèle sont intégrés dans les conteneurs de cadre SageMaker.

R : Dans l’inférence SageMaker AI, tout est conteneurisé. SageMaker AI fournit des conteneurs gérés pour les cadres populaires tels que TensorFlow, SKlearn 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 (Apportez votre propre conteneur) ou BYOC. Avec l'approche BYOC, vous fournissez l'image Docker pour configurer votre framework ou votre bibliothèque. Ensuite, vous envoyez (push) l’image à Amazon Elastic Container Registry (Amazon ECR) afin de pouvoir l’utiliser avec SageMaker AI.

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 fournies par SageMaker AI et lui ajouter vos dépendances dans votre Dockerfile.

R : SageMaker AI offre la possibilité d’apporter votre propre modèle de cadre entraîné en dehors de SageMaker AI, et de le déployer à l’aide de n’importe quelle option d’hébergement SageMaker AI.

SageMaker AI nécessite que vous empaquetiez le modèle dans un fichier model.tar.gz et que vous disposiez 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 documentation sur le kit SDK Python pour SageMaker pour TensorFlow, PyTorch et MXNet.

Bien que vous puissiez choisir parmi des images de cadre prédéfini comme 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 les points de terminaison SageMaker AI. 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 AI nécessite que vos artefacts de modèle soient compressés dans un fichier .tar.gz ou une archive. SageMaker AI extrait automatiquement ce fichier .tar.gz dans le répertoire /opt/ml/model/ 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 TensorFlow, PyTorch ou MXNet, le conteneur s'attend à ce que votre structure TAR 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

R : ContentType est le type MIME des données d'entrée dans le corps de la demande (type MIME des 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.

Accept est le type MIME de la réponse d'inférence (type MIME des données renvoyées 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 types MIME courants incluent text/csv, application/json et application/jsonlines.

R : SageMaker AI transmet toute demande au conteneur de 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 de cadre SageMaker AI, vous pouvez inclure la logique permettant d’accepter le format de demande de votre choix.

SageMaker AI renvoie é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 de cadre SageMaker AI, vous pouvez inclure la logique permettant de renvoyer une réponse au format de votre choix.

Utilisez l'appel d'API InvokeEndpoint pour effectuer une inférence par rapport à votre point de terminaison.

Lorsque vous transmettez votre entrée sous forme de charge utile à l'API InvokeEndpoint, vous devez fournir le type de données d'entrée correct que votre modèle attend. Lorsque vous transmettez une charge utile dans l'appel d'API InvokeEndpoint, les octets de la demande sont transférés directement au conteneur de 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 aux données JSON, CSV et vidéo, et à tout autre type d'entrée que vous pouvez être amené à traiter.

Les limites de taille de la charge utile sont un autre facteur à prendre en compte. Les limites de données utiles sont de 25 Mo pour les points de terminaison en temps réel et de 4 Mo pour les points de terminaison sans serveur. 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 éléments de FAQ suivants répondent à des questions courantes concernant l’inférence en temps réel SageMaker AI.

R : Vous pouvez créer un point de terminaison SageMaker AI via les outils pris en charge par AWS tels que les kits AWS SDK, le kit SageMaker Python SDK, la AWS Management Console, AWS CloudFormation et AWS Cloud Development Kit (AWS CDK).

La création d’un point de terminaison comporte trois entités clés : un modèle SageMaker AI, une configuration du point de terminaison SageMaker AI et un point de terminaison SageMaker AI. Le modèle SageMaker AI pointe vers l’image et les données du modèle 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 d’API create_endpoint ou l’appel .deploy() pour SageMaker AI afin de créer un point de terminaison à l’aide des métadonnées issues de votre modèle et de votre configuration du point de terminaison.

R : Non, vous pouvez utiliser les différents kits AWS SDK (consultez Invoke/Create pour les kits SDK disponibles) ou même appeler directement les API Web correspondantes.

R : Un point de terminaison multimodèle est une option d’inférence en temps réel fournie par SageMaker AI. 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 de gestion de front-end et de modèle HTTP requises par les points de terminaison multimodèles pour héberger plusieurs modèles dans un conteneur unique, y charger des modèles et décharger dynamiquement des modèles hors du conteneur, et effectuer une inférence sur un modèle chargé spécifié.

R : L’inférence en temps réel SageMaker AI prend en charge diverses architectures de déploiement de modèle, telles que les points de terminaison multimodèles, les points de terminaison multiconteneurs et les pipelines d’inférence série.

Points de terminaison multimodèles (MME) : ils permettent aux clients de déployer des milliers de modèles hyperpersonnalisés de manière économique. Tous les modèles sont déployés sur une flotte à ressources partagées. Les points de terminaison multimodèles fonctionnent le mieux quand les modèles ont une taille et une latence similaires et appartiennent au même framework de machine learning. 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 point de terminaison SageMaker AI pour traiter votre demande.

Points de terminaison multiconteneurs (MCE) : ils permettent aux clients de déployer 15 conteneurs différents avec divers frameworks et fonctionnalités de machine learning, sans démarrages à froid, tout en utilisant un seul point de terminaison SageMaker. Vous pouvez appeler directement ces conteneurs. Un point de terminaison multiconteneur est idéal lorsque vous souhaitez conserver tous les modèles en mémoire.

Pipelines d'inférence série (SIP) : vous pouvez utiliser un pipeline d'inférence série pour chaîner entre eux de 2 à 15 conteneurs sur un seul point de terminaison. Un pipeline d'inférence série convient principalement pour combiner le prétraitement et l'inférence de modèle dans un seul point de terminaison et pour les opérations à faible latence.

Serverless Inference

Les éléments de FAQ suivants répondent à des questions courantes concernant l'inférence sans serveur Amazon SageMaker.

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 : Votre point de terminaison sans serveur a une taille de mémoire RAM minimale de 1 024 Mo (1 Go) et la 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 importante, votre conteneur a accès à plus de vCPU.

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 une analyse comparative afin de choisir la bonne sélection de mémoire pour votre modèle en fonction de vos accords de niveau de service de latence. Les incréments de taille de mémoire ont des prix différents. Consultez la page de tarification d'Amazon SageMaker pour plus d'informations.

Transformation par lots

Les éléments de FAQ suivants répondent à des questions courantes concernant la transformation par lots SageMaker AI.

R : Pour des formats de fichier spécifiques tels que CSV, RecordIO et TFRecord, SageMaker AI peut diviser vos données en mini-lots à enregistrement unique ou à enregistrements multiples, et les envoyer sous forme de données utiles vers votre modèle de conteneur. Quand la valeur de BatchStrategy est MultiRecord, SageMaker AI envoie le nombre maximal d’enregistrements dans chaque demande, jusqu’à la limite MaxPayloadInMB. Quand la valeur de BatchStrategy est SingleRecord, SageMaker AI 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 l'API CreateTransformJob, 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 MaxPayloadInMB, MaxConcurrentTransforms et BatchStrategy. 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 console SageMaker AI, vous pouvez spécifier ces valeurs de paramètre optimales dans la section Configuration supplémentaire de la page Configuration de tâche de transformation par lots. SageMaker AI trouve automatiquement les valeurs de paramètres optimales 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 : La transformation par lots prend en charge les formats CSV et JSON.

Inférence asynchrone

Les éléments de FAQ suivants répondent à des questions générales courantes concernant l’inférence asynchrone SageMaker AI.

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 AI prend en charge la mise à l’échelle 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 en charge par SageMaker AI, avec l’inférence asynchrone, vous pouvez également réduire verticalement vos instances de points de terminaison asynchrones à zéro. 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.

L'inférence sans serveur Amazon SageMaker réduit également automatiquement à zéro. Vous ne verrez pas cela, car SageMaker AI gère la mise à l’échelle de vos points de terminaison sans serveur, mais si vous ne rencontrez aucun trafic, la même infrastructure s’applique.