MLflow ile modelleri kaydetme ve sunma

Tamamlandı

Model kaydı MLflow ve Azure Databricks'in modelleri izlemesine olanak tanır; iki nedenden dolayı önemlidir:

  • Modeli kaydetmek, modeli gerçek zamanlı, akışlı veya toplu çıkarım için sunmanızı sağlar. Artık veri bilimcilerinin uygulama kodu geliştirmesi gerekmeyen kayıt, eğitilmiş bir modeli kullanma sürecini kolaylaştırır; sunum işlemi, sarmalayıcıyı oluşturur ve toplu puanlama için otomatik olarak bir REST API veya yöntemi kullanıma sunar.
  • Modeli kaydetmek, zaman içinde bu modelin yeni sürümlerini oluşturmanıza olanak tanır; size model değişikliklerini izleme ve hatta modellerin farklı geçmiş sürümleri arasında karşılaştırma yapma fırsatı verir.

Modeli kaydetme

Modeli eğitmek için bir deneme çalıştırdığınızda, burada gösterildiği gibi, deneme çalıştırmasının bir parçası olarak modelin kendisini günlüğe kaydedebilirsiniz:

with mlflow.start_run():
    # code to train model goes here

    # log the model itself (and the environment it needs to be used)
    unique_model_name = "my_model-" + str(time.time())
    mlflow.spark.log_model(spark_model = model,
                           artifact_path=unique_model_name,
                           conda_env=mlflow.spark.get_default_conda_env())

Modelin ne kadar iyi tahmin ettiğini gösteren günlüğe kaydedilen ölçümler de dahil olmak üzere deneme çalıştırmasını gözden geçirdiğinizde, model çalıştırma yapıtlarına dahil edilir. Ardından deneme görüntüleyicisindeki kullanıcı arabirimini kullanarak modeli kaydetme seçeneğini belirleyebilirsiniz.

Alternatif olarak, çalıştırmadaki ölçümleri gözden geçirmeden modeli kaydetmek istiyorsanız, log_model yöntemine registered_model_name parametresini ekleyebilirsiniz; bu durumda model deneme çalıştırması sırasında otomatik olarak kaydedilir.

with mlflow.start_run():
    # code to train model goes here

    # log the model itself (and the environment it needs to be used)
    unique_model_name = "my_model-" + str(time.time())
    mlflow.spark.log_model(spark_model=model,
                           artifact_path=unique_model_name
                           conda_env=mlflow.spark.get_default_conda_env(),
                           registered_model_name="my_model")

Bir modelin birden çok sürümünü kaydederek, tüm istemci uygulamalarını en iyi performansa sahip sürüme taşımadan önce model sürümlerinin performansını belirli bir süre boyunca karşılaştırmanızı sağlayabilirsiniz.

Çıkarım için model kullanma

Yeni özellik verilerindeki etiketleri tahmin etmek için model kullanma işlemi çıkarım olarak bilinir. Azure Databricks'te MLflow kullanarak modelleri aşağıdaki yollarla çıkarım için kullanılabilir hale getirebilirsiniz:

  • Modeli, istemci uygulamalarının REST isteğinde bulunabileceği bir HTTP uç noktasıyla gerçek zamanlı bir hizmet olarak barındırın.
  • Sonuçları bir çıkış tablosuna yazarak özelliklerin delta tablosunu temel alarak etiketlerin kalıcı akış çıkarımını gerçekleştirmek için modeli kullanın.
  • Delta tablosunu temel alarak toplu çıkarım için modeli kullanın ve her toplu işlemin sonuçlarını belirli bir klasöre yazın.

Burada gösterildiği gibi Azure Databricks portalının Modeller bölümündeki sayfasından çıkarım için bir model dağıtabilirsiniz:

Screenshot of the Set up model inference dialog box in the Azure Databricks portal.