Proiectarea experimentelor reproductibile

Dezvoltarea modelelor de Machine Learning pentru producție

Sinan Ozdemir

Data Scientist and Author

Experimente reproductibile

  • Asigurarea acurateței și fiabilității.
  • Replicarea mai ușoară a rezultatelor.
  • Facilitarea colaborării.
  • Reducerea riscului de bias în modelele ML.
  • Consolidarea integrității procesului de cercetare.
Dezvoltarea modelelor de Machine Learning pentru producție

MLflow

Platformă open-source pentru urmărirea și gestionarea experimentelor de ML. MLflow poate fi utilizat pentru:

  • Crearea de pipeline-uri ML reproductibile
  • Urmărirea și gestionarea:
    • dependențelor de pachete
    • versiunilor de cod
    • setărilor experimentelor
  • Accesul mai multor utilizatori la experimente

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
Dezvoltarea modelelor de Machine Learning pentru producție

Exemplu de utilizare a 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
Dezvoltarea modelelor de Machine Learning pentru producție

Exemplu de utilizare a MLflow (continuare)

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
Dezvoltarea modelelor de Machine Learning pentru producție

Urmărirea codului

  • Înregistrarea versiunilor și modificărilor de cod cu MLflow
  • Compararea diferitelor versiuni de cod
  • Identificarea versiunii de cod utilizate pentru un set de rezultate
  • Reproducerea ușoară a experimentelor
  • Facilitarea depanării și remedierii erorilor
Dezvoltarea modelelor de Machine Learning pentru producție

Registre de modele

  • Depozit centralizat de modele și metadate
  • MLflow poate fi utilizat pentru a înregistra, stoca și compara versiuni de modele
  • Reproducerea întregilor pipeline-uri ML
  • Utilizat pentru compararea modelelor
  • Asigurarea acurateței și fiabilității modelelor

stocare

Dezvoltarea modelelor de Machine Learning pentru producție

Reproductibilitatea experimentelor

  • Urmărirea și înregistrarea datelor de intrare, codului și setărilor
  • Reproducerea întregilor pipeline-uri ML
  • Construirea încrederii în rezultatele modelelor de ML
  • Permiterea verificării și extinderii rezultatelor de către alții
  • Asigurarea consistenței rezultatelor între rulări

Dezvoltarea modelelor de Machine Learning pentru producție

Revenire la documentație

  • Documentația este esențială pentru ML reproductibil și trebuie să includă:
    • Datele de intrare ale modelelor.
    • Codul utilizat pentru crearea modelelor.
    • Setările utilizate în experiment.
    • Rezultatele experimentului (modelul ales etc.)
  • Documentația trebuie să fie accesibilă
  • Reprezintă un registru complet al experimentului
Dezvoltarea modelelor de Machine Learning pentru producție

Să exersăm!

Dezvoltarea modelelor de Machine Learning pentru producție

Preparing Video For Download...