Déployer un modèle de machine learning en production
Déployer un modèle (API, MLOps de base) est un cours de niveau avancé de 5 leçons (environ 4 h 03), avec 15 exercices et 15 questions de quiz. Prérequis : Évaluation et validation des modèles, API avec FastAPI. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.
- Data science
- Avancé
- 5 leçons
- 4 h 03
- 15 exercices
- Environnement de projet complet (phase 2)
Le cours en bref
Ce cours vous accompagne du notebook à la production sur un cas fil rouge de prédiction de churn. Vous sauvegarderez un modèle de façon fiable, l'exposerez dans une API FastAPI validée, le conteneuriserez avec Docker, automatiserez tests et promotion, puis surveillerez son comportement et la dérive des données.
Ce que tu sauras faire
- Sérialiser un pipeline de modèle et documenter l'artefact (version, features, métriques, empreinte)
- Exposer un modèle dans une API FastAPI avec validation Pydantic, endpoint de santé et tests
- Conteneuriser le service avec un Dockerfile reproductible et sécurisé
- Mettre en place des tests de modèle, une porte de qualité et une intégration continue
- Suivre les expériences et gérer les versions de modèles dans un registre MLflow
- Surveiller un modèle en production : latence, erreurs, dérive (PSI) et stratégie de ré-entraînement
Programme des 5 leçons
- Regrouper prétraitement et modèle dans un Pipeline unique
- Sauvegarder et recharger un modèle avec joblib en connaissant les risques
- Documenter un artefact : version, features, métriques, empreinte et dépendances
- 02
Servir un modèle avec une API FastAPI
- Exposer un modèle via un endpoint REST /predict avec FastAPI
- Valider les entrées et décrire les sorties avec Pydantic
- Charger le modèle une seule fois au démarrage et gérer les erreurs
- 03
Conteneuriser le service avec Docker
- Écrire un Dockerfile pour une API de modèle
- Construire, lancer et inspecter un conteneur
- Appliquer les bonnes pratiques : image légère, cache, utilisateur non root, configuration par variables d'environnement
- 04
Tests, intégration continue et registre de modèles
- Écrire des tests pour le code, l'API et la qualité du modèle
- Automatiser tests et construction d'image avec une intégration continue
- Suivre les expériences et promouvoir un modèle avec MLflow
Tests de modèleIntégration et déploiement continusRegistre de modèlesSuivi d'expériences
- 05
Surveiller un modèle en production : logs, dérive et ré-entraînement
- Journaliser les prédictions et suivre les métriques opérationnelles (latence, erreurs)
- Détecter une dérive des données avec le PSI et d'autres tests
- Définir une stratégie d'alerte et de ré-entraînement
MonitoringDérive des donnéesPopulation Stability IndexRé-entraînement
Projet final
Mettre en production un modèle de churn de bout en bout
À partir d'un jeu de données de clients (généré ou public), livrez un service de prédiction de churn prêt pour la production : modèle versionné, API documentée et testée, image Docker, CI et dispositif de monitoring avec un rapport de dérive sur une période simulée.
Livrables
- Un script d'entraînement reproductible qui enregistre le modèle, ses métriques et sa fiche (MLflow ou JSON)
- Une API FastAPI avec /health, /predict et /predict_batch, schémas Pydantic et version du modèle dans les réponses
- Un Dockerfile et un .dockerignore produisant une image reproductible exécutée sans root
- Une suite pytest (tests unitaires, d'API et de comportement du modèle) et un workflow CI qui l'exécute et construit l'image
- Un module de monitoring : journaux structurés, calcul du PSI par variable sur une période simulée avec dérive, et une note décrivant les alertes et la stratégie de ré-entraînement
Critères d'évaluation
- Le service démarre en une commande et répond correctement aux entrées valides et invalides
- Reproductibilité : versions figées, graines fixées, artefact traçable (version, empreinte)
- Pertinence et automatisation des tests, porte de qualité explicite
- Monitoring couvrant service, données et modèle, avec seuils justifiés
- Sécurité et bonnes pratiques : pas de secret dans l'image, validation des entrées, données personnelles minimisées
Questions fréquentes
Quels prérequis pour ce cours de déploiement de modèles ?
Savoir entraîner et évaluer un modèle avec scikit-learn (cours DS4) et connaître les bases du web en Python et des API (cours PW1). Aucune expérience préalable de Docker n'est nécessaire.
Pourquoi FastAPI pour servir un modèle ?
FastAPI valide automatiquement les données d'entrée grâce à Pydantic, génère une documentation interactive et offre de bonnes performances. C'est aujourd'hui l'un des choix les plus courants pour exposer un modèle en Python.
Qu'est-ce que la dérive des données ?
C'est le changement de la distribution des données reçues par le modèle par rapport à celles de l'entraînement. Elle peut dégrader les prédictions ; on la mesure par exemple avec le PSI et on la surveille en continu.
Faut-il connaître Kubernetes pour déployer un modèle ?
Non. Une image Docker peut être déployée sur des services managés de conteneurs. Kubernetes devient utile pour de grandes infrastructures, mais les principes du cours restent les mêmes.
Ce cours, raconté pour ton métier
Dis ce que tu veux savoir faire : « Déployer un modèle (API, MLOps de base) » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.