Aller au contenu principal

Concepts fondamentaux du deploiement IA

Theorie 45 min

Qu'est-ce que le deploiement ML ?

Du notebook a la production

La plupart des projets de machine learning commencent dans un notebook Jupyter — un bac a sable confortable ou les scientifiques de donnees explorent les donnees, entrainent des modeles et evaluent les resultats. Mais un notebook n'est pas un produit. Le deploiement est le processus de transformation d'un modele entraine en un service fiable avec lequel de vrais utilisateurs peuvent interagir.

L'analogie du pont

Pensez au developpement de modeles comme a la conception d'un pont sur papier — vous calculez les capacites de charge, choisissez les materiaux et simulez la resistance au vent. Le deploiement consiste a construire reellement le pont pour que des milliers de voitures puissent le traverser en toute securite chaque jour.

Developpement (Conception)Deploiement (Construction)
Fonctionne sur des donnees d'echantillonGere des donnees du monde reel
Tourne sur votre portableTourne sur des serveurs 24h/24
Tolere les erreurs et les reprisesDoit etre tolerant aux pannes
Un seul utilisateur (vous)Des milliers d'utilisateurs simultanement
La vitesse importe peuLa latence est critique
Execution manuellePipeline automatise
Point cle

80% des projets ML n'arrivent jamais en production. L'ecart entre un notebook fonctionnel et un service en production est l'endroit ou la plupart des projets echouent. Ce cours vous apprend a franchir cet ecart.


Developpement vs Deploiement

Deux mentalites differentes

AspectDeveloppementDeploiement
ObjectifMaximiser la precisionMaximiser la fiabilite + precision
DonneesJeux de donnees statiques (CSV, Parquet)Flux de donnees en temps reel
Qualite du code"Ca marche" suffitDoit etre teste, documente, maintenable
EnvironnementMachine locale, notebooksServeurs, conteneurs, cloud
VersionnementPeut-etre Git pour le codeVersionnement du code + modele + donnees
SurveillanceEvaluation manuelleAlertes automatisees et tableaux de bord
Gestion des erreursInstructions printJournalisation structuree, degradation gracieuse
Reproductibilite"Ca marchait sur ma machine"Doit fonctionner partout, a chaque fois

Le cycle de vie MLOps

Qu'est-ce que MLOps ?

MLOps (Machine Learning Operations) est l'ensemble des pratiques qui combine le ML, le DevOps et l'ingenierie de donnees pour deployer et maintenir les systemes ML en production de maniere fiable et efficace.

Pensez-y comme l'equivalent ML du DevOps pour les logiciels traditionnels.

Niveaux de maturite MLOps

NiveauNomDescriptionExemple
0Pas de MLOpsProcessus manuel, pilote par des scriptsExecution de notebooks a la main
1DevOps mais pas MLOpsCI/CD automatise pour le code, ML manuelGit + tests, mais entrainement manuel du modele
2Entrainement automatisePipeline d'entrainement automatiseReentrainement planifie avec de nouvelles donnees
3Deploiement automatiseCI/CD pour les modelesDeploiement auto si les metriques depassent le seuil
4MLOps completTout automatise + surveillancePipeline complet avec detection de derive
Perimetre du cours

Dans ce cours, nous visons a vous amener au Niveau 2-3 — vous construirez des pipelines d'entrainement et de deploiement automatises avec des tests rigoureux.


Definition du perimetre

Pourquoi definir le perimetre en premier ?

Avant d'ecrire une seule ligne de code, vous devez clairement definir ce que votre modele fera, qui l'utilisera et comment il sera accessible. Sans un perimetre clair, les projets explosent en complexite et ne sont jamais livres.

Le cahier des charges

Un cahier des charges est un court document (1-2 pages) qui repond a ces questions critiques :

QuestionExemple de reponse
Quel probleme le modele resout-il ?Predire le desabonnement client dans les 30 jours
Qui est l'utilisateur final ?Equipe de succes client via un tableau de bord web
Quelles donnees sont necessaires ?Journaux d'activite client, historique d'abonnement
Quelle est l'entree attendue ?JSON avec customer_id et activite recente
Quelle est la sortie attendue ?Probabilite de desabonnement (0-1) et niveau de risque
Quelle latence est acceptable ?Moins de 200ms par prediction
A quelle frequence le modele est-il reentraine ?Chaque semaine avec de nouvelles donnees
Quelle est la metrique de succes ?AUC-ROC > 0.85, precision > 0.80

Limites du perimetre

