Déployer avec Amazon SageMaker

Amazon SageMaker facilite la génération de prédictions en fournissant tout ce dont vous avez besoin pour déployer des modèles de machine learning en production et contrôler la qualité des modèles.

Caractéristiques

Surveillance des modèles

Les modèles de machine learning sont généralement formés et évalués à l'aide de données historiques, mais leur qualité se dégrade après leur déploiement en production. En effet, la distribution des données envoyées aux modèles de prédiction peut différer de la distribution des données utilisées pendant la formation. La validité des résultats des prédictions peut évoluer avec le temps et des erreurs peuvent être introduites en amont, ce qui peut avoir une incidence sur la qualité du modèle. Pour éviter cela, vous devez surveiller la qualité des modèles en production, identifier rapidement les problèmes et prendre des mesures correctives, par exemple procéder à un audit ou reprendre la formation des modèles. Pour ce faire, vous devez créer des outils pour stocker en toute sécurité les données liées aux prédictions, puis appliquer diverses techniques statistiques pour analyser ces données et évaluer la qualité du modèle. Enfin, vous devez détecter les écarts dans la qualité du modèle pour prendre les mesures correctives appropriées. Parallèlement à l'élaboration d'autres outils, il est possible de reprendre régulièrement la formation des modèles, mais cette méthode peut s'avérer coûteuse.

Amazon SageMaker Model Monitor rend inutile le développement d'autres outils pour surveiller les modèles en production, et détecte à quel moment des mesures correctives doivent être prises. SageMaker Model Monitor surveille en permanence la qualité des modèles de machine learning en production et vous avertit en cas d'écarts dans la qualité des modèles.

SageMaker Model Monitor analyse régulièrement les données recueillies en fonction des règles intégrées ou de vos règles personnalisées pour détecter d'éventuelles violations à ces règles. Les règles intégrées peuvent être utilisées pour analyser les données tabulaires et détecter les problèmes courants, tels que des valeurs aberrantes dans des données de prévision, la dérive des distributions de données par rapport aux ensembles de données de formation et les changements dans l'exactitude des prévisions en fonction des observations du monde réel. SageMaker Model Monitor peut être utilisé dans SageMaker Studio, et des métriques peuvent être envoyées à Amazon CloudWatch pour vous permettre de configurer des alarmes pour l'audit et poursuivre la formation des modèles. Vous pouvez consulter les alertes pour comprendre quelles données sont à l'origine de la dérive afin d'ajuster vos données d'entraînement en conséquence. Les demandes de prédiction et les réponses sont stockées en toute sécurité pour tous les modèles déployés dans SageMaker sans nécessiter de modification du code.

Model Monitor

Déploiement en un clic

Amazon SageMaker facilite le déploiement en production du modèle formé : en un seul clic,vous pouvez commencer à générer des prédictions concernant les données en temps réel ou par lot. En un clic,vous pouvez déployer vos modèles sur des instances de machine learning Amazon à scalabilité automatique dans de nombreuses zones de disponibilité, pour obtenir une forte redondance. Spécifiez simplement le type d'instances et le nombre minimum et maximum souhaité. SageMaker s'occupe du reste. SageMaker lance les instances, déploie votre modèle et configure le point de terminaison HTTPS sécurisé pour votre application. Votre application doit simplement inclure un appel d'API à ce point de terminaison pour obtenir une inférence à faible latence et haut débit. Cette architecture vous permet d'intégrer en quelques minutes vos nouveaux modèles dans votre application, car pour modifier le modèle, il n'est plus nécessaire de changer le code de l'application.

Batch Transform

