Veri ve model versiyonlama

Üretim İçin Machine Learning Modelleri Geliştirme

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Major & minor versiyonlama

İki tür versiyonlama: major ve minor

  • Major versiyonlama, veride ya da modelde büyük bir değişikliği gösterir

  • Minor versiyonlama küçük bir değişikliği gösterir

Major/minor versiyonlarla hangi veri veya model değişikliklerinin nasıl yapıldığını görebiliriz

Üretim İçin Machine Learning Modelleri Geliştirme

Eğitim verisini versiyonlama

  • Benzersiz major/minor etiketleri veya zaman damgaları
  • Deneylerin yeniden üretilebilirliğini ve izlenebilirliğini sağlama
  • Önceki bir veri versiyonuna kolayca dönme
  • Verinin zaman içinde nasıl değiştiğini görme

Örnek:

  1. Data V 1.0 ilk veri kümemizdi
  2. Data V 1.1 ek özellik dönüşümleri içerdi
  3. Data V 1.2 bir özellik seçimi yöntemi ekledi
  4. Data V 2.0 tamamen yeni bir veri kaynağı içeriyor
Üretim İçin Machine Learning Modelleri Geliştirme

Feature store'lar

  • Farklı özellik versiyonlarını depolamak ve yönetmek için merkezi depo
  • Özelliklerin farklı versiyonlarını kolayca izleme
  • Özellikleri farklı deneylerde kullanma
  • İş birliğini ve deney bütünlüğünü artırma
  • İş tekrarını azaltma
Üretim İçin Machine Learning Modelleri Geliştirme

ML modellerini versiyonlama

  • Farklı ML model versiyonlarını takip etme
  • Deneylerin yeniden üretilebilirliğini ve izlenebilirliğini sağlama
  • Modele önceki bir versiyona kolayca geri dönme
  • Genelde eğitim verisi versiyonuyla eşleşir ama her zaman değil

Örnek:

  1. Model V 1.0 ilk modelimiz (Random Forest)
  2. Model V 1.1 aynı model, Data V 1.1 üzerinde ince ayarlı
  3. Model V 2.0 artık Data V 1.2 üzerinde ince ayarlı bir XGBoost modeli
  4. Model V 2.1 XGBoost modeli, Data V 2.0 üzerinde ince ayarlı
Üretim İçin Machine Learning Modelleri Geliştirme

Model store'lar

  • Farklı model versiyonlarını depolamak ve yönetmek için merkezi depo
  • Modellerin farklı versiyonlarını kolayca izleme
  • Önceki versiyonlara geri alma
Üretim İçin Machine Learning Modelleri Geliştirme

MLflow ile model versiyonlama örneği

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")
Üretim İçin Machine Learning Modelleri Geliştirme

Hadi pratik yapalım!

Üretim İçin Machine Learning Modelleri Geliştirme

Preparing Video For Download...