ML ve derin öğrenme eğitim çalıştırmalarını izleme
MLflow izleme bileşeni, makine öğrenmesi veya derin öğrenme modelini eğitmeyle ilgili kaynak özellikleri, parametreleri, ölçümleri, etiketleri ve yapıtları günlüğe kaydetmenize olanak tanır. MLflow ile çalışmaya başlamak için MLflow hızlı başlangıç öğreticilerinden birini deneyin.
Denemeler ve çalıştırmalarla MLflow izleme
MLflow izleme, denemeler ve çalıştırmalar olarak iki kavramı temel alır:
Not
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 kotası başına çalıştırmalara isabet ederseniz Databricks, Python'da silme çalıştırmaları API'sini kullanmanıza gerek 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 tutmak için ayarlamanızı ö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 denemesi, MLflow çalıştırmaları için birincil kuruluş birimi ve erişim denetimidir; tüm MLflow çalıştırmaları bir denemeye aittir. Denemeler, çalıştırmaları görselleştirmenize, aramanıza ve karşılaştırmanıza ve diğer araçlarda analiz için çalıştırma yapıtlarını ve meta verileri indirmenize olanak tanır.
MLflow çalıştırması , model kodunun tek bir yürütülmesine karşılık gelir.
MLflow İzleme API'sinde bir model çalıştırmasından parametreler, ölçümler, etiketler ve yapıtlar günlüğe kaydedilir. İ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.
Not
MLflow, Databricks Runtime ML kümelerine yüklenir. Databricks Runtime kümesinde MLflow kullanmak için kitaplığı yüklemeniz mlflow
gerekir. Kümeye kitaplık yükleme yönergeleri için bkz . Kümeye kitaplık yükleme. MLflow için yüklenecek belirli paketler şunlardır:
- Python için Kitaplık Kaynağı PyPI'sini seçin ve Paket alanına girin
mlflow
. - R için Kitaplık Kaynağı CRAN'sini seçin ve Paket alanına girin
mlflow
. - Scala için şu iki paketi yükleyin:
- Kitaplık Kaynağı Maven'ı seçin ve Koordinatlar alanına girin
org.mlflow:mlflow-client:1.11.0
. - Kitaplık Kaynağı PyPI'sini seçin ve Paket alanına girin
mlflow
.
- Kitaplık Kaynağı Maven'ı seçin ve Koordinatlar alanına girin
MLflow çalıştırmalarının günlüğe kaydedildiği yer
Tüm MLflow çalıştırmaları etkin denemede günlüğe kaydedilir ve aşağıdaki yollardan herhangi biri kullanılarak ayarlanabilir:
- mlflow.set_experiment() komutunu kullanın.
experiment_id
mlflow.start_run() komutunda parametresini kullanın.- MLFLOW_EXPERIMENT_NAME veya MLFLOW_EXPERIMENT_ID MLflow ortam değişkenlerinden birini ayarlayın.
Etkin deneme ayarlı değilse, çalıştırmalar not defteri denemesine kaydedilir.
Deneme sonuçlarınızı, denemenizi çalıştırdığınız çalışma alanı dışında bir çalışma alanında uzaktan barındırılan bir MLflow İzleme sunucusuna günlüğe kaydetmek için, ile mlflow.set_tracking_uri()
uzak çalışma alanına başvurmak için izleme URI'sini ayarlayın ve kullanarak mlflow.set_experiment()
uzak çalışma alanında denemenizin yolunu ayarlayın.
mlflow.set_tracking_uri(<uri-of-remote-workspace>)
mlflow.set_experiment("path to experiment in remote workspace")
Denemeleri yerel olarak çalıştırıyorsanız ve deneme sonuçlarını Databricks MLflow İzleme sunucusuna kaydetmek istiyorsanız, Databricks çalışma alanı örneğinizi (DATABRICKS_HOST
) ve Databricks kişisel erişim belirtecinizi (DATABRICKS_TOKEN
) sağlayın. Ardından, ile çalışma alanına mlflow.set_tracking_uri()
başvurmak için izleme URI'sini ayarlayabilir ve kullanarak mlflow.set_experiment()
denemenizin yolunu ayarlayabilirsiniz. ve DATABRICKS_TOKEN
ortam değişkenleri için değerlerin nerede bulunacağı hakkında ayrıntılı bilgi için bkz. Azure Databricks kişisel erişim belirteci kimlik doğrulamasını DATABRICKS_HOST
gerçekleştirme.
Aşağıdaki kod örneğinde bu değerlerin ayarlanması gösterilmektedir:
os.environ["DATABRICKS_HOST"] = "https://dbc-1234567890123456.cloud.databricks.com" # set to your server URI
os.environ["DATABRICKS_TOKEN"] = "dapixxxxxxxxxxxxx"
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/your-experiment")
Günlüğe kaydetme örneği not defteri
Bu not defteri, çalıştırmaların bir not defteri denemesinde ve çalışma alanı denemesinde nasıl günlüğe kaydedileceklerini gösterir. 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. Günlüğe kaydedilen çalıştırmaları görüntüleme hakkında bilgi için bkz . Not defteri denemesini görüntüleme ve Çalışma alanı denemesini görüntüleme.
Günlük MLflow çalıştırmaları not defteri
Çalıştırmaları başlatmak ve çalıştırma verilerini kaydetmek için MLflow Python, Java veya Scala ve R API'lerini kullanabilirsiniz. Ayrıntılar için bkz . MLflow örnek not defterleri.
Azure Databricks dışından MLflow izleme sunucusuna erişme
Ayrıca, örneğin MLflow CLI kullanarak Azure Databricks dışından izleme sunucusuna yazabilir ve bu sunucudan okuyabilirsiniz. Bkz. Azure Databricks dışından MLflow izleme sunucusuna erişme.
MLflow çalıştırmalarını program aracılığıyla analiz etme
Aşağıdaki iki DataFrame API'sini kullanarak MLflow çalıştırma verilerine program aracılığıyla erişebilirsiniz:
- MLflow Python istemcisi search_runs API bir pandas DataFrame döndürür.
- MLflow denemesi veri kaynağı bir Apache Spark DataFrame döndürür.
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 genellikle 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, çeşitli model türlerini eğitmeyi ve MLflow'da eğitim verilerini izlemeyi ve izleme verilerini Delta Lake'te depolamayı gösterir.