Navrhování reprodukovatelných experimentů

Developing Machine Learning Models for Production

Sinan Ozdemir

Data Scientist and Author

Reprodukovatelné experimenty

  • Zajišťují přesnost a spolehlivost.
  • Usnadňují replikaci výsledků.
  • Umožňují lepší spolupráci.
  • Pomáhají snižovat riziko zkreslení v ML modelech.
  • Posilují integritu výzkumného procesu.
Developing Machine Learning Models for Production

MLflow

Open-source platforma pro sledování a správu experimentů strojového učení. MLflow lze využít k:

  • Vytváření reprodukovatelných ML pipeline
  • Sledování a správě:
    • závislostí balíčků
    • verzí kódu
    • nastavení experimentů
  • Umožnění přístupu více uživatelů k experimentům

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
Developing Machine Learning Models for Production

Příklad použití 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
Developing Machine Learning Models for Production

Příklad použití MLflow – pokračování

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
Developing Machine Learning Models for Production

Sledování kódu

  • Zaznamenávání verzí kódu a změn pomocí MLflow
  • Porovnávání různých verzí kódu
  • Identifikace verze kódu použité k vytvoření daných výsledků
  • Snadná reprodukce experimentů
  • Usnadnění ladění a odstraňování chyb v kódu
Developing Machine Learning Models for Production

Registry modelů

  • Centralizované úložiště modelů a jejich metadat
  • MLflow umožňuje zaznamenávat, ukládat a porovnávat různé verze modelů
  • Reprodukce celých ML pipeline
  • Porovnávání modelů
  • Zajištění přesnosti a spolehlivosti modelů

Úložiště

Developing Machine Learning Models for Production

Reprodukovatelnost experimentů

  • Sledování a zaznamenávání vstupních dat, kódu a nastavení
  • Reprodukce celých ML pipeline
  • Budování důvěryhodnosti výsledků ML modelů
  • Umožnění ověření a rozšíření práce ostatními
  • Zajištění konzistentních výsledků napříč různými spuštěními

Developing Machine Learning Models for Production

Dokumentace – opakování

  • Dokumentace je pro reprodukovatelné ML zásadní a měla by obsahovat:
    • Vstupní data modelů.
    • Kód použitý k vytvoření modelů.
    • Veškerá nastavení použitá v experimentu.
    • Výsledky experimentu (který model byl vybrán apod.)
  • Dokumentace by měla být přístupná
  • Slouží jako úplný záznam experimentu
Developing Machine Learning Models for Production

Pojďme procvičovat!

Developing Machine Learning Models for Production

Preparing Video For Download...