Pilote automatique Amazon SageMaker permet aux organisations de créer et de déployer rapidement un modèle d'apprentissage automatique (ML) de bout en bout et un pipeline d'inférence avec seulement quelques lignes de code ou même sans aucun code du tout avec Amazon SageMakerStudio. Le pilote automatique décharge la lourde charge de la configuration de l'infrastructure et le temps nécessaire pour créer un pipeline complet, y compris l'ingénierie des fonctionnalités, la sélection des modèles et le réglage des hyperparamètres.
Dans cet article, nous montrons comment passer des données brutes à un pipeline d'inférence robuste et entièrement déployé avec Autopilot.
Vue d'ensemble de la solution
Nous utilisons Ensemble de données public de Lyft sur le partage de vélos pour cette simulation pour prédire si oui ou non un utilisateur participe à la Programme de vélos en libre-service pour tous. Il s'agit d'un simple problème de classification binaire.
Nous voulons montrer à quel point il est facile de créer un pipeline d'inférence automatisé et en temps réel pour classer les utilisateurs en fonction de leur participation au programme Bike Share for All. À cette fin, nous simulons un pipeline d'ingestion et d'inférence de données de bout en bout pour une entreprise imaginaire de vélos en libre-service opérant dans la région de la baie de San Francisco.
L'architecture se décompose en deux parties : le pipeline d'ingestion et le pipeline d'inférence.
Nous nous concentrons principalement sur le pipeline ML dans la première section de cet article et examinons le pipeline d'ingestion de données dans la deuxième partie.
Pré-requis
Pour suivre cet exemple, remplissez les conditions préalables suivantes :
- Créer une nouvelle instance de bloc-notes SageMaker.
- Créer un Firehose de données Amazon Kinesis flux de diffusion avec un AWS Lambda fonction de transformation. Pour obtenir des instructions, consultez Transformation des données Amazon Kinesis Firehose avec AWS Lambda. Cette étape est facultative et n'est nécessaire que pour simuler le flux de données.
Exploration de données
Téléchargeons et visualisons le jeu de données, qui se trouve dans un espace public Service de stockage simple Amazon (Amazon S3) compartiment et site Web statique :
La capture d'écran suivante montre un sous-ensemble des données avant transformation.
La dernière colonne des données contient la cible que nous voulons prédire, qui est une variable binaire prenant une valeur Oui ou Non, indiquant si l'utilisateur participe au programme Bike Share for All.
Examinons la distribution de notre variable cible pour tout déséquilibre de données.
Comme le montre le graphique ci-dessus, les données sont déséquilibrées, avec moins de personnes participant au programme.
Nous devons équilibrer les données pour éviter un biais de surreprésentation. Cette étape est facultative car Autopilot propose également une approche interne pour gérer automatiquement le déséquilibre de classe, qui utilise par défaut une métrique de validation du score F1. De plus, si vous choisissez d'équilibrer les données vous-même, vous pouvez utiliser des techniques plus avancées pour gérer le déséquilibre des classes, telles que SMOTÉ or GAN.
Pour cet article, nous sous-échantillonnons la classe majoritaire (Non) comme technique d'équilibrage des données :
Le code suivant enrichit les données et sous-échantillonne la classe surreprésentée :
Nous avons délibérément laissé nos caractéristiques catégorielles non codées, y compris notre valeur cible binaire. En effet, Autopilot s'occupe d'encoder et de décoder les données pour nous dans le cadre de l'ingénierie automatique des fonctionnalités et du déploiement du pipeline, comme nous le verrons dans la section suivante.
La capture d'écran suivante montre un échantillon de nos données.
Les données des graphiques suivants semblent par ailleurs normales, avec une distribution bimodale représentant les deux pics pour les heures de pointe du matin et les heures de pointe de l'après-midi, comme on peut s'y attendre. Nous observons également de faibles activités le week-end et la nuit.
Dans la section suivante, nous transmettons les données au pilote automatique afin qu'il puisse exécuter une expérience pour nous.
Construire un modèle de classification binaire
Le pilote automatique exige que nous spécifiions les compartiments de destination d'entrée et de sortie. Il utilise le compartiment d'entrée pour charger les données et le compartiment de sortie pour enregistrer les artefacts, tels que l'ingénierie des fonctionnalités et les blocs-notes Jupyter générés. Nous conservons 5 % de l'ensemble de données pour évaluer et valider les performances du modèle une fois la formation terminée et téléchargeons 95 % de l'ensemble de données dans le compartiment d'entrée S3. Voir le code suivant :
Une fois que nous avons téléchargé les données vers la destination d'entrée, il est temps de démarrer le pilote automatique :
Tout ce dont nous avons besoin pour commencer à expérimenter est d'appeler la méthode fit (). Le pilote automatique a besoin de l'emplacement S3 d'entrée et de sortie et de la colonne d'attribut cible comme paramètres requis. Après le traitement des fonctionnalités, le pilote automatique appelle Réglage automatique du modèle SageMaker pour trouver la meilleure version d'un modèle en exécutant de nombreuses tâches d'entraînement sur votre ensemble de données. Nous avons ajouté le paramètre facultatif max_candidates pour limiter le nombre de candidats à 30, soit le nombre de tâches d'entraînement qu'Autopilot lance avec différentes combinaisons d'algorithmes et d'hyperparamètres afin de trouver le meilleur modèle. Si vous ne spécifiez pas ce paramètre, sa valeur par défaut est 250.
On peut observer la progression de l'Autopilot avec le code suivant :
La formation prend un certain temps. Pendant qu'il est en cours d'exécution, examinons le flux de travail du pilote automatique.
Pour trouver le meilleur candidat, utilisez le code suivant :
La capture d'écran suivante montre notre sortie.
Notre modèle a atteint une précision de validation de 96 %, nous allons donc le déployer. Nous pourrions ajouter une condition telle que nous n'utilisions le modèle que si la précision est supérieure à un certain niveau.
Pipeline d'inférence
Avant de déployer notre modèle, examinons notre meilleur candidat et ce qui se passe dans notre pipeline. Voir le code suivant :
Le diagramme suivant montre notre sortie.
Autopilot a construit le modèle et l'a empaqueté dans trois conteneurs différents, chacun exécutant séquentiellement une tâche spécifique : transformer, prédire et transformer à l'envers. Cette inférence en plusieurs étapes est possible avec un Pipeline d'inférence SageMaker.
Une inférence en plusieurs étapes peut également enchaîner plusieurs modèles d'inférence. Par exemple, un conteneur peut effectuer analyse des composants principaux avant de transmettre les données au conteneur XGBoost.
Déployer le pipeline d'inférence sur un point de terminaison
Le processus de déploiement ne nécessite que quelques lignes de code :
Configurons notre point de terminaison pour la prédiction avec un prédicteur :
Maintenant que notre point de terminaison et notre prédicteur sont prêts, il est temps d'utiliser les données de test que nous avons mises de côté et de tester la précision de notre modèle. Nous commençons par définir une fonction utilitaire qui envoie les données une ligne à la fois à notre point de terminaison d'inférence et obtient une prédiction en retour. Parce que nous avons un XGBoost modèle, nous supprimons la variable cible avant d'envoyer la ligne CSV au point de terminaison. De plus, nous avons supprimé l'en-tête du CSV de test avant de parcourir le fichier, ce qui est également une autre exigence pour XGBoost sur SageMaker. Voir le code suivant :
La capture d'écran suivante montre notre sortie.
Calculons maintenant la précision de notre modèle.
Voir le code suivant:
Nous obtenons une précision de 92%. C'est légèrement inférieur aux 96% obtenus lors de l'étape de validation, mais c'est tout de même assez élevé. Nous ne nous attendons pas à ce que la précision soit exactement la même car le test est effectué avec un nouvel ensemble de données.
Ingestion de données
Nous avons téléchargé les données directement et les avons configurées pour la formation. Dans la vraie vie, vous devrez peut-être envoyer les données directement depuis l'appareil périphérique vers le lac de données et demander à SageMaker de les charger directement depuis le lac de données dans le bloc-notes.
Kinesis Data Firehose est une bonne option et le moyen le plus simple de charger de manière fiable des données en continu dans des lacs de données, des magasins de données et des outils d'analyse. Il peut capturer, transformer et charger des données de streaming dans Amazon S3 et d'autres magasins de données AWS.
Pour notre cas d'utilisation, nous créons un flux de diffusion Kinesis Data Firehose avec une fonction de transformation Lambda pour effectuer un nettoyage léger des données lorsqu'elles traversent le flux. Voir le code suivant :
Cette fonction Lambda effectue une légère transformation des données diffusées depuis les appareils vers le lac de données. Il attend un fichier de données au format CSV.
Pour l'étape d'ingestion, nous téléchargeons les données et simulons un flux de données vers Kinesis Data Firehose avec une fonction de transformation Lambda et dans notre lac de données S3.
Simulons le streaming de quelques lignes :
Nettoyer
Il est important de supprimer toutes les ressources utilisées dans cet exercice pour minimiser les coûts. Le code suivant supprime le point de terminaison d'inférence SageMaker que nous avons créé ainsi que les données d'entraînement et de test que nous avons téléchargées :
Conclusion
Les ingénieurs ML, les scientifiques des données et les développeurs de logiciels peuvent utiliser Autopilot pour créer et déployer un pipeline d'inférence avec peu ou pas d'expérience en programmation ML. Le pilote automatique permet d'économiser du temps et des ressources, en utilisant la science des données et les meilleures pratiques de ML. Les grandes organisations peuvent désormais déplacer les ressources d'ingénierie de la configuration de l'infrastructure vers l'amélioration des modèles et la résolution des cas d'utilisation métier. Les startups et les petites organisations peuvent se lancer dans l'apprentissage automatique avec peu ou pas d'expertise en ML.
Pour démarrer avec SageMaker Autopilot, consultez le page produit ou accédez à SageMaker Autopilot dans SageMaker Studio.
Nous vous recommandons également d'en savoir plus sur les autres fonctionnalités importantes de SageMaker, telles que Magasin de fonctionnalités Amazon SageMaker, qui s'intègre à Pipelines Amazon SageMaker pour créer, ajouter la recherche et la découverte de fonctionnalités et réutiliser les workflows ML automatisés. Vous pouvez exécuter plusieurs simulations de pilote automatique avec différentes fonctionnalités ou variantes cibles dans votre ensemble de données. Vous pouvez également aborder cela comme un problème d'allocation dynamique de véhicules dans lequel votre modèle essaie de prédire la demande de véhicules en fonction du temps (comme l'heure de la journée ou le jour de la semaine) ou de l'emplacement, ou une combinaison des deux.
À propos des auteurs
Doug Mbaya est un architecte de solutions senior spécialisé dans les données et l'analyse. Doug travaille en étroite collaboration avec les partenaires AWS, les aidant à intégrer la solution de données et d'analyse dans le cloud. L'expérience antérieure de Doug comprend l'assistance aux clients AWS dans le segment du covoiturage et de la livraison de nourriture.
Valério Perrone est un responsable des sciences appliquées travaillant sur Amazon SageMaker Automatic Model Tuning and Autopilot.
- Coinsmart. Le meilleur échange Bitcoin et Crypto d'Europe.
- Platoblockchain. Intelligence métaverse Web3. Connaissance amplifiée. ACCÈS LIBRE.
- CryptoHawk. Radar Altcoins. Essai gratuit.
- Source : https://aws.amazon.com/blogs/machine-learning/automate-a-shared-bikes-and-scooters-classification-model-with-amazon-sagemaker-autopilot/
- '
- "
- &
- 100
- Qui sommes-nous
- accès
- atteint
- activités
- Avancée
- algorithmes
- Tous
- allocation
- Amazon
- analytique
- Une autre
- api
- une approche
- architecture
- Réservé
- arguments
- Automatisation
- AWS
- baie
- LES MEILLEURS
- les meilleures pratiques
- construire
- la performance des entreprises
- Appelez-nous
- Peut obtenir
- les soins
- cas
- Change
- choix
- classification
- Nettoyage
- le cloud
- code
- Colonne
- combinaison
- комбинации
- Société
- composant
- condition
- configuration
- Contenant
- Conteneurs
- contient
- pourriez
- Clients
- données
- informatique
- science des données
- journée
- page de livraison.
- Demande
- déployer
- déploiement
- mobiles
- dispositif
- Compatibles
- différent
- découverte
- Commande
- distribution
- down
- Goutte
- Dynamic
- Edge
- chiffrement
- Endpoint
- ENGINEERING
- Les ingénieurs
- événement
- exemple
- Sauf
- Exercises
- attend
- Découvrez
- expérience
- nous a permis de concevoir
- Fonctionnalité
- Fonctionnalités:
- Prénom
- Focus
- suivre
- Abonnement
- nourriture
- Francisco
- fonction
- obtention
- aller
- Bien
- Maniabilité
- ici
- Haute
- Comment
- How To
- HTTPS
- important
- Y compris
- Infrastructure
- intégrer
- IT
- Emploi
- Emplois
- gros
- lance
- apprentissage
- Niveau
- Bibliothèque
- lumière
- léger
- Gamme
- peu
- charge
- localement
- emplacement
- click
- machine learning
- Majorité
- Fabrication
- manager
- ML
- modèle
- numériques jumeaux (digital twin models)
- (en fait, presque toutes)
- cahier
- code
- Offres Speciales
- d'exploitation
- Option
- de commander
- organisations
- Autre
- autrement
- participation
- partenaires,
- Personnes
- performant
- possible
- prédiction
- Problème
- processus
- Programme
- Programmation
- fournir
- public
- vite.
- raw
- en temps réel
- recommander
- record
- Articles
- conditions
- Ressources
- Retours
- Avis
- Courir
- pour le running
- se ruer
- San
- San Francisco
- économie
- Sciences
- scientifiques
- Rechercher
- choisi
- Série
- set
- Partager
- commun
- décalage
- étapes
- simulation
- Taille
- sleep
- So
- Logiciels
- scission
- Commencer
- j'ai commencé
- Startups
- storage
- STORES
- courant
- streaming
- streaming
- studio
- Target
- techniques
- tester
- Essais
- Avec
- fiable
- aujourd'hui
- les outils
- Formation
- Transformer
- De La Carrosserie
- us
- utilisé
- utilisateurs
- utilitaire
- Plus-value
- véhicule
- Site Web
- semaine
- que
- Wikipédia
- dans les
- de travail
- vos contrats