Quiz - Fondements du deploiement
Section A : Concepts de deploiement (8 questions)
Question 1
Quelle est la principale difference entre le developpement ML et le deploiement ML ?
A) Le developpement utilise Python, le deploiement utilise Java
B) Le developpement se concentre sur la precision du modele, le deploiement sur la fiabilite et la mise en production
C) Le developpement est gratuit, le deploiement est payant
D) Le developpement est pour les scientifiques de donnees, le deploiement est pour les gestionnaires
Voir la reponse
Reponse : B) Le developpement se concentre sur la precision du modele, le deploiement sur la fiabilite et la mise en production
Le developpement ML se fait generalement dans des notebooks et vise a maximiser les metriques du modele. Le deploiement ajoute des exigences de fiabilite, de performance, de surveillance et de maintenabilite. Les deux phases utilisent Python et impliquent des equipes techniques.
Question 2
Que signifie MLOps ?
A) Machine Learning Online Processing System
B) La combinaison des pratiques ML, DevOps et d'ingenierie de donnees pour le deploiement fiable de modeles en production
C) Un outil specifique developpe par Google pour le deploiement ML
D) Le processus d'optimisation manuelle des modeles ML
Voir la reponse
Reponse : B) La combinaison des pratiques ML, DevOps et d'ingenierie de donnees pour le deploiement fiable de modeles en production
MLOps est un ensemble de pratiques (pas un outil specifique) qui combine le machine learning, le DevOps et l'ingenierie de donnees pour deployer et maintenir les systemes ML en production de maniere fiable et efficace.
Question 3
A quel niveau de maturite MLOps un projet dispose-t-il d'un entrainement automatise mais d'un deploiement encore manuel ?
A) Niveau 0 — Pas de MLOps
B) Niveau 1 — DevOps mais pas MLOps
C) Niveau 2 — Entrainement automatise
D) Niveau 3 — Deploiement automatise
Voir la reponse
Reponse : C) Niveau 2 — Entrainement automatise
Le niveau 2 automatise le pipeline d'entrainement (reentrainement planifie avec de nouvelles donnees) mais le deploiement du modele reste un processus manuel. Le niveau 3 automatise egalement le deploiement.
Question 4
Qu'est-ce que la "derive des donnees" (data drift) ?
A) Le processus de migration des donnees vers le cloud
B) Un changement dans la distribution statistique des donnees d'entree par rapport aux donnees d'entrainement
C) La perte de donnees lors du transfert reseau
D) La duplication accidentelle de donnees dans la base de donnees
Voir la reponse
Reponse : B) Un changement dans la distribution statistique des donnees d'entree par rapport aux donnees d'entrainement
La derive des donnees se produit lorsque les donnees de production evoluent par rapport aux donnees utilisees pour entrainer le modele. Par exemple, un modele entraine sur des donnees pre-COVID peut mal performer sur des donnees post-COVID car les comportements d'achat ont change.
Question 5
Quelle est la difference entre "derive des donnees" et "derive de concept" ?
A) Il n'y a pas de difference, ce sont des synonymes
B) La derive des donnees concerne les donnees d'entree, la derive de concept concerne la relation entre les entrees et les sorties
C) La derive des donnees est rapide, la derive de concept est lente
D) La derive des donnees est detectable, la derive de concept ne l'est pas
Voir la reponse
Reponse : B) La derive des donnees concerne les donnees d'entree, la derive de concept concerne la relation entre les entrees et les sorties
La derive des donnees se produit lorsque la distribution des variables d'entree change (ex. : nouveau segment demographique). La derive de concept se produit lorsque la relation entre les entrees et la variable cible change (ex. : les criteres de fraude evoluent). Les deux sont detectables avec des outils de surveillance appropries.
Question 6
Qu'est-ce qu'un "Feature Store" ?
A) Un magasin en ligne pour acheter des modeles ML
B) Un repertoire centralise pour stocker, gerer et servir des features ML de maniere coherente entre l'entrainement et l'inference
C) Un outil de visualisation de donnees
D) Un systeme de stockage de fichiers comme AWS S3
Voir la reponse
Reponse : B) Un repertoire centralise pour stocker, gerer et servir des features ML de maniere coherente entre l'entrainement et l'inference
Le Feature Store garantit que les features utilisees pendant l'entrainement sont calculees exactement de la meme maniere pendant l'inference. Cela evite le classique probleme de "training-serving skew" ou les transformations different entre les deux phases.
Question 7
Dans le contexte du deploiement ML, que signifie "MVM" (Modele Minimum Viable) ?
A) Le modele avec le plus petit nombre de parametres possible
B) Un modele fonctionnel qui resout le probleme principal et peut etre ameliore de maniere iterative
C) Un modele qui ne fonctionne que sur un minimum de donnees
D) Le modele le moins couteux a deployer
Voir la reponse
Reponse : B) Un modele fonctionnel qui resout le probleme principal et peut etre ameliore de maniere iterative
Inspire du MVP (Minimum Viable Product) en developpement logiciel, le MVM est un modele suffisamment performant pour etre utile en production, meme s'il n'est pas optimal. L'idee est de deployer rapidement et d'iterer plutot que de chercher la perfection avant le premier deploiement.
Question 8
Quelle strategie de versionnement est recommandee pour les modeles ML ?
A) Versionner uniquement le code avec Git
B) Utiliser le versionnement semantique (MAJEUR.MINEUR.CORRECTIF) pour le code, le modele, les donnees et la configuration
C) Nommer les modeles avec la date (model_2024-01-15.pkl)
D) Ne pas versionner les modeles car ils changent trop souvent
Voir la reponse
Reponse : B) Utiliser le versionnement semantique (MAJEUR.MINEUR.CORRECTIF) pour le code, le modele, les donnees et la configuration
Le versionnement semantique applique aux modeles permet :
- MAJEUR : changement incompatible (nouveau format de sortie)
- MINEUR : amelioration (reentrainement avec plus de donnees)
- CORRECTIF : correction de bug (corrige un probleme de pretraitement)
Versionner uniquement le code (A) n'est pas suffisant. Les noms bases sur la date (C) ne transmettent pas la nature du changement.
Section B : Infrastructure (7 questions)
Question 9
Quel est le principal avantage d'un environnement virtuel Python ?
A) Il rend Python plus rapide
B) Il isole les dependances de chaque projet pour eviter les conflits de version
C) Il protege contre les virus informatiques
D) Il permet d'executer Python sans l'installer
Voir la reponse
Reponse : B) Il isole les dependances de chaque projet pour eviter les conflits de version
Un environnement virtuel cree une installation Python isolee. Chaque projet peut avoir ses propres versions de paquets sans interferer avec les autres projets ou le systeme Python global. C'est essentiel quand differents projets necessitent differentes versions du meme paquet.
Question 10
Quelle est la commande correcte pour creer un environnement virtuel avec venv ?
A) pip install venv
B) python -m venv .venv
C) conda create venv
D) virtualenv --create .venv
Voir la reponse
Reponse : B) python -m venv .venv
venv est un module integre a Python 3.3+. Il est invoque avec python -m venv suivi du nom du repertoire (.venv est la convention). Il ne necessite pas d'installation separee (pip install n'est pas necessaire). conda create est pour les environnements Conda, pas venv.
Question 11
Pourquoi est-il important de "fixer" les versions dans requirements.txt ?
A) Pour rendre le fichier plus lisible
B) Pour assurer la reproductibilite — le meme code donne le meme resultat partout
C) Pour reduire la taille des paquets installes
D) Pour eviter de payer des licences logicielles
Voir la reponse
Reponse : B) Pour assurer la reproductibilite — le meme code donne le meme resultat partout
Sans versions fixees, pip install scikit-learn installera la derniere version disponible. Si une nouvelle version est publiee avec des changements incompatibles, votre code pourrait cesser de fonctionner. Avec scikit-learn==1.4.2, vous obtenez toujours la meme version sur toute machine.
Question 12
Quel est le role d'un Dockerfile ?
A) Documenter le projet pour les developpeurs
B) Definir la recette pour construire une image Docker contenant l'application et toutes ses dependances
C) Configurer les parametres reseau du conteneur
D) Stocker les variables d'environnement sensibles
Voir la reponse
Reponse : B) Definir la recette pour construire une image Docker contenant l'application et toutes ses dependances
Un Dockerfile est un fichier texte qui contient une sequence d'instructions pour construire une image Docker. Chaque instruction cree une couche dans l'image. Le resultat est un conteneur portable qui fonctionne de maniere identique sur toute machine avec Docker installe.
Question 13
Dans un Dockerfile, pourquoi copie-t-on requirements.txt et installe-t-on les dependances AVANT de copier le code source ?
A) C'est juste une convention, l'ordre n'importe pas
B) Pour exploiter le cache Docker — les dependances ne changent pas a chaque modification du code
C) Parce que les dependances doivent etre installees avant que Python n'existe dans le conteneur
D) Pour des raisons de securite
Voir la reponse
Reponse : B) Pour exploiter le cache Docker — les dependances ne changent pas a chaque modification du code
Docker construit les images en couches. Si une couche n'a pas change, Docker reutilise le cache. En copiant requirements.txt d'abord, la couche d'installation des dependances (qui est lente) est mise en cache tant que les dependances ne changent pas. Si on copiait tout le code d'abord, chaque modification d'un fichier Python invaliderait le cache et forcerait la reinstallation de tous les paquets.
Question 14
Pour un modele scikit-learn (Random Forest) servant des predictions via API, quel type d'instance est le plus approprie ?
A) GPU (g4dn.xlarge) pour accelerer l'inference
B) CPU (t3.medium ou c5.xlarge) — suffisant pour les modeles classiques
C) Multi-GPU (p4d.24xlarge) pour la haute disponibilite
D) Un GPU est toujours requis pour le machine learning
Voir la reponse
Reponse : B) CPU (t3.medium ou c5.xlarge) — suffisant pour les modeles classiques
Les modeles scikit-learn (Random Forest, Regression Logistique, etc.) sont optimises pour le CPU. Ils ne beneficient pas de l'acceleration GPU, qui est concue pour les operations massivement paralleles des reseaux de neurones. Utiliser un GPU pour sklearn gaspillerait des ressources et de l'argent (un GPU coute 10 a 100 fois plus).
Question 15
Qu'est-ce que le CI/CD dans le contexte ML ?
A) "Code Integration / Code Deployment" — un outil de gestion de code
B) "Continuous Integration / Continuous Deployment" — automatisation des tests, de la validation et du deploiement
C) "Cloud Infrastructure / Cloud Delivery" — un service de cloud computing
D) "Customer Interface / Customer Delivery" — une approche centree client
Voir la reponse
Reponse : B) "Continuous Integration / Continuous Deployment" — automatisation des tests, de la validation et du deploiement
Le CI/CD automatise le processus de validation et de deploiement du code. En ML, cela inclut non seulement les tests de code mais aussi la validation des donnees, la verification des metriques du modele et le deploiement automatique lorsque toutes les conditions sont remplies. Des outils comme GitHub Actions, GitLab CI ou Jenkins sont couramment utilises.
Section C : Scenarios pratiques (5 questions)
Question 16
Vous deployez un modele de detection de fraude qui doit repondre en moins de 100ms. Quel patron de deploiement est le plus approprie ?
A) Batch — executer les predictions toutes les heures
B) Temps reel — servir les predictions via une API
C) Mode shadow — enregistrer les predictions sans les utiliser
D) Batch — executer les predictions une fois par jour
Voir la reponse
Reponse : B) Temps reel — servir les predictions via une API
La detection de fraude necessite une reponse immediate — chaque transaction doit etre evaluee en temps reel avant approbation. Le traitement par lots (toutes les heures ou quotidien) serait trop lent : la fraude serait deja commise avant la detection. Le mode shadow ne sert pas les predictions aux utilisateurs.
Question 17
Vous avez entraine un nouveau modele (v2) qui ameliore la precision de 5%. Vous voulez le tester en production sans risque. Quelle strategie utilisez-vous ?
A) Deploiement direct (Big Bang) — remplacer immediatement v1 par v2
B) Mode shadow — envoyer le trafic a v2 mais ne pas utiliser ses predictions
C) Supprimer v1 et esperer que v2 fonctionne
D) Attendre 6 mois de tests en laboratoire avant de deployer
Voir la reponse
Reponse : B) Mode shadow — envoyer le trafic a v2 mais ne pas utiliser ses predictions
Le mode shadow est la strategie la plus sure pour tester un nouveau modele. Le modele v2 recoit le vrai trafic de production et ses predictions sont enregistrees, mais les utilisateurs continuent de recevoir les predictions de v1. Vous pouvez comparer les performances des deux modeles sur de vraies donnees sans aucun risque pour les utilisateurs.
Question 18
Votre modele de recommandation e-commerce a ete entraine en 2023. En 2024, les ventes de la categorie "fitness" ont triple a cause d'une tendance TikTok. Les recommandations semblent moins pertinentes. Quel est le probleme ?
A) Un bug dans le code de l'API
B) Derive des donnees et possiblement derive de concept — les comportements d'achat ont change
C) Le serveur est trop lent
D) Le modele est trop complexe (surapprentissage)
Voir la reponse
Reponse : B) Derive des donnees et possiblement derive de concept — les comportements d'achat ont change
C'est un cas classique de derive des donnees (la distribution des achats a change, avec beaucoup plus de produits fitness) et de derive de concept (la relation entre les features et les preferences des utilisateurs a evolue). La solution est de reentrainer le modele avec des donnees recentes qui refletent les nouvelles tendances d'achat.
Question 19
Vous developpez un projet ML en equipe. Un collegue a pandas==1.5.3 et vous avez pandas==2.2.0. Le code fonctionne pour vous mais pas pour votre collegue. Quelle est la meilleure solution ?
A) Demander a votre collegue de mettre a jour manuellement ses paquets
B) Utiliser un requirements.txt avec des versions fixees et un environnement virtuel
C) Utiliser le meme ordinateur pour tout le monde
D) Ecrire du code compatible avec toutes les versions de pandas
Voir la reponse
Reponse : B) Utiliser un requirements.txt avec des versions fixees et un environnement virtuel
C'est exactement le probleme que les environnements virtuels et les fichiers de dependances avec versions fixees resolvent. En combinant python -m venv .venv et pip install -r requirements.txt (avec des versions fixees comme pandas==2.2.0), chaque membre de l'equipe aura exactement le meme environnement. Docker va encore plus loin en fixant egalement le systeme d'exploitation.
Question 20
Vous deployez un nouveau modele en deploiement canari a 5% du trafic. Apres 24 heures, vous remarquez que le taux d'erreur du modele canari est 3 fois plus eleve que le modele actuel. Que faites-vous ?
A) Augmenter le trafic a 50% pour obtenir plus de donnees
B) Attendre une semaine de plus avant de prendre une decision
C) Retour arriere immediat — ramener le trafic canari a 0% et investiguer le probleme
D) Ignorer le probleme car 5% du trafic est negligeable
Voir la reponse
Reponse : C) Retour arriere immediat — ramener le trafic canari a 0% et investiguer le probleme
Un taux d'erreur 3 fois plus eleve est un signal d'alerte clair. L'avantage du deploiement canari est precisement la capacite de detecter les problemes sur un petit pourcentage de trafic et d'effectuer un retour arriere rapide. Augmenter le trafic (A) aggraverait le probleme. Attendre (B) exposerait inutilement les 5% d'utilisateurs a un service degrade. Ignorer (D) va a l'encontre de l'objectif du canari.
Bareme
| Section | Questions | Points |
|---|---|---|
| A — Concepts de deploiement | 1 a 8 | 40 points (5 pts chaque) |
| B — Infrastructure | 9 a 15 | 35 points (5 pts chaque) |
| C — Scenarios pratiques | 16 a 20 | 25 points (5 pts chaque) |
| Total | 20 questions | 100 points |
Interpretation
| Score | Niveau | Recommandation |
|---|---|---|
| 90-100 | Excellent | Vous maitrisez les fondamentaux du deploiement ML |
| 75-89 | Bon | Revisez les concepts ou vous avez fait des erreurs |
| 60-74 | Adequat | Relisez les sections "Concepts" et "Infrastructure" |
| < 60 | Insuffisant | Recommencez le module depuis le debut avant de continuer |