La plupart du temps, le traitement de lots de données pour les prédictions en temps différé s'effectue en redimensionnant de grands ensembles de données en plus petits morceaux de données et en gérant les points de terminaison en temps réel. Cela peut être coûteux et sujet à erreurs. Avec la fonctionnalité Batch Transform d'Amazon SageMaker, il n'est pas nécessaire de décomposer l'ensemble de données en plusieurs morceaux ni de gérer des points de terminaison en temps réel. Batch Transform vous permet d'exécuter des prédictions sur des ensembles de données de grande ou de petite taille. À l'aide d'une API simple, vous pouvez demander des prédictions pour un grand nombre d'enregistrements de données et transformer ces données rapidement et facilement. Les données peuvent aller de quelques octets à plusieurs pétaoctets pour exécuter des explorations.

Former une fois, déployer partout

Pour obtenir des performances élevées en matière d'inférence sur toute une gamme d'appareils périphériques, plusieurs semaines ou mois sont généralement nécessaires pour régler manuellement un modèle pour chaque appareil cible. En effet, chaque configuration matérielle possède un ensemble de capacités et de restrictions qui lui est propre. Amazon SageMaker Neo vous permet de former une fois vos modèles de machine learning et de les exécuter n'importe où dans le cloud et à la périphérie.

SageMaker Neo utilise le machine learning pour optimiser automatiquement un modèle entraîné afin qu'il fonctionne jusqu'à deux fois plus vite et consomme moins d'un dixième de l'espace mémoire, sans perte de précision pour votre environnement de déploiement cible. Vous démarrez avec un modèle de machine learning créé à l'aide de MXNet, TensorFlow, PyTorch ou XGBoost et formé grâce à SageMaker. Ensuite, vous choisissez la plateforme matérielle cible sur laquelle vous souhaitez déployer le modèle. SageMaker Neo sera alors en mesure de compiler le modèle formé dans un exécutable sur un simple clic. Le compilateur utilise un réseau neuronal pour identifier et appliquer toutes les optimisations de performances spécifiques qui vont permettre à votre modèle de fonctionner plus efficacement sur la plate-forme matérielle cible. Le modèle peut ensuite être déployé pour commencer à faire des prédictions dans le cloud ou à la périphérie. Les capacités de calcul local et d'inférence de machine learning peuvent être apportées à la périphérie avec AWS IoT Greengrass.

Greengrass prend en charge les modèles optimisés par Neo afin de faciliter le déploiement à la périphérie. Vous pouvez alors déployer vos modèles directement à la périphérie par le biais de mises à jour à distance. Neo est également disponible sous forme de code open source sous le nom de projet Neo-AI sous licence logicielle Apache, ce qui permet aux développeurs de personnaliser le logiciel de différents périphériques et applications.

DOUBLEMENT

DES PERFORMANCES

1/10

DE LA TAILLE DU FRAMEWORK D'ORIGINE

Intégration à Kubernetes

Kubernetes est un système open source conçu pour automatiser le déploiement, le dimensionnement et la gestion des applications conteneurisées. De nombreux clients veulent utiliser les capacités de gestion intégrée d'Amazon SageMaker pour le machine learning, mais ils veulent également que les équipes travaillant sur les plateformes et les infrastructures continuent à utiliser Kubernetes pour l'orchestration et la gestion des pipelines. SageMaker répond à cette exigence en permettant aux utilisateurs de Kubernetes de former et de déployer des modèles dans SageMaker en utilisant les opérations et les pipelines SageMaker-Kubeflow. Grâce aux opérateurs et aux pipelines, les utilisateurs de Kubernetes peuvent accéder aux outils et moteurs SageMaker ML entièrement gérés, en natif depuis Kubeflow. Il est alors inutile de gérer manuellement l'infrastructure de ML de Kubernetes et de l'optimiser tout en conservant le contrôle de l'orchestration globale via Kubernetes. En utilisant les opérateurs et les pipelines SageMaker pour Kubernetes, vous pouvez bénéficier des avantages d'un service entièrement géré pour le machine learning dans Kubernetes, sans migration des charges de travail.

Le traitement des données au-delà de la formation

