Cahier des Charges : Projet MLOps pour
la Classification de Texte
1. Contexte et Objectifs
Ce projet a pour objectif de mettre en place un pipeline MLOps complet pour l'entraînement, le
déploiement, le suivi et la gestion des modèles de classification de texte en utilisant des
technologies avancées comme DVC (Data Version Control) pour la gestion des données et des
modèles, ainsi que des techniques de programmation comme les générateurs, itérateurs,
décorateurs, et design patterns pour rendre le code plus efficace, modulaire et maintenable. Le
projet doit également intégrer des pratiques de sécurité pour garantir la protection des données
et des API.
Les objectifs spécifiques incluent :
Versioning des données et gestion des modifications grâce à DVC.
Création d'un modèle de classification de texte avec une approche modulaire et optimisée.
Déploiement du modèle dans un environnement de production à l'aide de FastAPI, Docker,
et Kubernetes.
Mise en place de mécanismes de monitoring pour suivre les performances du modèle en
temps réel.
Intégration de mécanismes de sécurité pour protéger les données et les accès aux API.
2. Fonctionnalités Principales
2.1 Gestion des Données et Versioning avec DVC
Versioning des données : Utilisation de DVC pour suivre les versions des ensembles de
données (y compris les prétraitements) et garantir que les données utilisées pour
l’entraînement sont cohérentes.
Gestion des modèles : Suivi des différentes versions de modèles, de leurs hyperparamètres
et des métriques de performance grâce à DVC et MLflow.
2.2 Gestion des Données et Traitement avec Générateurs et
Itérateurs
Utilisation de générateurs pour charger les données de manière paresseuse, optimisant
ainsi la mémoire pour les grandes quantités de données.
Itérateurs pour naviguer efficacement dans les données d’entraînement et les traiter par
lots.
2.3 Entraînement du Modèle et Suivi des Expériences
Entraînement de modèles de classification de texte avec différentes architectures (par
exemple, BERT, LSTM, Logistic Regression, etc.).
Suivi des performances du modèle en temps réel avec MLflow pour faciliter le tracking des
expériences, et gestion des modèles entraînés.
2.4 Décorateurs pour Ajouter des Fonctionnalités
Dynamiques
Utilisation de décorateurs pour ajouter des fonctionnalités transversales telles que le suivi
du temps d'exécution, le logging des performances, ou l’ajout de validations sans altérer la
logique métier principale.
2.5 Déploiement et API REST avec FastAPI
Création d'une API REST avec FastAPI pour exposer le modèle en production.
Déploiement du modèle via des conteneurs Docker et gestion de l’évolutivité avec
Kubernetes pour un environnement de production robuste.
2.6 Sécurité des Données et des API
Mise en place d'une authentification sécurisée avec OAuth2 et JSON Web Tokens (JWT)
pour l'accès à l'API.
Chiffrement des données sensibles (pendant le stockage et le transfert) pour garantir la
confidentialité des données traitées.
Contrôles d'accès basés sur les rôles (RBAC) pour limiter les permissions selon les
utilisateurs et les rôles dans le pipeline.
2.7 Monitoring des Performances du Modèle et Détection des
Drifts
Surveillance en temps réel des performances du modèle à l’aide de Prometheus et
Grafana.
Mise en place de mécanismes pour détecter les dérives des données (Data Drift) et des
concepts (Concept Drift) et permettre un réentraînement automatique si nécessaire.
Alertes en cas de baisse significative des performances.
2.8 Utilisation de Design Patterns pour une Architecture
Flexible
Singleton Pattern pour assurer une gestion centralisée du modèle dans le pipeline.
Factory Pattern pour la création dynamique de modèles selon les besoins (ex : BERT, LSTM,
etc.).
Strategy Pattern pour changer dynamiquement la stratégie de traitement des données ou
des modèles sans modifier le code central.
3. Architecture Technique
Technologies Utilisées :
Langage de programmation : Python
Framework NLP : Hugging Face Transformers, SpaCy
Modélisation : PyTorch, TensorFlow, Scikit-learn
Versioning des données et modèles : DVC
Suivi des expériences : MLflow
API et déploiement : FastAPI, Docker, Kubernetes
Surveillance : Prometheus, Grafana
Sécurité : OAuth2, JWT, TLS
CI/CD : GitHub Actions, Jenkins
*4. Sécurité et Conformité**
Authentification OAuth2 pour garantir une gestion sécurisée des utilisateurs et des rôles
dans le pipeline.
Chiffrement des données sensibles pendant le stockage avec AES et pendant le transfert
via TLS pour protéger les informations personnelles ou sensibles.
Gestion des accès basée sur des rôles (RBAC) pour restreindre les accès aux données et
aux actions sensibles dans le pipeline.
Surveillance des accès et des logs pour garantir qu'il n'y a pas de violations de la sécurité.
5. Suivi des Performances et Maintenance
Surveillance continue avec Prometheus pour observer les performances du modèle en
production.
Alertes automatiques en cas de dégradation des performances ou de détection de drift.
Processus automatisé de réentraînement du modèle en cas de dérive ou de besoin
d'amélioration.
6. Conclusion
Ce projet met en œuvre une solution complète pour la gestion d'un pipeline MLOps optimisé pour
la classification de texte, avec l’intégration de concepts comme les générateurs, itérateurs,
décorateurs, et design patterns. Grâce à l’utilisation de DVC, nous assurons un versioning
précis des données et des modèles, tout en garantissant une sécurisation des données et des
accès. Le projet vise à être facilement scalable et maintenable, tout en étant monitoré et sécurisé
à chaque étape.