Data- och modellversionering

Att utveckla maskininlärningsmodeller för produktion

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Major- och minor-versionering

Två typer av versionering: major och minor

  • Major-versionering indikerar en stor förändring i data eller modell

  • Minor-versionering indikerar en liten förändring

Med major/minor-versioner kan vi se hur och vad som förändrades i data eller modell

Att utveckla maskininlärningsmodeller för produktion

Versionering av träningsdata

  • Unika major/minor-etiketter eller tidsstämplar
  • Säkerställer reproducerbarhet och spårbarhet för experiment
  • Enkel återgång till en tidigare dataversion
  • Överblick över hur data förändrats över tid

Exempel:

  1. Data V 1.0 var vår ursprungliga datamängd
  2. Data V 1.1 inkluderade ytterligare särdragstransformationer
  3. Data V 1.2 lade till en metod för särdragsurval
  4. Data V 2.0 innehåller en helt ny datakälla
Att utveckla maskininlärningsmodeller för produktion

Särdragslager

  • Centralt lager för att lagra och hantera olika särdragsversioner
  • Enkel spårning av olika versioner av särdrag
  • Använda särdrag i olika experiment
  • Förbättrar samarbete och experimentintegritet
  • Minskar duplicerat arbete
Att utveckla maskininlärningsmodeller för produktion

Versionering av ML-modeller

  • Håller koll på olika versioner av ML-modeller
  • Säkerställer reproducerbarhet och spårbarhet för experiment
  • Enkel återställning till en tidigare modellversion
  • Matchar vanligtvis träningsdataversionen, men inte alltid

Exempel:

  1. Model V 1.0 är vår ursprungliga modell (Random Forest)
  2. Model V 1.1 är samma modell finjusterad på Data V 1.1
  3. Model V 2.0 är nu en XGBoost-modell finjusterad på Data V 1.2
  4. Model V 2.1 är XGBoost-modellen finjusterad på Data V 2.0
Att utveckla maskininlärningsmodeller för produktion

Modellager

  • Centralt lager för att lagra och hantera olika modellversioner
  • Enkel spårning av olika versioner av modeller
  • Återställning till tidigare versioner
Att utveckla maskininlärningsmodeller för produktion

Exempel på modellversionering med MLflow

import mlflow

# Start a new mlflow run
with mlflow.start_run() as run:
    # Log model version as a parameter
    mlflow.log_param("model_version", "1.0")

    # Train and save the model
    model = train_model()
    mlflow.sklearn.log_model(model, "model")
Att utveckla maskininlärningsmodeller för produktion

Nu kör vi en övning!

Att utveckla maskininlärningsmodeller för produktion

Preparing Video For Download...