AccueilBlogTest technique MLOps : CI/CD pour le ML, MLflow, déploiement de modèles
Guide recrutement data

Test technique MLOps : CI/CD pour le ML, MLflow, déploiement de modèles

MLOps est le point de friction entre Data Science et Data Engineering. En entretien, on évalue la capacité à industrialiser un modèle ML : versioning, déploiement, monitoring et retraining automatisé.

Data Builder·Juin 2025·9 min de lecture·Data Scientist · ML Engineer
Sommaire
  1. Principes MLOps
  2. MLflow : tracking et registry
  3. CI/CD pour le ML
  4. Déploiement de modèles
  5. Monitoring et data drift
  6. Feature store
  7. Grille par niveau

Un Data Scientist qui ne peut pas déployer ses modèles en production est un coût, pas une valeur. MLOps est le pont entre le notebook de recherche et le système de production fiable. En entretien, on distingue les profils qui ont réellement industrialisé des modèles de ceux qui ont seulement entraîné des modèles.

1Principes MLOps : les niveaux de maturité

Question discriminante

Décrivez les 3 niveaux de maturité MLOps (MLOps 0, 1, 2). À quel niveau se situe votre organisation actuelle ?

Signal GO Senior : le candidat sait identifier le niveau de maturité de son organisation et peut expliquer les étapes pour progresser vers le niveau supérieur.

2MLflow : tracking, registry et serving

Question discriminante

Quelle est la différence entre MLflow Tracking, MLflow Model Registry et MLflow Serving ?

import mlflow import mlflow.sklearn from sklearn.ensemble import RandomForestClassifier # MLflow Tracking : loguer les expériences with mlflow.start_run(run_name="RF_v2_features_v3"): mlflow.log_param("n_estimators", 100) mlflow.log_param("max_depth", 5) model = RandomForestClassifier(n_estimators=100, max_depth=5) model.fit(X_train, y_train) accuracy = model.score(X_test, y_test) mlflow.log_metric("accuracy", accuracy) mlflow.log_metric("f1_score", f1) # Loguer le modèle avec sa signature mlflow.sklearn.log_model( model, "random_forest", signature=infer_signature(X_train, model.predict(X_train)) ) # MLflow Model Registry : promouvoir vers production client = mlflow.tracking.MlflowClient() client.transition_model_version_stage( name="churn_predictor", version=3, stage="Production" # Staging → Production )

3CI/CD pour le Machine Learning

Question discriminante

Qu'est-ce qu'un test de modèle ML dans un pipeline CI/CD ? Quels types de tests implémentez-vous ?

# Exemple de test de performance dans un pipeline CI def test_model_performance(): model = load_model("models/churn_v3") X_test, y_test = load_validation_set() score = f1_score(y_test, model.predict(X_test)) baseline = 0.82 # performance du modèle en production actuel assert score >= baseline * 0.98, ( f"Nouveau modèle trop faible: {score:.3f} vs baseline {baseline:.3f}" )

4Déploiement de modèles en production

Question discriminante

Quelles sont les différentes stratégies de déploiement d'un modèle ML ? Dans quel cas choisissez-vous chacune ?

StratégieDescriptionCas d'usage
Batch scoringPipeline planifié, prédictions en lot stockées en baseRecommandations email nocturnes, scoring client mensuel
Real-time APIFastAPI/Flask, prédiction à la demande, faible latenceScore crédit en temps réel, détection de fraude
StreamingKafka + modèle embarqué, prédiction sur chaque eventAnomaly detection temps réel, IoT
Embedded modelModèle dans l'application (mobile, edge)NLP offline, vision par ordinateur sur device

5Monitoring et data drift

Question discriminante

Qu'est-ce que le concept drift et le data drift ? Comment les détectez-vous en production ?

6Feature store

Question discriminante

À quoi sert un feature store ? Dans quel cas en avez-vous besoin ?

7Grille par niveau

NiveauMaîtrise attendueSignal GONO-GO
JuniorMLflow Tracking, déploiement manuel d'une API FastAPI, containerisation DockerA loggué des expériences avec MLflow, a dockerisé un modèle, comprend le concept de train/test splitNe sait pas ce qu'est MLflow, n'a jamais déployé un modèle hors du notebook
ConfirméMLflow Registry, CI/CD ML basique, tests de performance, batch vs real-timeA promu un modèle via MLflow Registry, a écrit des tests de performance, a déployé en batch et en APINe sait pas différencier batch scoring et real-time, n'a pas de tests sur ses modèles
SeniorPipeline CI/CD complet, monitoring drift, canary deployment, feature storeA implémenté la détection de data drift, a fait du canary deployment, connaît les feature storesNe sait pas ce qu'est le data drift, n'a jamais mis en place de monitoring de modèle
LeadArchitecture MLOps 2, standards équipe, A/B testing rigoureux, gouvernance des modèlesA défini l'architecture MLOps de son équipe, a mis en place des A/B tests rigoureux avec analyse d'impact businessNe peut pas expliquer comment passer de MLOps 0 à MLOps 2 dans son contexte

Vous recrutez un Data Scientist ou ML Engineer ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.