Concevoir des expériences reproductibles

Déployer des modèles de Machine Learning en production

Sinan Ozdemir

Data Scientist and Author

Expériences reproductibles

  • Assurer l'exactitude et la fiabilité.
  • Faciliter la réplication des résultats.
  • Favoriser la collaboration.
  • Réduire le risque de biais dans les modèles de ML.
  • Renforcer l'intégrité du processus de recherche.
Déployer des modèles de Machine Learning en production

MLflow

Une plateforme libre pour suivre et gérer des expériences de Machine Learning. MLflow permet de :

  • Créer des pipelines de ML reproductibles
  • Suivre et gérer :
    • les dépendances des progiciels
    • les versions du code
    • les paramètres d'expériences
  • Offrir l'accès aux expériences à plusieurs utilisateurs

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
Déployer des modèles de Machine Learning en production

Exemple d'utilisation de MLflow

# standard scikit-learn imports
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# new imports from MLflow
import mlflow
import mlflow.sklearn
Déployer des modèles de Machine Learning en production

Exemple d'utilisation de MLflow (suite)

with mlflow.start_run():  # Start an MLflow run assuming we have data prepared

    # Build and train model
    rf = RandomForestClassifier()
    rf.fit(X_train, y_train)

    # Log parameters and model information
    mlflow.log_param("n_estimators", rf.n_estimators)
    mlflow.sklearn.log_model(rf, "model")

    y_pred = rf.predict(X_test)  # Evaluate model
    accuracy = accuracy_score(y_test, y_pred)
    mlflow.log_metric("accuracy", accuracy)  # log the test accuracy metric
Déployer des modèles de Machine Learning en production

Suivi du code

  • Consigner les versions de code et leurs changements avec MLflow
  • Comparer différentes versions de code
  • Savoir quelle version a produit un ensemble de résultats donné
  • Reproduire facilement les expériences
  • Faciliter le débogage et le dépannage du code
Déployer des modèles de Machine Learning en production

Registres de modèles

  • Référentiel centralisé des modèles et de leurs métadonnées
  • MLflow permet de consigner, stocker et comparer différentes versions de modèles
  • Reproduire des pipelines de ML complets
  • Comparer des modèles
  • Assurer l'exactitude et la fiabilité des modèles

storage

Déployer des modèles de Machine Learning en production

Reproductibilité des expériences

  • Suivre et consigner les données d'entrée, le code et les paramètres
  • Reproduire des pipelines de ML complets
  • Renforcer la confiance dans les résultats des modèles de Machine Learning
  • Permettre à d'autres de vérifier et d'étendre le travail
  • Garantir des résultats cohérents entre les exécutions

Déployer des modèles de Machine Learning en production

Retour sur la documentation

  • La documentation est essentielle à une ML reproductible et doit inclure :
    • les données d'entrée des modèles.
    • le code utilisé pour créer les modèles.
    • les paramètres utilisés dans une expérience.
    • les résultats de l'expérience (modèle retenu, etc.)
  • La documentation doit être accessible
  • Elle vise à constituer un dossier complet de l'expérience
Déployer des modèles de Machine Learning en production

Passons à la pratique !

Déployer des modèles de Machine Learning en production

Preparing Video For Download...