Projets
MLOps6 février 2026

Détecteur de Photos Produits IA

Projet MLOps personnel de bout en bout pour détecter les images générées par IA avec EfficientNet-B0 et Grad-CAM. J'ai construit l'entraînement, le serving FastAPI, le registre MLflow, le versionnage DVC, le monitoring de dérive, l'infrastructure, le CI/CD et documenté les limites du dataset.

Vue d'ensemble

AI Product Photo Detector est un système MLOps complet -- bien plus qu'un simple modèle, c'est un pipeline de production intégral pour la classification binaire d'images réelles vs générées par IA. Construit autour d'EfficientNet-B0 avec explicabilité Grad-CAM, entraîné sur le dataset CIFAKE (images réelles CIFAR-10 vs images générées par Stable Diffusion). Le projet couvre chaque étape du cycle de vie ML : versionnage des données, entraînement multi-environnement, suivi d'expériences, registre de modèles, serving conteneurisé, infrastructure-as-code, automatisation CI/CD et monitoring en production.

Résultats

MétriqueValeur
Accuracy92.8%
F1-Score93.1%
Precision92.5%
Recall93.7%
Latence d'inférence131ms
Le modèle le plus performant (Run 3, lr=3e-4) a été promu en production via le registre de modèles MLflow. Un quality gate impose des seuils minimaux d'accuracy ≥ 0.85 et de F1 ≥ 0.80 avant tout déploiement.

Fonctionnalités Clés

FonctionnalitéDescription
Modèle MLEfficientNet-B0 avec explicabilité Grad-CAM pour des prédictions interprétables
APIFastAPI avec authentification JWT, rate limiting, endpoints batch et explain
Entraînement3 modes : Local/Docker, Google Colab et Vertex AI
MonitoringPrometheus + Grafana avec 20+ métriques, 13 règles d'alerte et détection de dérive
InfrastructureTerraform (5 modules, 2 environnements) + Docker (5 services) + Cloud Run
CI/CDGitHub Actions avec 5 workflows et quality gates automatisés
Tests316 tests, 70%+ de couverture sur 3 niveaux (unitaire, intégration, E2E)

Architecture Système

Le pipeline suit un flux linéaire de la donnée au monitoring en production : Données (DVC + GCS)Entraînement (PyTorch)Registre (MLflow)Packaging (Docker)Infra (Terraform)CI/CD (GitHub Actions)Déploiement (Cloud Run)Serving (FastAPI)Monitoring (Prometheus + Grafana) Chaque étape est automatisée et versionnée. DVC suit les versions du dataset dans Google Cloud Storage, MLflow enregistre chaque run d'entraînement, Docker package le modèle et l'API, Terraform provisionne l'infrastructure cloud, GitHub Actions orchestre les tests et le déploiement, et Prometheus collecte les métriques de production.

Architecture du Modèle

Le pipeline de classification repose sur EfficientNet-B0 avec transfer learning :
  • Modèle de Base -- EfficientNet-B0 pré-entraîné sur ImageNet (5.3M paramètres)
  • Tête Personnalisée -- Dropout (0.3) + couche linéaire pour la classification binaire
  • Explicabilité -- Grad-CAM génère des heatmaps visuelles mettant en évidence les régions déterminantes pour chaque prédiction

Configuration d'Entraînement

ParamètreValeur
DatasetCIFAKE (CIFAR-10 + Stable Diffusion)
ArchitectureEfficientNet-B0
OptimiseurAdamW (weight decay)
SchedulerCosineAnnealingLR
Meilleur Learning Rate3e-4 (Run 3)
Paramètres5.3M (transfer learning)

Pipeline MLOps

Versionnage des Données

DVC (Data Version Control) gère les versions du dataset avec un stockage distant sur Google Cloud Storage. Les modifications du dataset sont suivies aux côtés du code dans Git, garantissant une reproductibilité totale.

Suivi des Expériences

MLflow gère le cycle de vie complet des expériences :
  • Journalisation des Métriques -- Loss, accuracy, F1-score, precision, recall par époque
  • Registre de Modèles -- Contrôle de version avec promotion staging/production
  • Stockage d'Artefacts -- Poids du modèle, matrices de confusion, courbes d'entraînement, échantillons Grad-CAM
  • Suivi des Hyperparamètres -- Learning rate, taille de batch, configuration de l'augmentation, paramètres de l'optimiseur

Modes d'Entraînement

ModeEnvironnementCas d'usage
Local / DockerMachine locale ou conteneur DockerDéveloppement et itérations rapides
Google ColabNotebook cloud avec GPU gratuitPrototypage avec accélération GPU
Vertex AIEntraînement managé Google CloudEntraînement de production à grande échelle

