Dans un système ML en production, quel est le rôle principal de l’entraînement ?
Réponse : L’entraînement est un composant système (une pipeline) qui produit un artefact industriel traçable, versionné et déployable automatiquement.
Parmi les éléments suivants, lequel n’est pas cité comme une raison fréquente d’échec en production ? A. Évaluations non comparables entre runs B. Déploiement manuel non contrôlé C. Absence de rollback D. Utilisation d’un algorithme trop simple
Réponse : D. Utilisation d’un algorithme trop simple
Donnez deux caractéristiques attendues d’un “production-ready training”.
Réponse : Exemple de réponse attendue : pipeline déterministe ; évaluations comparables dans le temps ; modèle traçable/versionné/déployable automatiquement ; séparation claire entraînement/validation/serving.
Quelle affirmation correspond à la définition d’une pipeline déterministe ? A. Les outputs changent si on relance le training plus tard B. Les métriques sont stables uniquement si les données sont grandes C. Les mêmes inputs produisent les mêmes outputs, aujourd’hui ou dans 6 mois D. Le modèle est identique seulement si le notebook n’a pas été modifié
Réponse : C. Les mêmes inputs produisent les mêmes outputs, aujourd’hui ou dans 6 mois
Laquelle de ces sources est citée comme cause classique de non-déterminisme ? A. Stockage des métriques dans une base de données B. Utilisation de now() / today() dépendant de l’horloge système C. Présence d’un feature store online D. Utilisation d’un stage “Production”
Réponse : B. Utilisation de now() / today() dépendant de l’horloge système
Expliquez en une phrase pourquoi l’alignement temporel est vital lors du training.
Réponse : Le modèle doit apprendre uniquement avec l’information disponible au moment de la prédiction réelle pour éviter des performances artificiellement élevées et garantir une évaluation réaliste.
Quelle stratégie de split est recommandée si “le temps a du sens” pour le problème ? A. Split aléatoire global B. Split par entité (ex : user_id) C. Split temporel (train sur le passé, validation sur le futur) D. Aucun split, uniquement validation en production
Réponse : C. Split temporel (train sur le passé, validation sur le futur)
Citez 3 types d’entrées d’une pipeline d’entraînement qui doivent être traçables.
Quel est l’objectif central du tracking en production, tel que formulé dans les slides ? A. Obtenir la meilleure accuracy possible B. Réduire le coût CPU du training C. Pouvoir répondre factuellement à “Quel modèle est en production… et pourquoi celui-là ?” D. Remplacer le feature store
Réponse : C. Pouvoir répondre factuellement à “Quel modèle est en production… et pourquoi celui-là ?”
Donnez 4 catégories d’informations à traquer au minimum dans un système de tracking d’expériences.
Réponse : Paramètres, métriques, artefacts, contexte de code (commit hash, versions de librairies/environnement).
Quelle différence est correcte entre experiment tracking et model registry ? A. Le tracking gère les stages, le registry gère les seeds B. Le tracking historise des runs, le registry gère des versions et des stages de modèles C. Le tracking sert à calculer les features, le registry sert à valider les données D. Le tracking remplace le déploiement, le registry remplace le serving
Réponse : B. Le tracking historise des runs, le registry gère des versions et des stages de modèles
Expliquez pourquoi “des logs + des fichiers” ne suffisent pas pour le suivi d’expériences.
Réponse : Car il n’y a pas de structure standard, la comparaison automatique des runs est difficile, l’information se perd, et il n’y a pas de lien natif run → modèle → métriques → artefacts → code.
Dans MLflow, un run correspond le plus précisément à : A. Une version d’un modèle en Production B. Une exécution complète d’une pipeline d’entraînement (dataset + config + version de code) C. Une métrique calculée sur le train D. Un artefact unique comme un fichier .pkl
Réponse : B. Une exécution complète d’une pipeline d’entraînement (dataset + config + version de code)
Quelle est l’interface conceptuelle mise en avant pour le format de modèle MLflow (pyfunc) ?
Réponse :predict(input) => output
Quel est le rôle principal de la signature d’un modèle en production ? A. Accélérer l’entraînement en réduisant le nombre de features B. Ajouter du bruit pour éviter l’overfitting C. Définir le schéma d’entrées/sorties et valider automatiquement les inputs au serving D. Forcer le split temporel lors de la validation
Réponse : C. Définir le schéma d’entrées/sorties et valider automatiquement les inputs au serving
Donnez une raison mentionnée expliquant pourquoi l’accuracy peut être trompeuse en production.
Réponse : Exemple de réponse attendue : déséquilibre des classes ; décisions asymétriques (faux positifs/faux négatifs) ; l’accuracy ne reflète pas l’usage réel du score.
Selon les slides, pourquoi l’AUC est-elle pertinente pour un cas de churn ? A. Parce qu’elle dépend fortement d’un seuil choisi à l’avance B. Parce qu’elle mesure la capacité de ranking et est indépendante du seuil C. Parce qu’elle garantit un ROI business positif D. Parce qu’elle empêche la dérive des données
Réponse : B. Parce qu’elle mesure la capacité de ranking et est indépendante du seuil
Dans un model registry, décrivez brièvement la différence entre version et stage.
Réponse : Une version est incrémentée automatiquement, liée à un run précis et immuable ; un stage est un état logique (ex : Staging, Production) exprimant une intention opérationnelle.
Laquelle de ces affirmations décrit une bonne pratique de chargement du modèle dans une API de prédiction ? A. Charger le modèle à chaque requête pour être sûr d’avoir la dernière version B. Charger le modèle uniquement quand une erreur survient C. Charger le modèle au démarrage du service et le garder en mémoire D. Ne jamais garder le modèle en mémoire pour réduire la RAM
Réponse : C. Charger le modèle au démarrage du service et le garder en mémoire
Quelle est la différence attendue entre un endpoint de health check et la readiness d’un service ML ?
Réponse : Le health check vérifie que le service répond et que les dépendances sont accessibles, tandis que la readiness vérifie que le service est prêt à prédire (modèle chargé en mémoire, feature store accessible, registry atteignable).
Vous devez expliquer la différence entre monitoring et observabilité. Quelle affirmation décrit le mieux l’observabilité ?
A. La vérification d’un seuil fixe sur une métrique connue à l’avance
B. La capacité à poser de nouvelles questions en exploitant les signaux du système
C. Un mécanisme qui empêche les erreurs de se produire
D. Une méthode qui garantit la qualité du modèle en production
Réponse : B
Dans un système de machine learning en production, citez les 4 composantes indissociables d’un système ML.
Réponse : Données, code, infrastructure, temps.
Parmi les causes suivantes, laquelle explique le mieux pourquoi un système ML peut échouer sans crash ni exception ?
A. Les erreurs réseau produisent toujours une exception visible
B. Les prédictions peuvent se dégrader alors que l’API répond normalement
C. Le monitoring déclenche automatiquement un réentraînement
D. Le modèle est la seule partie qui peut être défaillante
Réponse : B
Pourquoi est-il difficile de monitorer directement la performance réelle d’un modèle en production ? Donnez une raison.
Réponse : Les labels (ground truth) sont disponibles avec retard (pas de feedback instantané).
Les 3 piliers de l’observabilité sont :
A. CPU, RAM, disque
B. Logs, features, datasets
C. Métriques, logs, traces
D. Dashboards, alertes, réentraînement
Réponse : C
Dans un modèle de monitoring “en couches” pour un système ML, quelles sont les 4 couches typiques (du plus bas au plus haut) ?
Quel signal est typiquement associé à une défaillance au niveau de l’API ?
A. Explosion de cardinalité des labels
B. Pics de latence et hausse du taux d’erreur 4xx/5xx
C. Changement de la fréquence des labels (target)
D. Concept drift directement mesurable
Réponse : B
Citez deux exemples de défaillances au niveau des données qui peuvent impacter un modèle sans produire d’erreur visible.
Réponse : Valeurs manquantes ; changements de distribution ; colonnes nouvelles/supprimées ; types incohérents (deux suffisent).
Lequel des éléments suivants est un type de dérive au niveau du modèle mentionné dans le cours ?
A. Feature store drift
B. Prediction drift
C. Latency drift (au sens infrastructure)
D. API drift
Réponse : B
Donnez une définition simple du drift (dérive) dans un système ML en production.
Réponse : Le monde et les données évoluent avec le temps, ce qui invalide progressivement les hypothèses du modèle et peut dégrader ses performances.
Quel type de drift correspond à un changement de distribution des features d’entrée ?
A. Covariate drift
B. Prior probability drift
C. Concept drift
D. Target drift
Réponse : A
Selon les notions vues, pourquoi le concept drift est-il difficile à détecter directement ?
Réponse : Il nécessite des labels, qui arrivent tard, et la causalité est difficile à établir.
Dans le modèle mental de Prometheus, quel est le principe de collecte des métriques ?
A. Push-based : l’application envoie les métriques au serveur
B. Pull-based : Prometheus vient chercher les métriques
C. Event-based : chaque requête déclenche un export complet
D. Batch-based : les métriques sont transférées une fois par jour
Réponse : B
Dans une architecture Prometheus typique, quel endpoint l’API expose pour les métriques ?
Réponse : /metrics
Parmi les types de métriques Prometheus suivants, lequel correspond à un compteur monotone ?
A. Gauge
B. Counter
C. Histogram
D. Summary
Réponse : B
Quels sont les trois axes de métriques typiques à suivre pour une API ML (hors qualité modèle) ?
Concernant les labels Prometheus, quelle règle pratique réduit le risque d’explosion de cardinalité ?
A. Ajouter user_id comme label pour faciliter le debug
B. Utiliser des labels finis et éviter les valeurs dynamiques
C. Ajouter un timestamp dans chaque label pour mieux historiser
D. Mettre un label différent par requête pour gagner en précision
Réponse : B
En PromQL, à quoi sert la fonction rate(counter[window]) ?
A. Calculer un percentile de latence
B. Calculer une dérivée temporelle (taux d’évolution) d’un compteur
C. Compresser les séries temporelles pour réduire la mémoire
D. Détecter automatiquement un concept drift
Réponse : B
Pourquoi la moyenne de latence est-elle insuffisante pour évaluer l’expérience utilisateur ?
Réponse : Elle peut masquer des valeurs extrêmes, alors que la latence de queue (p95/p99) révèle les pires cas et impacte l’expérience.
Laquelle des affirmations suivantes décrit correctement le rôle du drift dans une stratégie MLOps ?
A. Le drift est une action qui déclenche toujours un réentraînement immédiat
B. Le drift est un bug qui doit être supprimé
C. Le drift est un signal à interpréter, qui déclenche une décision (investigation ou réentraînement contrôlé)
D. Le drift est directement équivalent à une mesure de performance réelle du modèle
Réponse : C
Parmi les propositions suivantes, laquelle décrit le mieux la CI (Continuous Integration) ?
A) Déployer automatiquement en production à chaque commit
B) Intégrer fréquemment et exécuter automatiquement build + tests + checks pour détecter les régressions tôt
C) Réentraîner automatiquement un modèle à chaque nouvelle donnée
D) Router dynamiquement le trafic entre plusieurs modèles
Réponse : B) Intégrer fréquemment et exécuter automatiquement build + tests + checks pour détecter les régressions tôt.
Donnez deux sources de régression fréquentes d’un système ML en production.
Réponse : Par exemple : régressions liées au code (refactor, dépendances, config) et aux données (schéma, distributions, valeurs rares, qualité).
Quel énoncé décrit correctement la différence entre Continuous Delivery et Continuous Deployment ?
A) Delivery = tests unitaires, Deployment = tests d’intégration
B) Delivery = artefacts prêts à être déployés, Deployment = déploiement automatique en production selon une politique
C) Delivery = réentraîner le modèle, Deployment = le comparer à la baseline
D) Delivery = monitoring, Deployment = drift detection
Réponse : B) Delivery = artefacts prêts à être déployés, Deployment = déploiement automatique en production selon une politique.
Citez une raison pour laquelle un modèle “meilleur offline” peut ne pas être “meilleur en production”.
Réponse : La distribution des données peut changer en production (drift), ou le coût des erreurs et les contraintes d’infrastructure (latence, robustesse) peuvent être différents.
Dans une approche CI/CD appliquée aux systèmes ML, quelles sont les entrées principales d’un système ML (par rapport à un logiciel classique) ?
A) Uniquement le code
B) Uniquement les données
C) Code + données + features + configuration
D) Modèle + métriques uniquement
Réponse : C) Code + données + features + configuration.
Donnez trois caractéristiques attendues d’un modèle “production-ready”.
Réponse : Par exemple : latence acceptable, robustesse, compatibilité API, observabilité (logs/metrics), traçabilité (versions, données, features, config).
Parmi les catégories suivantes, laquelle correspond à des tests qui vérifient le schéma request/response d’une API (types, champs obligatoires) ?
A) Unit tests
B) Contract tests
C) Model tests
D) Data tests
Réponse : B) Contract tests.
Expliquez en une phrase l’objectif principal des data tests “light” exécutés en CI.
Réponse : Détecter des breaking changes sur les données/features (colonne manquante, null-rate anormal, bornes invalides) sans lancer une validation complète coûteuse.
Quel est l’objectif d’un integration smoke test dans une CI pour un système ML ?
A) Optimiser les hyperparamètres du modèle
B) Vérifier que la stack démarre et que l’API répond (ex. /health puis /predict)
C) Générer des features historisées
D) Calculer une métrique online métier
Réponse : B) Vérifier que la stack démarre et que l’API répond (ex. /health puis /predict).
Donnez deux bonnes pratiques pour des unit tests avec pytest dans un projet ML.
Réponse : Par exemple : tests courts et déterministes, usage de fixtures pour des données jouets, et assertions explicites avec messages d’erreur utiles.
Dans GitHub Actions, quel élément correspond à une suite d’étapes exécutées sur un runner (VM) ?
A) Workflow
B) Job
C) Step
D) Trigger
Réponse : B) Job.
En lisant un run CI en échec, dans quel ordre minimal regardez-vous généralement les informations ?
Réponse : 1) Statut global et le job qui échoue, 2) logs du job et l’étape en échec (message + stack trace), 3) indices fréquents (dépendances, variables d’environnement, service non prêt, timeouts), 4) artefacts (ex. docker compose logs, rapports pytest) s’ils existent.
Dans la politique décrite, qu’est-ce qui est systématique en CI ?
A) Entraînement complet + évaluation + comparaison + promotion
B) Uniquement des unit tests
C) Unit + contract + integration smoke + data checks légers
D) Monitoring drift et alerting
Réponse : C) Unit + contract + integration smoke + data checks légers.
Donnez un exemple de critère de non-régression utilisé comme garde-fou pour promouvoir un modèle.
Réponse : Exiger que la métrique du nouveau modèle soit au moins égale à celle du modèle en production plus une marge (ex. : auc_new ≥ auc_prod + margin).
Parmi ces propositions, laquelle décrit correctement la différence entre promotion registry et déploiement trafic ?
A) Promotion registry = router le trafic, déploiement trafic = changer un label de version
B) Promotion registry = décision “candidat à servir” via un label/stage, déploiement trafic = décision “combien de requêtes vers quel modèle”
C) Promotion registry = monitoring, déploiement trafic = CI
D) Promotion registry = A/B testing, déploiement trafic = unit tests
Réponse : B) Promotion registry = décision “candidat à servir” via un label/stage, déploiement trafic = décision “combien de requêtes vers quel modèle”.
Citez deux déclencheurs typiques d’un rollback de modèle.
Réponse : Par exemple : SLO violé (latence, erreurs) et alerting drift/anomalies (ou incident business si une métrique online existe).
En shadow deployment, quelle affirmation est correcte ?
A) La réponse du modèle candidat remplace toujours celle du modèle en production
B) La même requête est envoyée aux deux modèles, mais seule la réponse production est utilisée
C) Une fraction du trafic va vers A et l’autre vers B
D) Le trafic est augmenté progressivement de 1% à 100%
Réponse : B) La même requête est envoyée aux deux modèles, mais seule la réponse production est utilisée.
Donnez un prérequis important pour réaliser un A/B testing proprement.
Réponse : Une instrumentation solide et une assignation stable (ainsi qu’une définition claire des métriques).
Quel mécanisme correspond à une exposition progressive 1% → 5% → 25% → 100% avec des conditions d’arrêt basées sur des seuils ?
A) Interleaving
B) Canary release
C) Shadow deployment
D) Bandits (multi-armed)
Réponse : B) Canary release.
Parmi ces niveaux de “continuous learning”, lequel correspond à un réentraînement déclenché par événement (drift, data arrival, alert) ?
A) Niveau 0 : Manual
B) Niveau 1 : Automatisé (schedule)
C) Niveau 2 : Automatisé + stateful
D) Niveau 3 : Event-triggered