Versionamento di dati e modelli

Sviluppare modelli di Machine Learning per la produzione

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Versioni major e minor

Due tipi di versionamento: major e minor

  • Major indica un cambio rilevante in dati o modello

  • Minor indica un piccolo cambiamento

Con major/minor vediamo come e quali cambiamenti sono stati fatti su dati o modello

Sviluppare modelli di Machine Learning per la produzione

Versionamento dei dati di training

  • Etichette major/minor univoche o timestamp
  • Assicurare riproducibilità e tracciabilità degli esperimenti
  • Tornare facilmente a una versione precedente dei dati
  • Vedere come i dati cambiano nel tempo

Esempio:

  1. Data V 1.0 è il dataset iniziale
  2. Data V 1.1 include trasformazioni di feature aggiuntive
  3. Data V 1.2 aggiunge un metodo di selezione delle feature
  4. Data V 2.0 include una nuova fonte dati
Sviluppare modelli di Machine Learning per la produzione

Feature store

  • Repository centrale per archiviare e gestire diverse versioni di feature
  • Tracciare facilmente le versioni delle feature
  • Usare le feature in esperimenti diversi
  • Migliorare collaborazione e integrità degli esperimenti
  • Ridurre il lavoro duplicato
Sviluppare modelli di Machine Learning per la produzione

Versionamento dei modelli ML

  • Tenere traccia delle versioni dei modelli ML
  • Assicurare riproducibilità e tracciabilità degli esperimenti
  • Ripristinare facilmente una versione precedente del modello
  • Di solito corrisponde alla versione dei dati di training, ma non sempre

Esempio:

  1. Model V 1.0 è il modello iniziale (Random Forest)
  2. Model V 1.1 è lo stesso modello ottimizzato su Data V 1.1
  3. Model V 2.0 è ora un modello XGBoost ottimizzato su Data V 1.2
  4. Model V 2.1 è l'XGBoost ottimizzato su Data V 2.0
Sviluppare modelli di Machine Learning per la produzione

Model store

  • Repository centrale per archiviare e gestire diverse versioni di modello
  • Tracciare facilmente le versioni dei modelli
  • Ripristino a versioni precedenti
Sviluppare modelli di Machine Learning per la produzione

Esempio di versionamento con 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")
Sviluppare modelli di Machine Learning per la produzione

Passiamo alla pratica !

Sviluppare modelli di Machine Learning per la produzione

Preparing Video For Download...