Erreur courante

Les etudiants essaient souvent de construire "le systeme parfait" des le premier jour. Commencez avec un Modele Minimum Viable (MVM) — un modele fonctionnel derriere une API simple. Vous pourrez toujours ajouter de la complexite plus tard.


Preparation a la production

La checklist de production

Un modele est pret pour la production lorsqu'il repond a ces criteres :

CategorieExigenceStatut
CodeLe code est sous controle de version (Git)
CodeLes dependances sont fixees (requirements.txt)
CodeLe code passe le linting et le formatage
ModeleLe modele est serialise (pickle/joblib/ONNX)
ModeleLa version du modele est suivie
TestsLes tests unitaires passent
TestsLes tests d'integration passent
APILes endpoints sont documentes (Swagger)
APILa gestion des erreurs est implementee
SurveillanceLa journalisation est configuree
SurveillanceUn endpoint de verification de sante existe

L'analogie de l'inspection de restaurant

Imaginez une inspection de restaurant avant le jour d'ouverture :

  • Qualite du code = Proprete de la cuisine
  • Tests = Verifications de securite alimentaire
  • Documentation = Menu et etiquettes d'allergenes
  • Surveillance = Detecteurs de fumee et registres de temperature
  • Gestion des erreurs = Sorties de secours et trousses de premiers soins

Vous n'ouvririez pas un restaurant sans passer l'inspection. Ne deployez pas un modele sans passer votre checklist de production.


Dependances de donnees

Les donnees sont le carburant

Un modele n'est aussi bon que ses donnees. En production, les problemes de donnees sont la cause n°1 des defaillances de modeles — pas les bugs de code, pas les problemes d'infrastructure.

Derive des donnees

La derive des donnees (data drift) se produit lorsque les proprietes statistiques des donnees d'entree changent au fil du temps, causant une degradation des performances du modele.

Type de deriveDescriptionExemple
Derive des donneesLa distribution des entrees changeNouvelle demographie client apres une campagne marketing
Derive de conceptLa relation entre entree et sortie changeLe COVID a modifie les habitudes d'achat
Derive des labelsLa distribution de la variable cible changeLes schemas de fraude evoluent avec de nouvelles techniques
Exemple concret

