Verzování dat a modelů

Developing Machine Learning Models for Production

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Hlavní a vedlejší verzování

Dva typy verzování: hlavní a vedlejší

  • Hlavní verzování označuje velkou změnu v datech nebo modelu

  • Vedlejší verzování označuje malou změnu

Hlavní/vedlejší verze ukazují, jak a co se v datech nebo modelu změnilo

Developing Machine Learning Models for Production

Verzování trénovacích dat

  • Jedinečné hlavní/vedlejší označení nebo časová razítka
  • Zajištění reprodukovatelnosti a dohledatelnosti experimentů
  • Snadný návrat k předchozí verzi dat
  • Sledování změn dat v čase

Příklad:

  1. Data V 1.0 byl náš počáteční datový soubor
  2. Data V 1.1 obsahovala další transformace příznaků
  3. Data V 1.2 přidala metodu výběru příznaků
  4. Data V 2.0 zahrnují zcela nový zdroj dat
Developing Machine Learning Models for Production

Úložiště příznaků

  • Centrální úložiště pro správu různých verzí příznaků
  • Snadné sledování různých verzí příznaků
  • Využití příznaků pro různé experimenty
  • Zlepšení spolupráce a integrity experimentů
  • Snížení duplicity práce
Developing Machine Learning Models for Production

Verzování ML modelů

  • Sledování různých verzí ML modelů
  • Zajištění reprodukovatelnosti a dohledatelnosti experimentů
  • Snadný návrat k předchozí verzi modelu
  • Obvykle odpovídá verzi trénovacích dat, ale ne vždy

Příklad:

  1. Model V 1.0 je náš počáteční model (Random Forest)
  2. Model V 1.1 je stejný model doladěný na datech V 1.1
  3. Model V 2.0 je model XGBoost doladěný na datech V 1.2
  4. Model V 2.1 je model XGBoost doladěný na datech V 2.0
Developing Machine Learning Models for Production

Úložiště modelů

  • Centrální úložiště pro správu různých verzí modelů
  • Snadné sledování různých verzí modelů
  • Návrat k předchozím verzím
Developing Machine Learning Models for Production

Příklad verzování modelu s 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")
Developing Machine Learning Models for Production

Pojďme cvičit!

Developing Machine Learning Models for Production

Preparing Video For Download...