Özel modeller

MLflow’a Giriş

Weston Bassler

Senior MLOps Engineer

Örnek kullanım durumları

  • NLP - Belirteçleyici(ler)

  • Sınıflandırma - Etiket kodlayıcı

  • Ön/Son işleme

  • Yerleşik bir flavor değil

Farklı

1 unsplash.com
MLflow’a Giriş

Özel Python modelleri

  • Yerleşik flavor - python_function

  • mlflow.pyfunc

    • save_model()
    • log_model()
    • load_model()
MLflow’a Giriş

Özel model sınıfı

  • Özel model sınıfı

    • MyClass(mlflow.pyfunc.PythonModel)
  • PythonModel sınıfı

    • load_context() - mlflow.pyfunc.load_model() çağrıldığında yapıtları yükler
    • predict() - model girdisini alır ve kullanıcı tanımlı değerlendirmeyi yapar
MLflow’a Giriş

Python sınıfı

# Sınıf
class MyPythonClass:

# Hello! yazdıran fonksiyon def my_func(): print("Hello!")
# Yeni bir Nesne oluşturun
x = MyPythonClass()

# my_func fonksiyonunu çalıştırın x.my_func()
"Hello!"
MLflow’a Giriş

Özel sınıf örneği

import mlflow.pyfunc

# Model sınıfını tanımlayın
class CustomPredict(mlflow.pyfunc.PythonModel):

# Yapıtları yükleyin def load_context(self, context): self.model = mlflow.sklearn.load_model(context.artifacts["custom_model"])
# Girdiyi custom_function() ile değerlendirin def predict(self, context, model_input): prediction = self.model.predict(model_input) return custom_function(prediction)
MLflow’a Giriş

Özel bir modeli kaydetme ve günlükleme

# Modeli yerel dosya sistemine kaydedin
mlflow.pyfunc.save_model(path="custom_model", python_model=CustomPredict())
# Modeli MLflow Tracking'e kaydedin (log)
mlflow.pyfunc.log_model(artifact_path="custom_model", python_model=CustomPredict())
MLflow’a Giriş

Özel modelleri yükleme

# Modeli yerelden yükleyin
mlflow.pyfunc.load_model("local")
# Modeli MLflow Tracking'den yükleyin
mlflow.pyfunc.load_model("runs:/run_id/tracking_path")
MLflow’a Giriş

Model değerlendirme

  • mlflow.evaluate() - Bir veri kümesine göre performans

  • Regresyon ve sınıflandırma modelleri

MLflow’a Giriş

Değerlendirme örneği

# Eğitim verisi
X_train, X_test, y_train, y_test = \
    train_test_split(X, y,
    train_size=0.7,random_state=0)

# Doğrusal regresyon modeli lr = LinearRegression() lr.fit(X_train, y_train)
# Veri kümesi
eval_data = X_test
eval_data["test_label"] = y_test

# Modeli veri kümesiyle değerlendirin mlflow.evaluate( "runs:/run_id/model", eval_data, targets="test_label", model_type="regressor" )
MLflow’a Giriş

Tracking arayüzü

değerlendirme

shap

1 shap.readthedocs.io
MLflow’a Giriş

Hadi pratik yapalım!

MLflow’a Giriş

Preparing Video For Download...