Magasin de fonctionnalités Amazon SageMaker fournit une solution de bout en bout pour automatiser l'ingénierie des fonctionnalités pour l'apprentissage automatique (ML). Pour de nombreux cas d'utilisation du ML, les données brutes telles que les fichiers journaux, les relevés de capteurs ou les enregistrements de transactions doivent être transformées en fonctionnalités significatives optimisées pour la formation de modèles.
La qualité des fonctionnalités est essentielle pour garantir un modèle ML très précis. La transformation des données brutes en fonctionnalités à l'aide de l'agrégation, du codage, de la normalisation et d'autres opérations est souvent nécessaire et peut nécessiter des efforts importants. Les ingénieurs doivent écrire manuellement une logique personnalisée de prétraitement et d'agrégation des données dans Python ou Spark pour chaque cas d'utilisation.
Cette tâche lourde et indifférenciée est lourde, répétitive et sujette aux erreurs. Le Processeur de fonctionnalités SageMaker Feature Store réduit cette charge en transformant automatiquement les données brutes en fonctionnalités agrégées adaptées aux modèles ML de formation par lots. Il permet aux ingénieurs de fournir des fonctions simples de transformation de données, puis de gérer leur exécution à grande échelle sur Spark et de gérer l'infrastructure sous-jacente. Cela permet aux data scientists et aux ingénieurs de données de se concentrer sur la logique d'ingénierie des fonctionnalités plutôt que sur les détails de mise en œuvre.
Dans cet article, nous montrons comment une entreprise de vente de voitures peut utiliser le processeur de fonctionnalités pour transformer les données brutes des transactions de vente en fonctionnalités en trois étapes :
- Exécutions locales de transformations de données.
- Fonctionnement à distance à grande échelle à l'aide de Spark.
- Opérationnalisation via pipelines.
Nous montrons comment SageMaker Feature Store ingère les données brutes, exécute les transformations de fonctionnalités à distance à l'aide de Spark et charge les fonctionnalités agrégées résultantes dans un fichier. groupe de fonctionnalités. Ces fonctionnalités conçues peuvent ensuite être utilisées pour entraîner des modèles ML.
Pour ce cas d'utilisation, nous voyons comment SageMaker Feature Store permet de convertir les données brutes de ventes de voitures en fonctionnalités structurées. Ces fonctionnalités sont ensuite utilisées pour obtenir des informations telles que :
- Prix moyen et maximum des cabriolets rouges de 2010
- Modèles avec le meilleur kilométrage par rapport au prix
- Tendances des ventes de voitures neuves et d'occasion au fil des ans
- Différences de PDSF moyen selon les emplacements
Nous voyons également comment les pipelines SageMaker Feature Store maintiennent les fonctionnalités à jour à mesure que de nouvelles données arrivent, permettant à l'entreprise d'obtenir continuellement des informations au fil du temps.
Vue d'ensemble de la solution
Nous travaillons avec l'ensemble de données car_data.csv
, qui contient des spécifications telles que le modèle, l'année, le statut, le kilométrage, le prix et le PDSF pour les voitures neuves et d'occasion vendues par l'entreprise. La capture d'écran suivante montre un exemple de l'ensemble de données.
Le carnet de solutions feature_processor.ipynb
contient les principales étapes suivantes, que nous expliquons dans cet article :
- Créez deux groupes de fonctionnalités : un appelé
car-data
pour les records bruts de ventes de voitures et un autre appelécar-data-aggregated
pour les enregistrements agrégés de ventes de voitures. - Utilisez l'option
@feature_processor
décorateur pour charger les données dans le groupe de fonctionnalités de données de voiture à partir de Service de stockage simple Amazon (Amazon S3). - Exécutez le
@feature_processor code
à distance en tant qu'application Spark pour agréger les données. - Opérationnaliser le processeur de fonctionnalités via Pipelines SageMaker et planifier les exécutions.
- Explorez les pipelines de traitement des fonctionnalités et lignage in Amazon SageMakerStudio.
- Utilisez des fonctionnalités agrégées pour entraîner un modèle ML.
Pré-requis
Pour suivre ce tutoriel, vous avez besoin des éléments suivants :
Pour cet article, nous nous référons à ce qui suit cahier, qui montre comment démarrer avec Feature Processor à l'aide du SDK SageMaker Python.
Créer des groupes de fonctionnalités
Pour créer les groupes de fonctionnalités, procédez comme suit :
- Créer une définition de groupe de fonctionnalités pour
car-data
comme suit:
Les caractéristiques correspondent à chaque colonne du car_data.csv
base de données (Model
, Year
, Status
, Mileage
, Price
et une MSRP
).
- Ajouter l'identifiant de l'enregistrement
id
et l'heure de l'événementingest_time
au groupe de fonctionnalités :
- Créer une définition de groupe de fonctionnalités pour
car-data-aggregated
comme suit:
Pour le groupe de fonctionnalités agrégées, les fonctionnalités sont le statut de l'année modèle, le kilométrage moyen, le kilométrage maximum, le prix moyen, le prix maximum, le PDSF moyen, le PDSF maximum et le temps d'ingestion. Nous ajoutons l'identifiant de l'enregistrement model_year_status
et l'heure de l'événement ingest_time
à ce groupe de fonctionnalités.
- Maintenant, créez le
car-data
groupe de fonctionnalités :
- Créez la
car-data-aggregated
groupe de fonctionnalités :
Vous pouvez accéder à l'option SageMaker Feature Store sous Données sur le studio SageMaker Accueil menu pour voir les groupes de fonctionnalités.
Utilisez le décorateur @feature_processor pour charger des données
Dans cette section, nous transformons localement les données brutes d'entrée (car_data.csv
) d'Amazon S3 vers le car-data
groupe de fonctionnalités à l’aide du processeur de fonctionnalités Feature Store. Cette exécution locale initiale nous permet de développer et d'itérer avant d'exécuter à distance, et pourrait être effectuée sur un échantillon de données si vous le souhaitez pour une itération plus rapide.
Avec la @feature_processor
décorateur, votre fonction de transformation s'exécute dans un environnement d'exécution Spark où les arguments d'entrée fournis à votre fonction et sa valeur de retour sont des Spark DataFrames.
- Installez l' SDK du processeur de fonctionnalités du Kit de développement logiciel (SDK) SageMaker Python et ses extras en utilisant la commande suivante :
Le nombre de paramètres d'entrée dans votre fonction de transformation doit correspondre au nombre d'entrées configurées dans le @feature_processor
décorateur. Dans ce cas, le @feature_processor
le décorateur a car-data.csv
comme entrée et le car-data
groupe de fonctionnalités en sortie, indiquant qu'il s'agit d'une opération par lots avec le target_store
as OfflineStore
:
- Définir la
transform()
fonction pour transformer les données. Cette fonction effectue les actions suivantes :- Convertissez les noms de colonnes en minuscules.
- Ajoutez l'heure de l'événement au
ingest_time
colonne. - Supprimez la ponctuation et remplacez les valeurs manquantes par NA.
- Appeler le
transform()
fonction pour stocker les données dans lecar-data
groupe de fonctionnalités :
Le résultat montre que les données ont été ingérées avec succès dans le groupe de fonctionnalités de données de voiture.
La sortie du transform_df.show()
la fonction est la suivante :
Nous avons réussi à transformer les données d'entrée et à les ingérer dans le car-data
groupe de fonctionnalités.
Exécutez le code @feature_processor à distance
Dans cette section, nous démontrons l'exécution du code de traitement des fonctionnalités à distance en tant qu'application Spark à l'aide de l'outil @remote
décorateur décrit plus haut. Nous exécutons le traitement des fonctionnalités à distance à l'aide de Spark pour s'adapter à de grands ensembles de données. Spark fournit un traitement distribué sur des clusters pour gérer les données trop volumineuses pour une seule machine. Le @remote
decorator exécute le code Python local en tant que tâche de formation SageMaker à un ou plusieurs nœuds.
- Utilisez l'option
@remote
décorateur avec le@feature_processor
décorateur comme suit :
La spark_config
Le paramètre indique qu'il est exécuté en tant que Spark application
. L'instance SparkConfig configure la configuration et les dépendances Spark.
- Définir la
aggregate()
fonction pour agréger les données à l'aide de PySpark SQL et de fonctions définies par l'utilisateur (UDF). Cette fonction effectue les actions suivantes :- Enchaîner
model
,year
et unestatus
à créermodel_year_status
. - Prendre la moyenne de
price
à créeravg_price
. - Prendre la valeur maximale de
price
à créermax_price
. - Prendre la moyenne de
mileage
à créeravg_mileage
. - Prendre la valeur maximale de
mileage
à créermax_mileage
. - Prendre la moyenne de
msrp
à créeravg_msrp
. - Prendre la valeur maximale de
msrp
à créermax_msrp
. - Par groupe
model_year_status
.
- Enchaîner
- Exécutez le
aggregate()
fonction, qui crée une tâche de formation SageMaker pour exécuter l'application Spark :
En conséquence, SageMaker crée une tâche de formation pour l'application Spark définie précédemment. Il créera un environnement d'exécution Spark à l'aide du sagemaker-spark-processing image
.
Nous utilisons ici les tâches de formation SageMaker pour exécuter notre application de traitement de fonctionnalités Spark. Avec SageMaker Training, vous pouvez réduire les temps de démarrage à 1 minute ou moins en utilisant le pooling à chaud, qui n'est pas disponible dans SageMaker Processing. Cela rend la formation SageMaker mieux optimisée pour les tâches par lots courtes comme le traitement des fonctionnalités où le temps de démarrage est important.
- Pour afficher les détails, sur la console SageMaker, choisissez Emplois de formation sous Formation dans le volet de navigation, puis choisissez la tâche portant le nom
aggregate-<timestamp>
.
La sortie du agrégat() La fonction génère un code de télémétrie. Dans la sortie, vous verrez les données agrégées comme suit :
Une fois la tâche de formation terminée, vous devriez voir le résultat suivant :
Opérationnaliser le processeur de fonctionnalités via les pipelines SageMaker
Dans cette section, nous montrons comment opérationnaliser le processeur de fonctionnalités en le promouvant en pipeline SageMaker et en planifiant les exécutions.
- Tout d'abord, téléchargez le transformation_code.py fichier contenant la logique de traitement des fonctionnalités vers Amazon S3 :
- Ensuite, créez un pipeline de processeur de fonctionnalités car_data_pipeline utilisant l' .to_pipeline() fonction:
- Pour exécuter le pipeline, utilisez le code suivant :
- De même, vous pouvez créer un pipeline pour les fonctionnalités agrégées appelé
car_data_aggregated_pipeline
et commencez une course. - Planifiez le
car_data_aggregated_pipeline
à exécuter toutes les 24 heures :
Dans la section de sortie, vous verrez l'ARN du pipeline et le rôle d'exécution du pipeline, ainsi que les détails de la planification :
- Pour obtenir tous les pipelines du processeur de fonctionnalités dans ce compte, utilisez le
list_pipelines()
fonction sur le processeur de fonctionnalités :
La sortie sera la suivante:
Nous avons créé avec succès les pipelines du processeur de fonctionnalités SageMaker.
Explorez les pipelines de traitement des fonctionnalités et la lignée ML
Dans SageMaker Studio, procédez comme suit :
- Sur la console SageMaker Studio, sur le Accueil menu, choisissez Pipelines.
Vous devriez voir deux pipelines créés : car-data-ingestion-pipeline
ainsi que le car-data-aggregated-ingestion-pipeline
.
- Choisissez le
car-data-ingestion-pipeline
.
Il montre les détails de l'exécution sur le Exécutions languette.
- Pour afficher le groupe de fonctionnalités renseigné par le pipeline, choisissez Magasin de fonctionnalités sous Données et choisissez
car-data
.
Vous verrez les deux groupes de fonctionnalités que nous avons créés dans les étapes précédentes.
- Choisissez le
car-data
groupe de fonctionnalités.
Vous verrez les détails des fonctionnalités sur le Fonctionnalités: languette.
Afficher les exécutions de pipeline
Pour afficher les exécutions du pipeline, procédez comme suit :
- Sur le Exécution des pipeliness, sélectionnez
car-data-ingestion-pipeline
.
Cela montrera toutes les courses.
- Choisissez l'un des liens pour voir les détails de la course.
- Pour afficher la lignée, choisissez Lignée.
La lignée complète pour car-data
affiche la source de données d'entrée car_data.csv
et les entités en amont. La lignée pour car-data-aggregated
montre l'entrée car-data
groupe de fonctionnalités.
- Selectionnez Charger des fonctionnalités puis choisissez Interroger le lignage en amont on
car-data
ainsi que lecar-data-ingestion-pipeline
pour voir toutes les entités en amont.
La lignée complète pour car-data
le groupe de fonctionnalités devrait ressembler à la capture d’écran suivante.
De même, la lignée des car-aggregated-data
le groupe de fonctionnalités devrait ressembler à la capture d’écran suivante.
SageMaker Studio fournit un environnement unique pour suivre les pipelines planifiés, afficher les exécutions, explorer le lignage et afficher le code de traitement des fonctionnalités.
Les fonctionnalités agrégées telles que le prix moyen, le prix maximum, le kilométrage moyen, etc. car-data-aggregated
Le groupe de fonctionnalités donne un aperçu de la nature des données. Vous pouvez également utiliser ces fonctionnalités comme ensemble de données pour entraîner un modèle afin de prédire les prix des voitures ou pour d'autres opérations. Cependant, la formation du modèle est hors de portée de cet article, qui se concentre sur la démonstration des capacités de SageMaker Feature Store pour l'ingénierie des fonctionnalités.
Nettoyer
N'oubliez pas de nettoyer les ressources créées dans le cadre de cet article pour éviter d'encourir des frais permanents.
- Désactivez le pipeline planifié via le
fp.schedule()
méthode avec le paramètre state commeDisabled
:
- Supprimez les deux groupes de fonctionnalités :
Les données résidant dans le compartiment S3 et dans le magasin de fonctionnalités hors ligne peuvent entraîner des coûts. Vous devez donc les supprimer pour éviter tout frais.
- Supprimer les objets S3.
- Supprimer les enregistrements depuis le magasin de fonctionnalités.
Conclusion
Dans cet article, nous avons démontré comment une entreprise de vente de voitures a utilisé le processeur de fonctionnalités SageMaker Feature Store pour obtenir des informations précieuses à partir de ses données de vente brutes en :
- Ingérer et transformer des données par lots à grande échelle à l'aide de Spark
- Opérationnalisation des workflows d'ingénierie des fonctionnalités via les pipelines SageMaker
- Fournir un suivi du lignage et un environnement unique pour surveiller les pipelines et explorer les fonctionnalités
- Préparation de fonctionnalités agrégées optimisées pour la formation des modèles ML
En suivant ces étapes, l’entreprise a pu transformer des données auparavant inutilisables en fonctionnalités structurées qui pourraient ensuite être utilisées pour former un modèle permettant de prédire les prix des voitures. SageMaker Feature Store leur a permis de se concentrer sur l'ingénierie des fonctionnalités plutôt que sur l'infrastructure sous-jacente.
Nous espérons que cet article vous aidera à débloquer de précieuses informations sur le ML à partir de vos propres données à l'aide du processeur de fonctionnalités SageMaker Feature Store !
Pour plus d'informations à ce sujet, reportez-vous à Traitement des fonctionnalités et l'exemple SageMaker sur Magasin de fonctionnalités Amazon SageMaker : introduction au processeur de fonctionnalités.
À propos des auteurs
Dhaval Shah est architecte de solutions senior chez AWS, spécialisé dans l'apprentissage automatique. En mettant l'accent sur les entreprises natives du numérique, il permet aux clients de tirer parti d'AWS et de stimuler la croissance de leur entreprise. En tant que passionné de ML, Dhaval est animé par sa passion pour la création de solutions percutantes qui apportent un changement positif. Dans ses temps libres, il s'adonne à son amour des voyages et chérit les moments de qualité avec sa famille.
Ninad Joshi est un architecte de solutions senior chez AWS, aidant les clients AWS mondiaux à concevoir des solutions sécurisées, évolutives et rentables dans le cloud pour résoudre leurs défis commerciaux complexes du monde réel. Son travail en apprentissage automatique (ML) couvre un large éventail de cas d'utilisation de l'IA/ML, avec un accent principal sur le ML de bout en bout, le traitement du langage naturel et la vision par ordinateur. Avant de rejoindre AWS, Ninad a travaillé comme développeur de logiciels pendant plus de 12 ans. En dehors de ses activités professionnelles, Ninad aime jouer aux échecs et explorer différents jeux.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/unlock-ml-insights-using-the-amazon-sagemaker-feature-store-feature-processor/
- :possède
- :est
- :ne pas
- :où
- $UP
- 1
- 10
- 100
- 11
- 116
- 12
- 13
- 14
- 15%
- 16
- 20
- 24
- 26%
- 40
- 7
- 8
- 9
- a
- Capable
- Compte
- Avec cette connaissance vient le pouvoir de prendre
- à travers
- actes
- ajouter
- agrégat
- agrégation
- AI / ML
- Tous
- permet
- le long de
- aussi
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- ainsi que le
- Une autre
- tous
- Application
- SONT
- arguments
- AS
- At
- automatiser
- automatiquement
- disponibles
- moyen
- éviter
- AWS
- Essentiel
- BE
- before
- LES MEILLEURS
- Améliorée
- Big
- tous les deux
- apporter
- fardeau
- la performance des entreprises
- entreprises
- by
- appelé
- CAN
- capacités
- fournisseur
- voitures
- maisons
- cas
- globaux
- Change
- des charges
- Échecs
- Selectionnez
- le cloud
- code
- Colonne
- Colonnes
- vient
- Société
- complet
- complexe
- ordinateur
- Vision par ordinateur
- configuration
- configurée
- Console
- contient
- continuellement
- convertir
- Prix
- Costs
- pourriez
- Housses
- engendrent
- créée
- crée des
- La création
- critique
- lourd
- Customiser
- Clients
- données
- ensembles de données
- défini
- définition
- démontrer
- démontré
- démontre
- démontrer
- dépendances
- décrit
- la description
- Conception
- voulu
- détails
- développer
- Développeur
- différent
- numérique
- handicapé
- afficher
- distribué
- fait
- motivation
- entraîné
- chacun
- Plus tôt
- Efficace
- effort
- responsabilise
- activé
- permet
- permettant
- end-to-end
- efforts
- ENGINEERING
- Les ingénieurs
- assurer
- passionné
- entités
- Environment
- événement
- Chaque
- exemple
- exécuter
- exécution
- Quitter
- Expliquer
- explorez
- Explorer
- famille
- plus rapide
- Fonctionnalité
- Fonctionnalités:
- Déposez votre dernière attestation
- Fichiers
- Focus
- se concentre
- suivre
- Abonnement
- suit
- Pour
- fractionnaire
- De
- plein
- fonction
- fonctions
- Gain
- génère
- obtenez
- Global
- Réservation de groupe
- Groupes
- Croissance
- manipuler
- Poignées
- Vous avez
- he
- têtes
- lourd
- levage de charges lourdes
- aider
- aide
- ici
- Soulignant
- très
- sa
- Accueil
- d'espérance
- HEURES
- Comment
- How To
- Cependant
- HTML
- HTTPS
- ID
- identifiant
- if
- image
- percutants
- la mise en oeuvre
- importer
- important
- in
- Y compris
- indique
- info
- d'information
- Infrastructure
- initiale
- contribution
- entrées
- à l'intérieur
- perspicacité
- idées.
- installer
- instance
- développement
- IT
- itération
- SES
- Emploi
- Emplois
- joindre
- jpg
- XNUMX éléments à
- langue
- gros
- apprentissage
- moins
- Allons-y
- Levier
- lifting
- comme
- lignage
- Gauche
- Liste
- charge
- charges
- locales
- localement
- enregistrer
- logique
- Style
- ressembler
- love
- click
- machine learning
- Entrée
- FAIT DU
- les gérer
- manuellement
- de nombreuses
- Match
- max
- maximales
- mdx
- significative
- Menu
- méthode
- minute
- manquant
- ML
- modèle
- numériques jumeaux (digital twin models)
- Des moments
- Surveiller
- PLUS
- must
- prénom
- noms
- indigène
- Nature
- Traitement du langage naturel
- Nature
- NAVIGUER
- Navigation
- Besoin
- nécessaire
- Nouveauté
- nœud
- cahier
- nombre
- of
- direct
- souvent
- on
- ONE
- en cours
- uniquement
- opération
- Opérations
- optimisé
- Option
- or
- Autre
- nos
- ande
- sortie
- au contrôle
- plus de
- propre
- pain
- paramètre
- paramètres
- partie
- passion
- Effectuer
- effectue
- pipeline
- Platon
- Intelligence des données Platon
- PlatonDonnées
- jouer
- peuplé
- positif
- Post
- pr
- prévoir
- précédent
- précédemment
- prix
- Tarifs
- primaire
- Avant
- traitement
- Processeur
- professionels
- la promotion de
- fournir
- à condition de
- fournit
- Python
- qualité
- gamme
- plutôt
- raw
- monde réel
- record
- Articles
- Rouge
- réduire
- réduit
- reportez-vous
- supprimez
- répétitif
- remplacer
- exigent
- Resources
- résultat
- résultant
- retourner
- Rôle
- Courir
- pour le running
- fonctionne
- s
- sagemaker
- SOLDE
- vente
- évolutive
- Escaliers intérieurs
- calendrier
- prévu
- ordonnancement
- scientifiques
- portée
- Sdk
- sdn
- secondes
- Section
- sécurisé
- sur le lien
- supérieur
- Services
- Shorts
- devrait
- montrer
- Spectacles
- significative
- étapes
- unique
- environnement unique
- So
- Logiciels
- vendu
- sur mesure
- Solutions
- RÉSOUDRE
- Identifier
- Spark
- spécialisation
- caractéristiques
- spécifié
- Sportive
- Commencer
- j'ai commencé
- Commencez
- Région
- Statut
- Étapes
- storage
- Boutique
- Stocker les données
- Chaîne
- STRONG
- structuré
- studio
- soumettre
- Par la suite
- réussi
- Avec succès
- tel
- convient
- table
- que
- qui
- La
- L'État
- leur
- Les
- puis
- Ces
- this
- trois
- fiable
- fois
- à
- trop
- top
- suivre
- Tracking
- Train
- Formation
- transaction
- Transformer
- De La Carrosserie
- transformations
- transformé
- transformer
- Voyage
- Trends
- tutoriel
- deux
- type
- types
- ui
- sous
- sous-jacent
- ouvrir
- a actualisé
- us
- utilisé
- cas d'utilisation
- d'utiliser
- en utilisant
- Précieux
- Plus-value
- Valeurs
- divers
- Véhicules
- via
- Voir
- vision
- vs
- chaud
- était
- we
- web
- services Web
- qui
- large
- Large gamme
- sera
- comprenant
- activités principales
- travaillé
- workflows
- écrire
- an
- années
- Vous n'avez
- Votre
- zéphyrnet