Explicabilité Grad-CAM

Chaque prédiction peut inclure une heatmap Grad-CAM via l'endpoint /predict/explain, montrant quelles régions de l'image ont le plus contribué à la décision de classification.

API et Serving

FastAPI sert le modèle avec une architecture d'endpoints de niveau production :
EndpointMéthodeDescription
/predictPOSTClassification d'une image avec score de confiance
/predict/batchPOSTPrédiction par lots pour plusieurs images
/predict/explainPOSTPrédiction avec heatmap Grad-CAM
/healthGETVérification de l'état de santé et statut du modèle
/metricsGETMétriques compatibles Prometheus
L'API intègre un pipeline d'authentification JWT et un rate limiting configurable pour prévenir les abus en production.

Infrastructure

Terraform

L'infrastructure est définie en code à travers 5 modules gérant 2 environnements (dev et prod) :
ModuleFonction
Cloud RunDéploiement serverless de conteneurs
IAMComptes de service et permissions
MonitoringPolitiques d'alerte et canaux de notification
NetworkingVPC et règles de pare-feu
StorageBuckets GCS pour les données et artefacts

Docker Compose

Le stack de développement local fait tourner 5 services :
ServicePortFonction
FastAPI8000API d'inférence
MLflow5000Interface de suivi des expériences
Streamlit8501Interface web de prédiction
Prometheus9090Collecte de métriques
Grafana3000Tableaux de bord de monitoring

Déploiement Cloud Run

Le déploiement en production cible Google Cloud Run avec auto-scaling, HTTPS et configuration de domaine personnalisé. Le coût total de l'infrastructure est maintenu sous 0.50$/mois grâce à la capacité de scale-to-zero de Cloud Run et une allocation efficace des ressources.

CI/CD

GitHub Actions automatise l'intégralité du cycle build-test-deploy avec 5 workflows :

Pipeline CI

  • Ruff -- Linting et vérification du formatage Python
  • mypy -- Vérification statique des types
  • pytest -- 316 tests couvrant les niveaux unitaire, intégration et E2E
  • CodeQL -- Analyse de vulnérabilités de sécurité
  • Docker -- Build et validation du conteneur

Pipeline CD

  • Déploiement automatique -- Déclenché lors du merge sur main après validation CI
  • Smoke Test -- Validation post-déploiement de la santé et des prédictions
  • Rollback -- Retour automatique en cas d'échec des smoke tests
  • Quality Gate -- Accuracy du modèle ≥ 0.85 et F1 ≥ 0.80 imposées avant déploiement

Monitoring

Métriques Prometheus

20+ métriques personnalisées suivies en production :
  • Métriques de requêtes -- Histogrammes de latence, compteurs de débit, taux d'erreur
  • Métriques du modèle -- Distribution de confiance des prédictions, équilibre des classes
  • Métriques système -- Utilisation mémoire, requêtes actives, profondeur de file
  • Métriques de dérive -- Changements de distribution des features détectés via des tests statistiques

Règles d'Alerte

13 règles d'alerte configurées dans plusieurs catégories :
  • Disponibilité -- Service hors service, échecs de health check
  • Performance -- Pics de latence, seuils de taux d'erreur
  • Modèle -- Dérive des prédictions, anomalies de confiance
  • Infrastructure -- Saturation des ressources, redémarrages de conteneurs

Tableaux de Bord Grafana

Tableaux de bord préconfigurés pour la performance API, le comportement du modèle et la santé de l'infrastructure avec alertes automatiques via les canaux de notification.

Gestion des Coûts

L'ensemble du déploiement en production fonctionne à moins de 0.50$/mois :
RessourceCoût
Cloud Run~0.00$ (scale-to-zero, offre gratuite)
GCS Storage~0.01$ (dataset et artefacts de petite taille)
Container Registry~0.10$ (stockage des images)
Monitoring~0.00$ (offre gratuite)
Total< 0.50$/mois

Stack Technique

CatégorieTechnologies
ML / DLPyTorch, EfficientNet-B0, torchvision, Grad-CAM
APIFastAPI, Uvicorn, Pydantic, authentification JWT
MLOpsMLflow, DVC, Model Registry, Vertex AI
MonitoringPrometheus, Grafana, structlog, détection de dérive
FrontendStreamlit
InfrastructureTerraform, Docker, Docker Compose, Google Cloud Run
CI/CDGitHub Actions (5 workflows), CodeQL, quality gates
Testspytest (316 tests), Ruff, mypy, 70%+ de couverture
CloudGoogle Cloud Platform (GCS, Cloud Run, Vertex AI, IAM)
DatasetCIFAKE (CIFAR-10 + Stable Diffusion)