in

Un cadre pour construire une chaîne d’ingénierie de fonctionnalités prête pour la production | par Paul Iusztin | Avril 2023


LEÇON 1 : ARCHITECTURE DE BATCH SERVING, MAGASIN DE FONCTIONNALITÉS ET PIPELINES D’INGÉNIERIE DE FONCTIONNALITÉS

Cette leçon est la première d’un cours de sept leçons qui vous guideront pas à pas dans la conception, la mise en œuvre et le déploiement d’un système d’apprentissage automatique (ML) en utilisant les bonnes pratiques MLOps. Au cours de ce cours, vous apprendrez à construire un modèle de production capable de prévoir la consommation énergétique pour les 24 prochaines heures, pour différents consommateurs au Danemark.

À la fin de ce cours, vous serez en mesure de comprendre les fondamentaux de la conception, de la programmation et du déploiement d’un système ML utilisant une architecture de batch-serving. Ce cours s’adresse aux ingénieurs de machine learning moyens/avancés souhaitant renforcer leurs compétences en construisant leurs propres projets de bout en bout.

Un objectif important de ce cours est de construire des projets avancés et de qualité que vous pourrez présenter en tant qu’ingénieur professionnel. Ainsi, à la fin de ce cours de 7 leçons, vous serez en mesure de :

– concevoir une architecture batch-serving
– utiliser Hopsworks en tant que magasin de fonctionnalités
– concevoir un pipeline d’ingénierie de fonctionnalités qui lit les données d’une API
– construire un pipeline d’entraînement avec réglage d’hyperparamètres
– utiliser W&B en tant que plateforme ML pour suivre vos expériences, modèles et métadonnées
– mettre en œuvre un pipeline de prédiction en mode batch
– utiliser Poetry pour créer vos propres packages Python
– déployer votre propre serveur PyPi privé
– orchestrer le tout avec Airflow
– utiliser les prévisions pour coder une application web en utilisant FastAPI et Streamlit
– utiliser Docker pour contenir votre code
– utiliser Great Expectations pour garantir la validation et l’intégrité des données
– surveiller les performances des prévisions dans le temps
– déployer tout sur GCP
– construire un pipeline CI/CD en utilisant GitHub Actions

Si cela vous semble beaucoup, ne vous inquiétez pas. Une fois que vous aurez suivi ce cours, vous comprendrez tout ce que j’ai dit auparavant. Plus important encore, vous saurez POURQUOI j’ai utilisé tous ces outils et comment ils fonctionnent ensemble en tant que système.

ACCÉDER AU DÉPÔT GITHUB POUR SUIVRE LE COURS

Pour tirer le meilleur parti de ce cours, je vous suggère d’accéder au dépôt GitHub contenant le code de toutes les leçons. J’ai conçu les articles afin que vous puissiez lire et exécuter le code tout en suivant le cours. À la fin du cours, vous saurez comment implémenter le diagramme ci-dessous.

PORQUOI BATCH SERVING ?

Il existe 4 principaux types de déploiement de modèle : batch serving, requêtes-réponses, streaming et embarqué. Le batch serving est le point de départ parfait pour acquérir une expérience pratique dans la construction d’un système ML du monde réel car la plupart des applications d’IA commencent par utiliser une architecture de batch pour passer ensuite aux requêtes-réponses ou à la diffusion en continu.

Consultez notre démo en direct pour mieux comprendre le résultat final du cours.

Le batch serving est l’approche idéale pour préparer vos données, entrainer votre modèle, et effectuer des prédictions hors ligne. Ensuite, vous stockerez les prédictions dans une base de données à partir de laquelle le client/application utilisera les prédictions par la suite.

Magasin de Fonctionnalités et Pipelines d’Ingénierie de Fonctionnalités

Le magasin de fonctionnalités se situe au cœur de tout système de ML. Grâce à un magasin de fonctionnalités, vous pouvez facilement stocker et partager des fonctionnalités à travers le système. Vous pouvez voir intuitivement un magasin de fonctionnalités comme une base de données sophistiquée qui ajoute les fonctionnalités suivantes :

– versionnage et linéarisation des données.
– validation des données.
– création de jeux de données.
– stockage de répartition en entraînement/validation/test.
– deux types de stockage : hors ligne (peu couteux, mais à forte latence) et en ligne (plus coûteux, mais à basse latence).
– voyage dans le temps : accès facile aux données dans des fenêtres temporelles.
– transformation de fonctionnalités en plus des fonctionnalités elles-mêmes.
– surveillance des données, etc..

Nous avons choisi Hopsworks comme magasin de fonctionnalités car il est serverless et offre un plan gratuit généreux qui est plus que suffisant pour créer ce cours. De plus, Hopsworks est très bien conçu et offre toutes les fonctionnalités mentionnées ci-dessus.

Le pipeline d’ingénierie de fonctionnalités est le code qui lit les données d’une ou plusieurs sources de données, nettoie, transforme et valide les données et les charge dans le magasin de fonctionnalités (essentiellement un pipeline ETL). Dans ce cours, nous avons choisi d’utiliser Pandas comme bibliothèque de traitement de données car les données sont peu nombreuses et peuvent facilement tenir dans la mémoire de l’ordinateur. Si les données sont trop volumineuses pour tenir sur un seul ordinateur, nous utiliserions Spark (ou un autre outil de calcul distribué) pour effectuer exactement les mêmes étapes que dans cette leçon.

Code

Vous pouvez accéder au référentiel GitHub ici.

Notez que toutes les instructions d’installation se trouvent dans les fichiers README du référentiel. Ici, nous passerons directement au code.

Tout le code de la leçon 1 se trouve sous le dossier feature-pipeline. Les fichiers sous le dossier feature-pipeline sont structurés de la manière suivante :

– .env : fichier contenant les variables d’environnement.
– .env.default : fichier d’exemple des variables d’environnement à définir.
– hopsworks.py : fichier de configuration pour l’interface de programmation d’application (API) Hopsworks.
– main.py : fichier principal où le pipeline ETL est implémenté.
– requirements.txt : fichiers définissant les dépendances pour le projet.

Nous avons également ajouté un fichier README.md expliquant comment exécuter l’étape ETL à partir des informations d’API et comment exécuter le test unitaire pour cette étape.
Toutes les étapes de ce cours sont gratuites sur la version gratuite d’Hopsworks, donc cela ne vous coûtera rien.

What do you think?

Written by Barbara

Leave a Reply

Your email address will not be published. Required fields are marked *

Constructeur de modèles d’IA sans code – Entraînez des modèles d’IA personnalisés, créez des applications d’avatar IA – sans code

Sony annonce une forte vente de matériel PS5 alors qu’elle approche les 40 millions d’unités vendues.