Att designa reproducerbara experiment

Att utveckla maskininlärningsmodeller för produktion

Sinan Ozdemir

Data Scientist and Author

Reproducerbara experiment

  • Säkerställer noggrannhet och tillförlitlighet.
  • Gör det enklare att reproducera resultat.
  • Möjliggör bättre samarbete.
  • Minskar risken för bias i ML-modeller.
  • Stärker integriteten i forskningsprocessen.
Att utveckla maskininlärningsmodeller för produktion

MLflow

En öppen plattform för att spåra och hantera maskininlärningsexperiment. MLflow kan användas för att:

  • Skapa reproducerbara ML-pipelines
  • Spåra och hantera:
    • paketberoenden
    • kodversioner
    • experimentinställningar
  • Ger flera användare åtkomst till experiment

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
Att utveckla maskininlärningsmodeller för produktion

Exempel på användning av 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
Att utveckla maskininlärningsmodeller för produktion

Exempel på användning av MLflow, forts.

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
Att utveckla maskininlärningsmodeller för produktion

Spåra kod

  • Logga kodversioner och ändringar med MLflow
  • Jämföra olika versioner av koden
  • Identifiera vilken kodversion som användes för att producera ett visst resultat
  • Enkelt reproducera experiment
  • Förenkla felsökning av koden
Att utveckla maskininlärningsmodeller för produktion

Modellregister

  • Centraliserat lager för modeller och deras metadata
  • MLflow kan användas för att logga, lagra och jämföra olika versioner av modeller
  • Reproducera hela ML-pipelines
  • Används för att jämföra modeller
  • Säkerställer modellers noggrannhet och tillförlitlighet

storage

Att utveckla maskininlärningsmodeller för produktion

Reproducerbarhet i experiment

  • Spåra och logga indata, kod och inställningar
  • Reproducera hela ML-pipelines
  • Bygga förtroende för maskininlärningsmodellers resultat
  • Låta andra verifiera och bygga vidare på arbetet
  • Säkerställa att resultaten är konsekventa över olika körningar

Att utveckla maskininlärningsmodeller för produktion

Dokumentation – en genomgång

  • Dokumentation är avgörande för reproducerbar ML och bör innehålla information om:
    • Modellernas indata.
    • Koden som användes för att skapa modellerna.
    • Inställningar som användes i experimentet.
    • Experimentets resultat (vilken modell valdes osv.)
  • Dokumentationen bör vara tillgänglig
  • Ska fungera som en fullständig post över ett experiment
Att utveckla maskininlärningsmodeller för produktion

Nu kör vi en övning!

Att utveckla maskininlärningsmodeller för produktion

Preparing Video For Download...