Spaces:
Sleeping
Sleeping
| Étape 2 - Déployez le modèle via une API et automatisez avec CI/CD | |
| Description: Développez une API (Gradio, FastAPI) pour exposer votre modèle. L'API doit recevoir des données d'entrée et retourner une prédiction. Conteneurisez cette API avec Docker. Ensuite, créez un pipeline d'Intégration Continue et de Déploiement Continu (CI/CD) (ex: GitHub Actions). Ce pipeline devra automatiquement : | |
| 1.Exécuter des tests (unitaires, intégration) sur votre code API et modèle. | |
| 2.Construire l'image Docker de l'API si les tests sont concluants. | |
| 3.Déployer l'image conteneurisée sur un environnement cible (simulé ou réel). | |
| Prérequis: | |
| Avoir le code versionné sur une plateforme supportant la CI/CD. | |
| Avoir choisi un framework d'API. | |
| Avoir installé Docker. | |
| Résultats attendus : | |
| Un code source fonctionnel pour l'API. | |
| UnDockerfilepour créer une image Docker de l'API. | |
| Un pipeline CI/CD fonctionnel et automatisé visible sur la plateforme, qui déploie l'API. | |
| Des tests automatisés intégrés au pipeline. | |
| Recommandations: | |
| Commencez par une API simple et un pipeline basique, puis itérez. | |
| Incluez une gestion des erreurs dans l'API et documentez-la (ex: Swagger). | |
| Séparez les étapes de build, test et déploiement dans le pipeline CI/CD. | |
| Utilisez des secrets pour gérer les credentials. | |
| Utilisez Hugging Face Spaces qui est particulièrement simple d’utilisation pour ce genre de déploiement. | |
| Points de vigilance: | |
| Assurez-vous que les tests sont fiables et couvrent les cas critiques, par exemple : | |
| des entrées avec des données manquantes pour des champs obligatoires, | |
| des valeurs hors des plages attendues (ex: un âge de -5 ans ou un revenu de 0 si ce n'est pas censé être possible), | |
| ou des types de données incorrects (ex: du texte là où un chiffre est attendu). | |
| Sécurisez l'API et le pipeline (gestion des secrets, validation d'entrée). | |
| Gérez correctement le chargement du modèle dans l'API. | |
| Lorsque vous intégrez un modèle de machine learning dans une API, il est crucial de ne pas charger le modèle à chaque requête. | |
| Cela entraînerait des lenteurs importantes voire un échec sous charge. | |
| Chargez le modèle une seule fois, au moment du démarrage de l’API, puis réutilisez le dans toutes les requêtes. | |
| Cela permet de : | |
| Réduire le temps de réponse de l’API. | |
| Éviter une surcharge mémoire. | |
| Améliorer la scalabilité. | |
| Vérifiez que l'environnement de déploiement dispose des ressources nécessaires. | |
| Outils: | |
| Gradio/FastAPI | |
| Docker | |
| Postman/curl | |
| GitHub Actions/GitLab CI/Jenkins | |
| Pytest | |
| Plateformes de déploiement (Hugging Face, Heroku, Google Cloud Run...). | |
| Étape 3 - Implémentez le stockage et l'analyse des données de production | |
| Description: Concevez et mettez en place une solution pour stocker les données pertinentes générées par votre API en production : logs d'appels, inputs, outputs, et temps d'exécution (à minima). Mettez en œuvre une analyse automatique de ces données pour détecter des anomalies, notamment la dérive des données (data drift), et des problèmes opérationnels (taux d'erreur, latence anormale). | |
| Un prototype (PoC) de cette solution peut être réalisé entièrement en local si vous n’avez pas de service cloud à votre disposition. Tant que tous les aspects requis pour cette partie sont correctement adressés, cela est suffisant. Exemple: les logs peuvent être générés par l’API (cloud) puis téléchargés, stockés et analysés localement. Les données collectées par l’API doivent permettre une analyse ultérieure du drift : assurez-vous de stocker les inputs/outputs du modèle et les métriques clés. | |
| Prérequis: | |
| Avoir déployé l'API via le pipeline CI/CD. | |
| Avoir identifié les données clés à logger depuis l'API et l'infrastructure. | |
| Résultat attendu: | |
| Une solution de stockage des données de production décrite et/ou implémentée. | |
| Un script ou notebook réalisant l'analyse automatique des données stockées (détection de drift, anomalies). | |
| Une présentation de l'étude sur la dérive des données et les points de vigilances résultants. | |
| Recommandations: | |
| Configurez le logging structuré (ex: JSON) dans votre API. | |
| Utilisez des bibliothèques dédiées à la détection de drift (ex: Evidently AI, NannyML). | |
| Pensez à visualiser les résultats de l'analyse (ex: dashboard). | |
| Points de vigilance: | |
| Soyez conscient des contraintes de stockage et de coût. | |
| Assurez la conformité RGPD si nécessaire. | |
| La détection de drift nécessite une référence (données d'entraînement ou fenêtre stable (vous pouvez reprendre votre travail réalisé lors du projet Initiez-vous au MLOps partie 1). | |
| Outils: | |
| Bibliothèques de logging Python, | |
| Analyse des logs: Fluentd, Logstash | |
| Bases de données: Elasticsearch, PostgreSQL | |
| Bibliothèques de détection de drift: Evidently AI, NannyML | |
| Outils de visualisation : Grafana, Kibana, Dash/Streamlit. | |
| Étape 4 - Analysez et optimisez les performances du modèle | |
| Description: Maintenant que le modèle est déployé et monitoré, analysez ses performances réelles ou simulées en production. | |
| Utilisez les données de monitoring (temps d’inférence, latence, utilisation CPU / GPU) et des outils de profiling pour identifier les goulots d’étranglement. | |
| Testez des stratégies d'optimisation (quantification, optimisation de code, hardware) pour améliorer le temps d'inférence/réponse. | |
| Intégrez la version optimisée dans votre dépôt et laissez le pipeline CI/CD la déployer. | |
| Documentez les optimisations et leurs résultats. | |
| Prérequis: | |
| Avoir l'API déployée et un système de monitoring/logging en place (même basique) | |
| Résultats attendus : | |
| Un rapport détaillant les tests d'optimisation effectués post-déploiement, les résultats et les goulots d'étranglement identifiés. | |
| Une version optimisée du modèle déployée via le pipeline CI/CD. | |
| Une justification de la configuration finale (librairies, software, hardware). | |
| L'amélioration du temps d'inférence et de réponse est démontrée. | |
| Recommandations: | |
| Baser vos hypothèses d'optimisation sur les données de monitoring réelles. | |
| Documenter rigoureusement l'impact des optimisations sur la performance et la précision. | |
| Points de vigilance: | |
| Assurez-vous que les optimisations n'introduisent pas de régressions (précision, biais). | |
| Validez la compatibilité des optimisations avec l'environnement de production. | |
| Outils: | |
| Outils de profiling (ex: cProfile). | |
| Bibliothèques d'optimisation (ex: ONNX Runtime). | |