Aracılığıyla paylaş


MLflow kullanarak model geliştirmeyi izleme

MLflow izleme, bir makine öğrenmesi veya derin öğrenme modeli eğitmeyle ilgili not defterlerini ve eğitim veri kümelerini, parametreleri, ölçümleri, etiketleri ve yapıtları kaydetmenizi sağlar. MLflow kullanmaya başlamak için örnek bir not defteri için bkz . Öğretici: Azure Databricks'te uçtan uca klasik ML modelleri.

Deneyler, çalıştırmalar ve modeller ile MLflow takibi

Model geliştirme süreci yinelemeli bir süreçtir ve bir modeli geliştirip iyileştirdikçe çalışmalarınızı takip etmek zor olabilir. Azure Databricks'te, denediğiniz parametre ayarları veya birleşimler ve modelin performansını nasıl etkiledikleri dahil olmak üzere model geliştirme sürecini izlemenize yardımcı olması için MLflow izleme özelliğini kullanabilirsiniz.

MLflow izleme, ML ve derin öğrenme modeli geliştirmelerini günlüğe kaydetmek ve izlemek için denemeleri, çalıştırma işlemlerini ve modelleri kullanır. Çalıştırma, model kodunun tek bir yürütülmesidir. MLflow çalıştırması sırasında model parametrelerini ve sonuçlarını günlüğe kaydedebilirsiniz. Deney, bağlantılı çalıştırmaların bir koleksiyonudur. Bir denemede, modelinizin performansını ve performansının parametre ayarlarına, giriş verilerine vb. nasıl bağlı olduğunu anlamak için çalıştırmaları karşılaştırabilir ve filtreleyebilirsiniz. Model, eğitilmiş bir makine öğrenmesi modelini temsil eden yapıt koleksiyonudur.

MLflow 3 ile, LoggedModels bir çalıştırma tarafından üretilen model kavramını yükselterek farklı eğitim ve değerlendirme çalıştırmaları genelinde model yaşam döngüsünü izlemek için ayrı bir varlık olarak oluşturur.

Uyarı

27 Mart 2024'den itibaren MLflow, tüm mevcut ve yeni çalıştırmalar için toplam parametre, etiket ve ölçüm adımı sayısına ve tüm mevcut ve yeni denemelerin toplam çalıştırma sayısına kota sınırı uygular. Bkz. Kaynak sınırları. Deneme başına çalıştırma kotasına ulaşırsanız, Databricks, Python'da delete runs API'sini kullanarak artık ihtiyacınız olmayan çalıştırmaları silmenizi önerir. Diğer kota sınırlarına ulaştıysanız Databricks, günlük stratejinizi sınırın altında kalacak şekilde değiştirmenizi önerir. Bu sınırda bir artışa ihtiyacınız varsa, kullanım örneğinizin kısa bir açıklamasını, önerilen risk azaltma yaklaşımlarının neden çalışmadığını ve istediğiniz yeni sınırı içeren Databricks hesap ekibinize ulaşın.

MLflow izleme API'si

MLflow Takip API'si bir model çalıştırması sırasında parametreleri, ölçümleri, etiketleri ve yapıtları günlüğe kaydeder. İzleme API'si bir MLflow izleme sunucusuyla iletişim kurar. Databricks kullandığınızda, Databricks tarafından barındırılan bir izleme sunucusu verileri günlüğe kaydeder. Barındırılan MLflow izleme sunucusunda Python, Java ve R API'leri vardır.

