Data- en modelversies

Machine Learning-modellen ontwikkelen voor productie

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Major & minor versies

Twee typen versies: major en minor

  • Major = grote wijziging in data of model

  • Minor = kleine wijziging

Met major/minor zie je welke data- of modelwijzigingen zijn gedaan

Machine Learning-modellen ontwikkelen voor productie

Trainingsdata versiebeheer

  • Unieke major/minor-labels of tijdstempels
  • Reproduceerbaarheid en traceerbaarheid van experimenten
  • Makkelijk terug naar een vorige dataversie
  • Veranderingen in data door de tijd zien

Voorbeeld:

  1. Data V 1.0 was onze initiële dataset
  2. Data V 1.1 had extra feature-transformaties
  3. Data V 1.2 voegde featureselectie toe
  4. Data V 2.0 bevat een geheel nieuwe databron
Machine Learning-modellen ontwikkelen voor productie

Feature stores

  • Centrale repository voor opslag en beheer van featureversies
  • Versies van features makkelijk volgen
  • Features hergebruiken voor verschillende experimenten
  • Betere samenwerking en integriteit van experimenten
  • Minder dubbel werk
Machine Learning-modellen ontwikkelen voor productie

Versiebeheer van ML-modellen

  • Versies van ML-modellen bijhouden
  • Reproduceerbaarheid en traceerbaarheid van experimenten
  • Makkelijk terug naar een vorige modelversie
  • Sluit vaak aan op de dataversie, maar niet altijd

Voorbeeld:

  1. Model V 1.0 is ons initiële model (Random Forest)
  2. Model V 1.1 is hetzelfde model, fijnafstemd op Data V 1.1
  3. Model V 2.0 is nu een XGBoost-model, fijnafstemd op Data V 1.2
  4. Model V 2.1 is het XGBoost-model, fijnafstemd op Data V 2.0
Machine Learning-modellen ontwikkelen voor productie

Modelstores

  • Centrale repository voor opslag en beheer van modelversies
  • Versies van modellen makkelijk volgen
  • Terugzetten naar vorige versies
Machine Learning-modellen ontwikkelen voor productie

Voorbeeld: modelversies met 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")
Machine Learning-modellen ontwikkelen voor productie

Laten we oefenen!

Machine Learning-modellen ontwikkelen voor productie

Preparing Video For Download...