Reproduceerbare experimenten ontwerpen

Machine Learning-modellen ontwikkelen voor productie

Sinan Ozdemir

Data Scientist and Author

Reproduceerbare experimenten

  • Waarborg nauwkeurigheid en betrouwbaarheid.
  • Resultaten makkelijker reproduceren.
  • Betere samenwerking.
  • Helpt bias in ML-modellen te beperken.
  • Versterkt de integriteit van onderzoek.
Machine Learning-modellen ontwikkelen voor productie

MLflow

Een open-sourceplatform voor het tracken en beheren van ML-experimenten. MLflow kan:

  • Reproduceerbare ML-pijplijnen maken
  • Tracken en beheren:
    • pakketafhankelijkheden
    • codeversies
    • experimentinstellingen
  • Meerdere gebruikers toegang geven tot experimenten

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
Machine Learning-modellen ontwikkelen voor productie

Voorbeeld: MLflow gebruiken

# 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
Machine Learning-modellen ontwikkelen voor productie

Voorbeeld: MLflow (vervolg)

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
Machine Learning-modellen ontwikkelen voor productie

Code bijhouden

  • Codeversies en wijzigingen loggen met MLflow
  • Verschillende codeversies vergelijken
  • Vastleggen welke codeversie bepaalde resultaten gaf
  • Experimenten eenvoudig reproduceren
  • Debuggen en problemen oplossen makkelijker maken
Machine Learning-modellen ontwikkelen voor productie

Modelregisters

  • Gecentraliseerde opslag voor modellen en metadata
  • MLflow kan verschillende modelversies loggen, opslaan en vergelijken
  • Hele ML-pijplijnen reproduceren
  • Gebruikt om modellen te vergelijken
  • Nauwkeurigheid en betrouwbaarheid van modellen borgen

opslag

Machine Learning-modellen ontwikkelen voor productie

Experimenteerbare reproduceerbaarheid

  • Inputdata, code en instellingen tracken en loggen
  • Hele ML-pijplijnen reproduceren
  • Vertrouwen opbouwen in modelresultaten
  • Anderen laten verifiëren en voortbouwen
  • Consistente resultaten over runs waarborgen

Machine Learning-modellen ontwikkelen voor productie

Documentatie herbekijken

  • Documentatie is cruciaal voor reproduceerbare ML en bevat info over:
    • Inputdata van modellen.
    • De code waarmee modellen zijn gemaakt.
    • Alle instellingen in het experiment.
    • De resultaten (welk model is gekozen, enz.)
  • Documentatie moet toegankelijk zijn
  • Bedoeld als volledig verslag van een experiment
Machine Learning-modellen ontwikkelen voor productie

Laten we oefenen!

Machine Learning-modellen ontwikkelen voor productie

Preparing Video For Download...