Mini-projet MLOps : Airflow + MLflow
Contexte
Dans le cadre de votre projet de fin d’études, vous développez une application de Machine Learning. Ce mini-projet a pour objectif de vous initier à l’automatisation et au suivi d’un workflow ML à l’aide de deux outils fondamentaux du MLOps : Apache Airflow et MLflow.
Vous devrez mettre en place un pipeline automatique dans Airflow allant de l’ingestion des données jusqu’à l’entraînement du modèle, avec enregistrement des métriques et versionnement du modèle dans MLflow.
Objectifs
- Concevoir un pipeline automatisé avec Apache Airflow incluant :
- Ingestion ou chargement des données
- Prétraitement des données
- Split train/test
- Entraînement d’un modèle ML
- Logging des métriques et versionnement du modèle avec MLflow
- Utiliser MLflow Tracking pour enregistrer :
- Les hyperparamètres du modèle
- Les métriques de performance
- Le modèle entraîné
Livrables attendus
- Un dépôt Git contenant :
- Le code source de la pipeline Airflow
- Un fichier README expliquant comment exécuter le pipeline
- Un rapport au format PDF incluant :
- Une description technique de la pipeline
- Les réponses aux questions ci-dessous
- Des captures d'écran d'Airflow et MLFlow pour montrer l'exécution de votre pipeline
Contraintes techniques
- La pipeline doit être modulaire (chaque étape = un opérateur Airflow distinct)
- L’exécution doit être reproductible
- Le projet doit fonctionner en local (pas de déploiement cloud requis)
- Le versionnement des données n’est pas requis, seul le modèle doit être versionné avec MLflow
Questions à traiter dans le rapport
Données & Traitement
- Quelle source de données avez-vous utilisée ? Pourquoi ce choix ?
- Quelles transformations appliquez-vous dans la phase de prétraitement ?
- Comment gérez-vous le découpage train/test ?
Pipeline Airflow
- Quelle est l’architecture de votre DAG (ordre et rôle des tâches) ?
- Comment avez-vous organisé votre code pour le rendre modulaire et maintenable ?
- Avez-vous mis en place une gestion d’erreur ou des mécanismes de redémarrage ?
Entraînement du modèle
- Quel algorithme avez-vous utilisé ? Quels hyperparamètres testez-vous ?
- Comment l'entraînement est-il intégré dans le DAG ?
- Que faites-vous du modèle une fois entraîné ?
MLflow
- Quelles métriques avez-vous enregistrées ? Pourquoi ?
- Quels éléments sont enregistrés dans MLflow (paramètres, artefacts, etc.) ?
- Comment avez-vous configuré le suivi des expériences avec MLflow ?
Bonnes pratiques MLOps
- Comment garantissez-vous la reproductibilité de votre pipeline ?
- Quelles améliorations envisagez-vous pour cette pipeline (tests, CI/CD, monitoring…) ?