Projektowanie reprodukowalnych eksperymentów

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Sinan Ozdemir

Data Scientist and Author

Reprodukowalne eksperymenty

  • Zapewniają dokładność i niezawodność.
  • Ułatwiają replikację wyników.
  • Sprzyjają lepszej współpracy.
  • Pomagają ograniczyć ryzyko stronniczości w modelach ML.
  • Wzmacniają integralność procesu badawczego.
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

MLflow

Platforma open-source do śledzenia eksperymentów ML i zarządzania nimi. MLflow umożliwia:

  • Tworzenie reprodukowalnych potoków ML
  • Śledzenie i zarządzanie:
    • zależnościami pakietów
    • wersjami kodu
    • ustawieniami eksperymentów
  • Dostęp do eksperymentów dla wielu użytkowników

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Przykład użycia 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
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Przykład użycia MLflow – ciąg dalszy

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
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Śledzenie kodu

  • Rejestrowanie wersji kodu i zmian za pomocą MLflow
  • Porównywanie różnych wersji kodu
  • Identyfikowanie wersji kodu użytej do uzyskania danych wyników
  • Łatwe odtwarzanie eksperymentów
  • Uproszczenie debugowania i rozwiązywania problemów
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Rejestry modeli

  • Scentralizowane repozytorium modeli i ich metadanych
  • MLflow umożliwia rejestrowanie, przechowywanie i porównywanie wersji modeli
  • Odtwarzanie całych potoków ML
  • Porównywanie modeli
  • Zapewnianie dokładności i niezawodności modeli

storage

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Reprodukowalność eksperymentów

  • Śledzenie i rejestrowanie danych wejściowych, kodu i ustawień
  • Odtwarzanie całych potoków ML
  • Budowanie zaufania do wyników modeli uczenia maszynowego
  • Umożliwienie innym weryfikacji i rozwijania pracy
  • Zapewnianie spójności wyników w kolejnych przebiegach

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Dokumentacja – podsumowanie

  • Dokumentacja jest niezbędna w reprodukowalnym ML i powinna zawierać informacje o:
    • Danych wejściowych modeli.
    • Kodzie użytym do tworzenia modeli.
    • Ustawieniach zastosowanych w eksperymencie.
    • Wynikach eksperymentu (wybrany model itp.)
  • Dokumentacja powinna być dostępna
  • Stanowi pełny zapis eksperymentu
Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Czas na ćwiczenia!

Tworzenie modeli uczenia maszynowego na potrzeby produkcji

Preparing Video For Download...