MLflow, Databricks Runtime ML kümelerine önceden yüklenmiştir. Databricks Runtime kümesinde MLflow'u kullanmak için mlflow kitaplığını yüklemeniz gerekir. Kümeye kitaplık yükleme yönergeleri için bkz. Kümeye kitaplık yükleme. MLflow 3'ü ve en son izleme özelliklerini kullanmak için en son sürüme yükseltmeyi unutmayın (bkz. MLflow 3'ü yükleme).

MLflow çalıştırmalarının kaydedildiği yer

Databricks, deneme verilerinizi hiçbir kurulum gerektirmeden çalışma alanınızda depolayan barındırılan bir MLflow izleme sunucusu sağlar. Gerektiğinde MLflow'ı farklı izleme sunucuları kullanacak şekilde de yapılandırabilirsiniz.

MLflow izleme iki ayar tarafından denetlenilir:

  • İzleme URI'si: Hangi sunucunun kullanılacağını belirler (varsayılan olarak geçerli Databricks çalışma alanıdır)
  • Deneme: Bu sunucuda hangi denemede oturum açıldığını belirler
import mlflow

# By default MLflow logs to the Databricks-hosted workspace tracking server. You can connect to a different server using the tracking URI.
mlflow.set_tracking_uri("databricks://remote-workspace-url")

# Set experiment in the tracking server
mlflow.set_experiment("/Shared/my-experiment")

Etkin deneme ayarlı değilse, çalıştırmalar not defteri denemesine kaydedilir.

MLflow verilerinizin nerede depolandığını denetleme hakkında daha fazla bilgi için bkz. MLflow verilerinizin depolandığı yeri seçme.

Deneme için günlük çalıştırmaları ve modelleri

MLflow, birçok makine öğrenmesi ve derin öğrenme çerçevesinde yazılmış eğitim kodunu otomatik olarak günlüğe kaydedebilir. Bu, MLflow izlemeyi kullanmaya başlamanın en kolay yoludur. örnek not defterine bakın.

Hangi parametrelerin ve ölçümlerin günlüğe kaydedildiği üzerinde daha fazla denetim sahibi olmak veya CSV dosyaları veya çizimleri gibi ek yapıtları günlüğe kaydetmek için MLflow günlük API'sini kullanın. örnek not defterine bakın.

Model geliştirmeyi izlemek için otomatik kaydetmeyi kullanma

Bu örnek not defteri, scikit-learnile otomatik kaydetmenin nasıl kullanılacağını gösterir. Diğer Python kitaplıklarıyla otomatik kaydetme hakkında bilgi içinMLflow otomatik kaydetme belgelerine bakın.

MLflow 3

MLflow 3 için MLflow python not defterini otomatik olarak kaydetme

Dizüstü bilgisayar al

MLflow 2.x

MLflow python not defterini otomatik olarak kaydetme

Dizüstü bilgisayar al

Model geliştirmeyi izlemek için günlük API'sini kullanma

Bu örnek not defteri,Python günlük API'sinin nasıl kullanılacağını gösterir. MLflow ayrıca REST, R ve Java API'lerinesahiptir.

MLflow 3

MLflow 3 için MLflow günlük API'si Python not defteri

Dizüstü bilgisayar al

MLflow 2.x

MLflow loglama API'si Python defteri

Dizüstü bilgisayar al

Çalışma alanı deneyine günlük çalıştırmaları kaydet

Varsayılan olarak, databricks not defterinde bir modeli eğittiğinizde çalıştırmalar not defteri denemesine kaydedilir. Not defteri denemesinde yalnızca bir not defteri içinde başlatılan MLflow çalıştırmaları günlüğe kaydedilebilir.

Herhangi bir not defterinden veya API'lerden başlatılan MLflow çalıştırmaları bir çalışma alanı denemesine kaydedilebilir. Çalışma alanı deneyine çalışma kaydetmek için, not defterinizde veya API çağrınızda aşağıdakine benzer bir kod kullanın:

experiment_name = "/Shared/name_of_experiment/"
mlflow.set_experiment(experiment_name)

Çalışma alanı denemesi oluşturma yönergeleri için bkz. çalışma alanı denemesi oluşturma. Günlüğe kaydedilen çalıştırmaları görüntüleme hakkında bilgi için bakınız Not Defteri Deneyini Görüntüleme ve Çalışma Alanı Deneyini Görüntüleme.

MLflow çalıştırmalarını programatik olarak analiz etme

Aşağıdaki iki DataFrame API'sini kullanarak MLflow çalıştırma verilerine program aracılığıyla erişebilirsiniz:

Bu örnekte, MLflow Python istemcisinin zaman içindeki değerlendirme ölçümlerindeki değişiklikleri görselleştiren, belirli bir kullanıcı tarafından başlatılan çalıştırma sayısını izleyen ve tüm kullanıcılar genelindeki toplam çalıştırma sayısını ölçen bir pano oluşturmak için nasıl kullanılacağı gösterilmektedir:

Model eğitim ölçümleri ve çıkışları neden farklılık gösterebilir?

ML'de kullanılan algoritmaların çoğu, algoritmanın kendi içinde örnekleme veya rastgele başlangıç koşulları gibi rastgele bir öğeye sahiptir. Modeli bu algoritmalardan birini kullanarak eğittiğiniz zaman, çalıştırmayı aynı koşullarla başlatsanız bile sonuçlar her çalıştırmada aynı olmayabilir. Birçok kitaplık, bu stokastik öğelerin ilk koşullarını düzeltmek için bir tohumlama mekanizması sunar. Ancak, tohumlar tarafından kontrol edilmeyen başka çeşitleme kaynakları da olabilir. Bazı algoritmalar verilerin sırasına duyarlıdır ve dağıtılmış ML algoritmaları da verilerin bölümlenmesinden etkilenebilir. Bu varyasyon, model geliştirme sürecinde önemli değildir ve önemli değildir.

Sıralama ve bölümleme farklılıklarının neden olduğu varyasyonu denetlemek için PySpark işlevlerini yeniden bölümleme ve sortWithinPartitions kullanın.

MLflow izleme örnekleri

Aşağıdaki not defterleri, MLflow kullanarak model geliştirmenin nasıl izlenir göstermektedir.