Module L38 · Partie K · Ingénierie de l’IA
Bonnes pratiques : CRISP-ML(Q), MLOps, AIOps — le cycle de vie industrialisé.
Un modèle qui marche sur un portable n’est pas un produit. CRISP-ML(Q) est le processus (phases, tâches, assurance qualité à chaque étape) ; MLOps est l’ingénierie qui l’automatise (données, code, modèles versionnés ; pipelines reproductibles ; CI/CD/CT ; monitoring ; gouvernance) ; AIOps est l’application de l’IA à l’exploitation informatique elle-même (détection d’anomalies dans les journaux et métriques, corrélation d’incidents, prédiction de pannes). Ce chapitre donne les cadres, les niveaux de maturité, les pratiques concrètes avec du code, les mathématiques de l’assurance qualité (tests, contrôle statistique, risque), et les références.
Durée : 3 séances · Prérequis : L06, L32, L33, L35, L36. Objectifs : dérouler CRISP-ML(Q) sur un projet avec ses livrables et ses portes de qualité ; construire un pipeline MLOps minimal (données → entraînement → évaluation → registre → déploiement → monitoring) reproductible et testé ; situer une organisation sur les niveaux de maturité ; mettre en œuvre une détection d’anomalies AIOps sur des métriques d’exploitation ; documenter la gouvernance (cartes, lignage, conformité).
Ce que vous saurez faire à la fin
- Écrire le plan qualité d’un projet IA : risques, tests, critères d’acceptation par phase.
- Implémenter un pipeline reproductible avec versions liées (données, code, modèle) et tests automatiques.
- Choisir le niveau d’automatisation (0 → 2) adapté à la fréquence de changement.
- Appliquer l’IA à l’exploitation : anomalies, corrélation, prédiction, avec les métriques de leur utilité.
Fiche de cours · Définitions
Définitions
Fiche de cours · Formules
Formules et grilles à connaître
| Phase CRISP-ML(Q) | Tâches | Livrables | Assurance qualité (exemples de critères) |
|---|---|---|---|
| 1. Compréhension métier et données | Objectif, KPI, faisabilité, données disponibles, contraintes (L34) | Cahier des charges, exigences mesurables, évaluation de faisabilité | KPI relié à une métrique ML ; données existantes et accessibles ; risques listés |
| 2. Préparation des données | Collecte, nettoyage, annotation, séparation, documentation (L36) | Jeu versionné, datasheet, rapport de qualité | Schéma validé ; doublons/fuites contrôlés ; kappa ≥ seuil ; test scellé |
| 3. Modélisation | Escalade (L37), expérimentation, sélection | Modèle candidat, journal d’expériences, carte de modèle | Baseline battue avec IC ; reproductibilité ; ressources dans le budget |
| 4. Évaluation | Banc complet (L32) : qualité, robustesse, équité, coût, sécurité | Rapport d’évaluation, décision go/no-go | Seuils d’acceptation atteints par tranche ; revue par un tiers |
| 5. Déploiement | Empaquetage, service (L33), shadow/canary, runbooks | Service en production, documentation d’exploitation | Tests d’infra passés ; rollback testé ; SLO respectés en canary |
| 6. Surveillance et maintenance | Monitoring, dérive, ré-entraînement, incidents (L35) | Tableau de bord, politique de ré-entraînement, post-mortems | Alertes calibrées ; métriques avec étiquettes ; revue périodique |
Fiche de cours · Théorèmes et démonstrations
Ce qu’on peut démontrer sur le processus
01 / CRISP-ML(Q)
Le plan qualité d’un projet : risques → mesures → critères, phase par phase
02 / MLOps
Un pipeline reproductible en 60 lignes : versions liées, tests de données et de modèle, registre
Ce que font DVC, MLflow, Kubeflow, Dagster : exactement ce mécanisme — hachage des entrées, cache, lignage, registre — à l’échelle et avec une interface. Le principe tient en 60 lignes ; l’important est qu’il soit toujours appliqué.
02 / MLOps
Tests d’un système ML : données, code, modèle, infra — le ML Test Score en pratique
Les tests de comportement (invariance, direction, cas minimaux — CheckList, Ribeiro 2020) attrapent des défauts que l’exactitude globale cache ; pour un LLM, ce sont des cas de banc d’essai (L28) : « la réponse ne change pas si l’on reformule », « refuse hors périmètre », « cite ».
02 / MLOps
Niveaux de maturité, outils, et l’organisation : qui fait quoi
| Niveau | Déclencheur de ré-entraînement | Pipeline | Déploiement | Monitoring | Quand c’est suffisant |
|---|---|---|---|---|---|
| 0 — manuel | À la main, rarement | Notebooks, scripts | Manuel (copie de fichier, API) | Peu ou pas | Prototype, modèle stable, ré-entraînement < 1/trimestre (Proposition 2) |
| 1 — pipeline automatisé | Planifié ou sur dérive/nouvelles données | Orchestré, versionné, validation des données et du modèle, registre | Semi-automatique avec validation | Dérive, qualité sur étiquettes | Données changeantes, plusieurs modèles, équipe de 2–5 |
| 2 — CI/CD/CT | Automatique avec portes de qualité | Pipelines testés en CI, déployés par CD ; expérimentation rapide (feature store, métadonnées) | Automatisé : shadow → canary → complet, rollback auto | Complet, bouclé sur le ré-entraînement | Dizaines de modèles, changements quotidiens, criticité |
| Rôle | Responsabilité | Livrables |
|---|---|---|
| Responsable produit / métier | Objectif, KPI, critères d’acceptation, priorités, risques métier | Cahier des charges, décision go/no-go |
| Ingénieur données | Ingestion, qualité, pipelines de données, catalogue | Jeux versionnés, tests de données |
| Data scientist / ingénieur ML | Escalade, expérimentation, évaluation, cartes de modèle | Modèles candidats, rapports d’évaluation |
| Ingénieur MLOps / plateforme | Pipelines, registre, service, monitoring, infra (L33) | Plateforme, runbooks, tableaux de bord |
| Sécurité / conformité / juridique | Données personnelles, licences, AI Act, audits | Analyses d’impact, registre des traitements |
| Exploitation (SRE) | Disponibilité, incidents, astreinte, post-mortems | SLO, budget d’erreur, post-mortems |
Outils par fonction (libres) : versionnage — Git, DVC, LakeFS ; orchestration — Airflow, Dagster, Kubeflow, Prefect ; expériences/registre — MLflow, W&B ; validation de données — Great Expectations, pandera, TFDV ; service — vLLM, Triton, BentoML, KServe ; monitoring — Evidently, Prometheus/Grafana, Langfuse (LLM) ; feature store — Feast ; annotation — Label Studio, Argilla.
03 / AIOps
L’IA au service de l’exploitation : détection d’anomalies, corrélation, prédiction — implémentées
03 / AIOps
Prédire les pannes et la capacité, et mesurer l’utilité d’AIOps
04 / Gouvernance
Gouvernance, conformité, éthique : ce qui doit exister avant la mise en production
| Élément | Contenu | Quand | Référence |
|---|---|---|---|
| Registre des systèmes IA | Liste des modèles en production : propriétaire, usage, données, risque, version, date de revue | Dès le premier déploiement | AI Act (obligation pour les systèmes à haut risque), ISO/IEC 42001 |
| Classification du risque | Interdit / haut risque (santé, emploi, crédit, sécurité des machines, biométrie) / transparence (chatbots, contenu généré) / minimal | Phase 1 | AI Act, annexe III |
| Documentation | Carte de modèle, datasheet, rapport d’évaluation, ADR, plan qualité | Chaque phase | L34, L36, L32 |
| Données personnelles | Base légale, minimisation, DPIA si risque élevé, droits (accès, effacement — y compris dans les jeux d’entraînement ?), durée de conservation | Phase 2 | RGPD, CNIL |
| Équité et non-discrimination | Métriques par groupe (L32), choix documenté du critère, tests avant déploiement et en production | Phases 4 et 6 | Impossibilité de Chouldechova ; lignes directrices |
| Sécurité | Menaces (injection, empoisonnement des données, extraction du modèle, attaques adverses), contrôles, tests adverses | Phases 3–6 | OWASP ML/LLM Top 10, MITRE ATLAS |
| Supervision humaine | Qui peut annuler, comment, avec quelle information ; humain dans la boucle pour les décisions à impact | Phase 5 | AI Act art. 14 |
| Transparence | Informer que l’on interagit avec une IA ; marquer le contenu généré ; expliquer les décisions (dans la mesure du possible) | Phase 5 | AI Act art. 50/52 |
| Revue et audit | Comité de revue (technique + métier + juridique), audits périodiques, journal des décisions | Avant déploiement, puis annuel | ISO 42001, NIST AI RMF |
| Gestion des incidents | Procédure, notification (autorités si haut risque), post-mortems (L35) | Phase 6 | AI Act art. 73 |
05 / Articles
Les références à lire
| Référence | Contribution | À retenir |
|---|---|---|
| Studer et al., Towards CRISP-ML(Q): A Machine Learning Process Model with Quality Assurance Methodology, 2021 — 2003.05155 | Le processus et l’AQ par phase | Le tableau des phases ; risques → mesures → critères |
| Chapman et al., CRISP-DM 1.0, 1999 | L’ancêtre | Toujours le vocabulaire commun |
| Sculley et al., Hidden Technical Debt in ML Systems, NeurIPS 2015 | Dettes spécifiques au ML | Le modèle est une petite partie du système |
| Breck et al., The ML Test Score, IEEE Big Data 2017 | 28 tests, score de maturité | La liste de la partie 02 |
| Google Cloud, MLOps: Continuous delivery and automation pipelines in machine learning, 2020 | Niveaux 0/1/2 | Choisir le niveau selon la fréquence de changement (Proposition 2) |
| Kreuzberger, Kühl & Hirschl, Machine Learning Operations (MLOps): Overview, Definition, and Architecture, IEEE Access 2023 — 2205.02302 | Principes, composants, rôles, architecture | Une carte complète du domaine |
| Ribeiro et al., Beyond Accuracy: Behavioral Testing of NLP Models with CheckList, ACL 2020 — 2005.04118 | Tests de comportement (invariance, direction, cas minimaux) | Des tests unitaires pour les modèles |
| Polyzotis et al., Data Validation for Machine Learning, SysML 2019 | Validation de données en production (TFDV) | Schémas, dérives, anomalies de données |
| Paleyes, Urma & Lawrence, Challenges in Deploying Machine Learning: A Survey of Case Studies, ACM CSUR 2022 — 2011.09926 | Ce qui échoue en déploiement, par phase | Les mêmes problèmes reviennent partout |
| Dang, Lin & Huang, AIOps: Real-World Challenges and Research Innovations, ICSE 2019 | AIOps : détection, prédiction, causes | Le bruit d’alertes est le premier problème |
| Notaro, Cardoso & Gerndt, A Survey of AIOps Methods for Failure Management, ACM TIST 2021 | Taxonomie des méthodes AIOps | Détection, prédiction, localisation, remédiation |
| Page, Continuous Inspection Schemes (CUSUM), Biometrika 1954 ; Montgomery, Introduction to Statistical Quality Control | SPC, CUSUM, EWMA | Proposition 3 |
| NIST, AI Risk Management Framework, 2023 ; ISO/IEC 42001:2023 ; Règlement (UE) 2024/1689 | Gestion des risques, système de management, obligations | La gouvernance n’est pas optionnelle |
TP guidé
TP — Un pipeline MLOps niveau 1, testé, avec monitoring AIOps (8 h)
- Plan qualité. Pour votre projet (L34–L37), le tableau risques → mesures → critères, avec 3 portes bloquantes.
- Pipeline. DVC (données, étapes, cache) + MLflow (expériences, registre) ou Dagster ; étapes : ingestion → validation (Great Expectations/pandera) → séparation → entraînement → évaluation (L32, IC) → promotion conditionnelle. Reproductibilité : deux exécutions identiques donnent le même hash de modèle.
- Tests en CI. GitHub Actions : tests de données, tests unitaires, tests de comportement (CheckList ou vos cas), test de non-régression du banc d’essai, test de sérialisation et de latence. Une régression bloque la fusion.
- Déploiement. Conteneur + service (FastAPI/BentoML/vLLM) ; shadow puis canary simulé ; rollback scripté et testé.
- Monitoring et AIOps. Journalisation des prédictions ; Evidently ou vos détecteurs (L35) ; métriques système dans Prometheus ; détecteur saisonnier + CUSUM sur la latence ; regroupement d’alertes ; un runbook par alerte ; simulation d’un incident et post-mortem.
- Gouvernance. Carte de modèle, datasheet, entrée au registre des systèmes IA, classification de risque AI Act, checklist RGPD.
- Livrable. Dépôt complet, rapport de ML Test Score avant/après, tableau de bord, post-mortem, dossier de gouvernance.
Exercices
Exercices auto-corrigés
Exercice 1 — ML Test Score
Écrivez ml_test_score(tests) : tests = liste de (famille, nom, statut) avec statut ∈ {"absent", "manuel", "auto"} (0 / 0,5 / 1 point) ; renvoie (score = min des sommes par famille parmi les 4 familles données/modèle/infra/monitoring, dict des sommes) et famille_faible(tests).
Correction
POINTS = {"absent": 0.0, "manuel": 0.5, "auto": 1.0}
def ml_test_score(tests):
sommes = {f: 0.0 for f in ("données", "modèle", "infra", "monitoring")}
for f, _, s in tests: sommes[f] += POINTS[s]
return min(sommes.values()), sommes
def famille_faible(tests): _, s = ml_test_score(tests); return min(s, key=s.get)Exercice 2 — Seuil de rentabilité de l’automatisation (Proposition 2)
Écrivez mois_rentabilite(A, m, a, f) (None si m ≤ a) et niveau_recommande(f_par_mois) : 0 si f < 0,5, 1 si 0,5 ≤ f < 10, 2 sinon (heuristique du cours).
Correction
def mois_rentabilite(A, m, a, f): return None if m <= a else A / ((m - a) * f)
def niveau_recommande(f): return 0 if f < 0.5 else (1 if f < 10 else 2)Exercices
Exercices auto-corrigés (suite)
Exercice 3 — CUSUM et longueur moyenne de détection (Proposition 3)
Implémentez cusum_alerte(x, mu, sigma, k, h) (indice de la première alerte ou None, CUSUM bilatéral sur (x − μ)/σ) et arl(mu_decalage, k, h, essais, rng) (longueur moyenne avant alerte sur des données N(décalage, 1)). Vérifiez ARL₀ (décalage 0) ≫ ARL₁ (décalage 1), et que la règle des 3σ a un ARL₁ ≈ 44.
Correction
def cusum_alerte(x, mu, sigma, k=0.5, h=5.0):
Sp = Sm = 0.0
for i, v in enumerate(x):
z = (v - mu) / sigma; Sp = max(0.0, Sp + z - k); Sm = max(0.0, Sm - z - k)
if Sp > h or Sm > h: return i
return None
def arl(decalage, k=0.5, h=5.0, essais=300, rng=None, n_max=3000):
rng = rng or np.random.default_rng(0); L = []
for _ in range(essais):
i = cusum_alerte(rng.normal(decalage, 1, n_max), 0, 1, k, h); L.append(n_max if i is None else i + 1)
return float(np.mean(L))Exercice 4 — Impact d’un changement dans le graphe de lignage (Proposition 4)
Écrivez a_revalider(deps, noeud) : deps = dict artefact → liste de ses entrées ; renvoie l’ensemble des descendants (artefacts qui dépendent, transitivement, du nœud modifié). Vérifiez sur un graphe données → features → modèle → évaluation → déploiement, avec une branche indépendante.
Correction
def a_revalider(deps, noeud):
enfants = {}
for a, ins in deps.items():
for i in ins: enfants.setdefault(i, []).append(a)
vus, pile = set(), [noeud]
while pile:
n = pile.pop()
for c in enfants.get(n, []):
if c not in vus: vus.add(c); pile.append(c)
return vusFiche de cours · Exercices corrigés
Exercices corrigés (rédaction)
Vérification
Quel critère principal décide du niveau de maturité MLOps à viser ?
Deux questions supplémentaires
1. Que mesure le ML Test Score ? Le minimum, sur quatre familles (données, modèle, infra, monitoring), des points de tests automatisés : la famille la plus faible fixe la note.
2. Pourquoi CUSUM plutôt que la règle des 3σ pour une dérive lente ? La règle des 3σ met ~44 points à voir un décalage de 1σ ; CUSUM accumule les petits écarts et alerte en ~10 points.
Référence
Les mots à retenir
| Mot | Définition |
|---|---|
| CRISP-ML(Q) | Six phases + assurance qualité par risque/mesure/critère. |
| MLOps niveaux 0/1/2 | Manuel / pipeline automatisé / CI-CD-CT ; choisir par fréquence de changement. |
| Lignage | DAG des artefacts ; impact d’un changement = descendants. |
| ML Test Score | Tests données/modèle/infra/monitoring ; min par famille. |
| Tests de comportement | Invariance, direction, cas minimaux (CheckList). |
| SPC, CUSUM, EWMA | Contrôle statistique ; ARL₀ / ARL₁. |
| AIOps | Anomalies saisonnières, regroupement, corrélation, prédiction ; MTTD/MTTR. |
| Gouvernance | Registre, classification de risque, documentation, supervision humaine, incidents. |
Suite
Dernier chapitre : piloter tout cela — le projet, l’équipe, le budget, les parties prenantes.
Gérer et administrer des projets IA : cadrage, estimation sous incertitude, organisation, suivi, communication des résultats, arrêt d’un projet, portefeuille de modèles.