Un modele de score de credit entraine sur des donnees de 2019 a mal performe pendant le COVID-19 car les habitudes de depenses (les donnees d'entree) ont change radicalement. Les niveaux de revenus, les comportements de paiement et les categories de depenses ont tous change — c'est un cas typique de derive des donnees et de derive de concept survenant simultanement.

Feature Stores

Un feature store est un repertoire centralise pour stocker, gerer et servir les features ML. Il assure que les memes features utilisees pendant l'entrainement sont disponibles au moment de la prediction.

Sans Feature StoreAvec Feature Store
Features calculees differemment en entrainement vs en serviceMeme calcul de features partout
Code de features duplique entre les equipesSource unique de verite
Pas de versionnement des featuresLignage et versionnement complets
Transformations de donnees incoherentesCoherence garantie

Pipelines de donnees

Un pipeline de donnees automatise le flux de donnees de la source au modele :

Voir le pipeline de donnees

Planification de l'infrastructure

CPU vs GPU

CritereCPUGPU
Ideal pourML classique (sklearn, XGBoost)Deep learning (PyTorch, TensorFlow)
CoutPlus bas ($)Plus eleve ($$$)
Vitesse d'inferencePlus lente pour les grands modelesBeaucoup plus rapide pour les reseaux de neurones
DisponibiliteToujours disponiblePeut necessiter une reservation
Utilisation typiqueDonnees tabulaires, petits modelesImages, NLP, grands transformers
Regle pratique

Si votre modele est un modele scikit-learn (Random Forest, Regression Logistique, etc.), le CPU est suffisant. Le GPU n'est necessaire que pour les modeles de deep learning avec des millions de parametres.

Cloud vs Sur site

FacteurCloudSur site
Temps de mise en placeMinutesSemaines/mois
Cout initialAucun (paiement a l'usage)Tres eleve
EvolutiviteInstantaneeLimitee par le materiel
MaintenanceLe fournisseur s'en chargeVotre responsabilite
Controle des donneesCentres de donnees du fournisseurVos installations
ConformitePeut avoir des restrictionsControle total

Conteneurs

Les conteneurs Docker empaquettent votre application et toutes ses dependances dans une seule unite portable. Cela resout le fameux probleme "ca marche sur ma machine".


Patrons de deploiement

Batch vs Temps reel

L'analogie du restaurant

  • Prediction par lots = Un buffet. La cuisine prepare tous les plats a l'avance. Les clients se servent eux-memes. Efficace pour les grands volumes, mais les plats ne sont pas faits sur commande.
  • Prediction en temps reel = Service a la carte. Chaque plat est prepare a la commande. Frais et personnalise, mais plus lent pour les grands groupes.
AspectBatchTemps reel
LatenceMinutes a heuresMillisecondes a secondes
DebitTres elevePlus faible par requete
InfrastructureJobs planifies (Cron, Airflow)Serveur API (FastAPI, Flask)
Cas d'usageRecommandations par email, rapportsDetection de fraude, chatbots
CoutPlus bas (execution hors pointe)Plus eleve (toujours en marche)
FraicheurObsolete (quelques heures)Temps reel

Mode shadow

En mode shadow, le nouveau modele recoit le trafic de production mais ses predictions ne sont pas montrees aux utilisateurs. Au lieu de cela, les predictions sont enregistrees et comparees avec le modele existant.

Voir le patron de deploiement shadow
Quand utiliser le mode shadow

Le mode shadow est ideal lorsque vous voulez tester un nouveau modele sur de vraies donnees de production sans aucun risque pour les utilisateurs. C'est la strategie de deploiement la plus sure.

Deploiement canari

Dans un deploiement canari, vous acheminez progressivement un petit pourcentage du trafic vers le nouveau modele tout en surveillant les problemes.

Le processus est progressif : 5% → 10% → 25% → 50% → 100%. A tout moment, si des problemes sont detectes, vous effectuez un retour en arriere a 0%.

Deploiement bleu-vert

Dans un deploiement bleu-vert, vous maintenez deux environnements de production identiques. A tout moment, l'un est "actif" (Bleu) et l'autre est "en attente" (Vert).

Comparaison des patrons de deploiement

PatronRisqueComplexiteVitesse de retour arriereIdeal pour
Direct (Big Bang)🔴 EleveFaibleLentPetits projets, non critique
Shadow🟢 AucunMoyenInstantane (pas en production)Validation de nouveaux modeles
Canari🟡 FaibleMoyenRapideConstruction progressive de la confiance
Bleu-Vert🟡 FaibleEleveInstantaneZero temps d'arret requis
Test A/B🟡 FaibleEleveRapideComparaison de variantes de modeles

Versionnement de modeles

Pourquoi versionner les modeles ?

Tout comme vous versionnez le code avec Git, vous devez versionner vos modeles. Sans versionnement :

  • Vous ne pouvez pas reproduire les resultats passes
  • Vous ne pouvez pas revenir a un modele precedent
  • Vous ne savez pas quel modele est en production
  • Le debogage devient impossible

Quoi versionner

ArtefactOutilExemple
CodeGitgit commit -m "Add feature engineering"
ModeleMLflow / Registre de modelesmodel_v2.1.0.pkl
DonneesDVC / Versionnement de donneestraining_data_2024-01.csv
ConfigurationGit (YAML/JSON)hyperparameters.yaml
EnvironnementDocker / requirements.txtDockerfile, requirements.txt

Versionnement semantique pour les modeles

Appliquez le versionnement semantique (MAJEUR.MINEUR.CORRECTIF) aux modeles :

Changement de versionQuandExemple
MAJEUR (v1 → v2)Changement incompatible : nouvelles features, format de sortie differentPassage de binaire a multi-classe
MINEUR (v1.0 → v1.1)Amelioration : reentraine avec plus de donnees, nouvel algorithmeMeilleure precision apres reentrainement
CORRECTIF (v1.0.0 → v1.0.1)Correction de bug : etape de pretraitement corrigeeCorrection d'un bug de normalisation

Resume

Carte des concepts cles

Points cles a retenir

#ConceptA retenir
1Deploiement ≠ DeveloppementCompetences, outils et mentalite differents requis
2MLOpsPratiques pour un ML fiable en production
3Le perimetre d'abordDefinissez ce que vous construisez avant d'ecrire du code
4Derive des donneesVotre modele se degradera avec le temps — planifiez-le
5Patrons de deploiementChoisissez en fonction de la tolerance au risque et des exigences
6Versionnez toutCode, modele, donnees, configuration, environnement
Prochaines etapes

Dans la section suivante, nous approfondirons la planification de l'infrastructure — la configuration des environnements Python, des conteneurs Docker et la comprehension des services cloud pour le deploiement IA.