Les charges de travail réelles de ML nécessitent généralement plus qu'une formation et une prédiction. Les données doivent être traitées en amont et en aval, parfois en plusieurs étapes. Il se peut que vous ayez à effectuer la formation et le déploiement à l'aide d'une séquence d'algorithmes qui doivent collaborer pour fournir des prédictions à partir de données brutes. SageMaker vous permet de déployer des pipelines de déduction afin que vous puissiez transmettre des données d'entrée brutes et exécuter le prétraitement, les prédictions et le post-traitement sur la base des demandes de déduction en temps réel ou par lot. Les pipelines de déduction peuvent se composer de frameworks de machine learning, d'algorithmes intégrés ou de conteneurs personnalisés utilisables sur Amazon SageMaker. Vous pouvez créer des pipelines de traitement des données de fonctions et des pipelines d'ingénierie de fonctions avec une suite d'outils de transformation de fonctions disponibles dans les conteneurs des frameworks d'apprentissage Scikit et SparkML dans Amazon SageMaker. Vous pouvez ensuite les déployer dans le cadre des pipelines de déduction pour réutiliser le code de traitement des données et pour faciliter la gestion des processus de machine learning.

Points de terminaison à plusieurs modèles

De plus en plus d'entreprises forment des modèles de learning machine basés sur les données des utilisateurs. Par exemple, un service de diffusion de musique en continu formera des modèles personnalisés en fonction de l'historique musical de chaque auditeur pour personnaliser les recommandations musicales. Un service de taxi pourra également former des modèles personnalisés en fonction des habitudes de circulation de chaque ville pour prévoir les temps d'attente des passagers. La construction de modèles de ML personnalisés pour chaque cas d'utilisation conduit à une plus grande précision en matière d'inférence, mais le coût du déploiement et de la gestion des modèles augmente considérablement. Ces problématiques sont plus prononcées lorsque tous les modèles ne sont pas accessibles au même rythme, mais qu'ils doivent tout de même être disponibles en tout temps.

Amazon SageMaker Multi-Model Endpoints offre un moyen évolutif et rentable de déployer un grand nombre de modèles de machine learning personnalisés. SageMaker Multi-Model Endpoints vous permet de déployer plusieurs modèles en un seul clic sur un seul point de terminaison, et de l'approvisionner à l'aide d'un seul conteneur de service. Spécifiez simplement le type d'instances et le nombre minimum et maximum souhaité. SageMaker s'occupe du reste. SageMaker lance les instances, déploie votre modèle et configure le point de terminaison HTTPS sécurisé pour votre application. Votre application doit simplement inclure un appel d'API avec le modèle cible à ce point de terminaison pour obtenir une inférence à faible latence et haut débit.

Bénéficier de hautes performances et d’une inférence à prix abordable dans le cloud

Grâce à Amazon SageMaker, vous pouvez déployer vos modèles de machine learning entraînés sur des instances Amazon Inf1, construites à l'aide de la puce AWS Inferentia, afin de fournir une inférence hautes performances à faible coût. Les instances Inf1 vous permettent d’exécuter des applications d'inférence de machine learning à grande échelle comme la reconnaissance d'images, la reconnaissance vocale, le traitement du langage naturel, la personnalisation et la détection des fraudes. Avec Amazon SageMaker Neo, vous pouvez compiler vos modèles de machine learning formés pour s’exécuter de manière optimale sur les instances Inf1 et déployer aisément les modèles compilés sur les instances Inf1 pour une inférence en temps réel.

En savoir plus

Basculer les modèles de machine learning de l'expérimentation à la production

Découvrez comment déployer des modèles de ML en production à l'aide de SageMaker

Déployer des modèles Keras ou TensorFlow formés via Amazon SageMaker

Apprendre à déployer un modèle Keras ou TensorFlow formé à l'aide d'Amazon SageMaker

Automatiser des modèles Amazon SageMaker personnalisés

Suivez ces exemples sur GitHub et automatisez l'élaboration, la formation et le déploiement de modèles de ML personnalisés.