Retour aux projets

MLOps — Projet open source

Breast Cancer MLOps Platform

Illustration du projet Breast Cancer MLOps Platform
Ouvrir l’image en grand

Contexte

Un modèle performant lors de l’entraînement ne constitue pas, à lui seul, un système ML exploitable. Lorsqu’il est exposé par une API, il faut pouvoir retrouver les données et paramètres de chaque expérience, identifier précisément la version qui produit une prédiction, reproduire son environnement et détecter les problèmes de fonctionnement du service. Ce projet prend le jeu de données public Wisconsin Breast Cancer comme cas d’étude pour concevoir et démontrer cette chaîne MLOps complète, de l’expérimentation à l’inférence supervisée. Il porte sur les pratiques d’ingénierie et ne constitue pas un outil de diagnostic ou d’aide à la décision médicale.

Résumé

Plateforme MLOps couvrant la préparation des données, l’entraînement et l’évaluation d’un modèle, son enregistrement dans MLflow, son exposition par API et la supervision de son fonctionnement. Chaque prédiction indique la version du modèle utilisée. Les expériences et les métriques de service facilitent le suivi des modèles et l’activité de l’API.

Contributions

  • Pipeline ML reproductible : Validation et préparation des données, entraînement d’un classificateur Random Forest avec scikit-learn, évaluation et suivi des expériences, métriques et artefacts dans MLflow.
  • Gestion et exposition du modèle : Versionnement avec MLflow Model Registry, métadonnées dans PostgreSQL, artefacts dans MinIO et API d’inférence FastAPI exposant la prédiction, les probabilités et la version du modèle chargé.
  • Qualité et observabilité : Métriques Prometheus et tableaux de bord Grafana pour suivre l’API, les prédictions et le modèle actif ; tests automatisés, Docker Compose, uv, Ruff et pipeline CI/CD avec GitHub Actions.

Résultats

  • Cycle de vie exécutable : Entraînement et inférence exécutables localement dans un environnement Docker Compose.
  • Expériences et modèles versionnés : Modèles et expériences enregistrés dans MLflow, avec sélection du modèle servi par alias.
  • Quatre tableaux de bord : Tableaux de bord Grafana pour examiner la disponibilité de l’API, ses performances, les prédictions et les entrées reçues.

Plus-value

  • Traçabilité : Les expériences, artefacts et versions de modèles peuvent être retrouvés et comparés.
  • Inférence identifiable : Les réponses de l’API indiquent la version du modèle utilisée, ce qui facilite le suivi des changements.
  • Exploitation facilitée : Les métriques et tableaux de bord rendent visibles les erreurs, la latence et le comportement du service.
  • Reproductibilité : La conteneurisation, la gestion des dépendances et les contrôles automatisés facilitent la reprise et l’évolution du projet.

Stack technique

Python · scikit-learn · MLflow · FastAPI · Pydantic · PostgreSQL · MinIO · Prometheus · Grafana · Docker Compose · uv · pytest · Ruff · GitHub Actions

Évaluation sur le jeu de test

Sur 114 observations de test, le modèle classe correctement 109 cas (95,6 %). Parmi les 42 observations malignes, 39 sont correctement classées et 3 sont classées bénignes, soit une sensibilité de 92,9 % pour la classe maligne. Ces résultats concernent ce jeu de données expérimental et ne constituent pas une validation clinique.