- Deneme kimliği veya adı
- Çalıştırma kimliği
- Parametreler ve Değerler
- Metrikler ve Değerler
- Etiketler
- Çalıştırmalarla ilişkili diğer özellikler
Çalıştırmalar, MLflow arama API'si kullanılarak duruma, başlangıç zamanına, bitiş zamanına ve süreye göre filtrelenebilir. Birçok çalıştırmayı filtrelemeyi ve kullanıcıların ilgilendiği belirli çalıştırmaları bulmayı kolaylaştırır.
MLflow Arama İşlevi
MLflow arama API'sine erişmek için mlflow.search_runs() işlevini kullanın. Bu işlev aşağıdaki gibi çeşitli bağımsız değişkenleri kabul eder:
- Deneme kimliği veya adı
- Dize veya metni filtrele
- Döndürülecek maksimum çalıştırma sayısı max_results argümanı tarafından belirtilir
SQL (Yapılandırılmış Sorgu Dili) WHERE yan tümcesinin basitleştirilmiş bir çeşidi, filtre dizesi veya metnidir. Çalıştırmaları sıralamak istediğimiz kriterleri belirtmek için kullanılabilir.
MLflow Search_Runs() İşlevinin sözdizimi
Aşağıdaki örnekte 'deneme_kimliği veya deney_adı' yerine aramak istediğimiz deneyin gerçek kimliği veya adı değiştirilmelidir. Search_criteria değişkeni, arama kriterlerinin istenildiği gibi girilmesine olanak tanır. Bu kriterler metrikler, etiketler, parametreler veya ek özellikler tarafından belirlenebilir. search_runs() işlevinin temel sözdizimi aşağıdaki gibidir:
# search_runs işlevini kullanmak için mlflow arama API'sini içe aktarın
içe aktarmak ml akışı
# Bir Deney kimliği veya adı girin (isteğe bağlıdır; )
exp_id = 'Deneme Kimliği veya ADI'
# Çalıştırmalar için arama kriterlerini tanımlayın
Arama dizisi = 'metrics.accuracy > 0,8 VE params.learning_rate = '0,01' VE params.efficiency_rate > '80''
# Aramayı gerçekleştir
koşar = mlflow. arama_çalışmaları ( deneme_kimlikleri = exp_id , filtre_stringi = Arama dizisi )
# Sonuçları göster
Yazdır ( 'Arama Sonuçları:' )
Yazdır ( koşar )
Çok Sayıda Kriter Kullanarak Arama Yapın
1. Metrik Değere Göre Arama
Çalıştırmalar, MLflow arama API'sindeki ölçümler alanı kullanılarak belirli ölçümlerin değerlerine göre filtrelenebilir. Metrik alanında virgülle ayrılmış bir metrik adları koleksiyonu görünür. Örneğin, aşağıdaki filtre dizesi, doğruluk değeri 0,9'dan büyük olan tüm çalıştırmaları bulur:
Metrikler. kesinlik > 0,9
Metrik alanında kullanılabilecek metriklerin tam listesi aşağıda verilmiştir:
- kesinlik
- auc
- f1
- kesinlik
- hatırlamak
- harita
- kayıp
- sınıflandırma hatası
- multi_class_logloss
Ek olarak kullanıcılar, metrik alanını kullanarak ölçümleri bir metriğin değer aralığına göre filtreleyebilir. Örneğin, bir sonraki filtre dizesi, 0,4 ile 0,8 arasında bir değere sahip doğruluk ölçüsüne sahip tüm çalıştırmaları bulur:
Metrikler. kesinlik ARASINDA 0,4 VE 0,8
Metrik alanında, AND ve OR operatörleri, metrik doğruluğuna ve f1 değerleri 0,3 ve 0,8'in üzerinde olan çalıştırmaları bulmak için metrikleri birleştirir:
Metrikler. kesinlik > 0,3 VE metrikleri. f1 > 0,82. Parametre Değerine Göre Arama
Bir parametre değerine göre arama yapmak için MLflow arama API'sindeki params alanını kullanın. Parametre adları ve değerleri params alanında virgül kullanılarak listelenir. Bu örnekte, yukarıda bahsedilen filtre dizesi, 100 değerine sahip num_boost_round parametresine sahip tüm çalıştırmaları bulur:
parametreler. num_boost_round = '100'Parametre değerleri için arama dizelerine birkaç örnek daha:
- params.num_boost_round = 900
- params.learning_rate 0,001 İLE 0,01 ARASINDA
- params.num_boost_round='70' VE params.learning_rate='0,01′
3. Etiketlere Göre Ara
Aşağıda etiketleri kullanan bir arama örneği verilmiştir:
arama kriteri = 'tags.mlflow.source.type = 'sözlük''Mlflow.search_runs() İşlevini Gerçekleştirmek için Matris ve Parametre Değerleri Örneği
Bir MLflow denemesi oluşturma, çalıştırmaları günlüğe kaydetme ve ardından bir arama başlatmak için mlflow.search_runs() işlevini kullanma örneğini inceleyelim. Kodu tamamen anlamak için şu adımları izleyin:
1. Adım: Bir MLflow Denemesi Oluşturun
Bir MLflow denemesi oluşturarak başlıyoruz. Deneme zaten mevcutsa mevcut denemeyi getirir. Değilse yenisini yaratır.
Kod Açıklaması:
Kodun ilk satırında MLflow kitaplığı içe aktarılır ve bir sonraki satırda deney_adı 'İlk MLflow Denemem' olarak ayarlanır. Experiment_name, 'mlflow.get_experiment_by_name' işlevine iletildiğinde, bu işlev, deneme mevcut değilse 'Yok' değerini, aksi takdirde denemenin bir nesnesini döndürür.
Koşullu ifadede deneyin varlığını kontrol edin. Deneme zaten mevcutsa deney_id'sini ayarlayın. Aksi takdirde yeni bir deneme oluşturmak için “mlflow.create_experiment”i kullanın. Deneme kimliği bu işlev tarafından döndürülür. Deneyin sonunda deney kimliğini konsolda veya terminal ekranında görüntüleyin. Aşağıdaki kodu not defterine kopyalayıp dosyayı istediğiniz isimde ve “.py” uzantılı olarak kaydedin:
# mlflow Kitaplığını içe aktariçe aktarmak ml akışı
# Denemeyi oluşturun veya getirin
deneyim_adı = 'İlk MLflow Deneyimim'
# mlflow işlevini kullanarak denemeyi ada göre getirin get_experiment_by_name
tecrübe = mlflow. get_experiment_by_name ( deneyim_adı )
# Denemenin halihazırda mevcut olup olmadığını kontrol edin
eğer tecrübe dır-dir Hiçbiri :
# Yeni Deneme oluşturun ve deneme adını mlflow.create_experiment işlevine aktarın
exp_id = mlflow. create_experiment ( deneyim_adı )
# Başarı mesajını ekranda göster
Yazdır ( 'Deneme mevcut değil. Deneme başarıyla oluşturuldu!' )
başka :
# Mevcut denemenin deney_id'sini getir
exp_id = tecrübe. deneme_kimliği
Yazdır ( 'Deney zaten mevcut!' )
# Deneme Kimliğini Görüntüle
Yazdır ( 'Deneme Kimliği:' , exp_id )
Şimdi, Python derleyicisini kullanarak programı komut isteminde veya terminal penceresinde başlatın ve “Python” yazın ve ardından bu durumda “MyFirstMlflowExperiment.py” olan dosya adını yazın. Deneme ilk çalıştırıldığında henüz mevcut değildir. Böylece MLFlow bir tane oluşturur ve deney kimliğini konsol ekranına yazdırır:
Yeni denemeler oluşturmadığını doğrulamak ve mevcut denemelerin kimliğini görüntülemek için kodu yeniden çalıştırın. Aşağıdaki ekran görüntüsü denemenin zaten mevcut olduğunu göstermektedir:
Adım 2: Çalıştırmaları Metrikler ve Parametrelerle Günlüğe Kaydedin
Şimdi yeni oluşturulan deney için metrikler ve parametrelerle bazı çalıştırmaları günlüğe kaydetmeye çalışalım. Gerçek dünya senaryosunda, makine öğrenimi modellerini geliştiriyoruz ve her çalıştırmanın sonunda metrikler ve parametreler gibi ilgili bilgileri kaydediyoruz. Burada doğruluk matris değeri olarak kullanılır ve bu durumda 0,95 olur. Öğrenme ve verimlilik oranına ilişkin parametre değerleri sırasıyla 0,01 ve 90'dır. İşte kod:
# Ölçümleri ve parametreleri günlüğe kaydetmek için bir MLflow çalıştırması başlatınile mlflow. koşmaya başla ( deneme_kimliği = exp_id ) :
# Makine öğrenimi kodunuz burada (bu yalnızca simüle edilmiş bir örnektir)
model_accuracy = 0,95
machine_learning_rate = 0,01
verimlilik oranı = 90
# Günlük ölçümleri ve parametreleri
mlflow. log_metric ( 'kesinlik' , model_accuracy )
mlflow. log_param ( 'öğrenme oranı' , machine_learning_rate )
mlflow. log_param ( 'verimlilik_oranı' , verimlilik oranı )
Yukarıda belirtilen kod çalıştırıldığında sonuç burada görülür. Sonuç öncekiyle aynı:
3. Adım: Mlflow.search_runs() Kullanarak Arama Yapın
Son olarak, birkaç parametre kullanarak günlüğe kaydedilen çalıştırmalar üzerinde bir arama yapıyoruz ve sonuçları terminal ekranında gösteriyoruz:
# Çalıştırmalar için arama kriterlerini tanımlayındefine_search_criteria = 'metrics.accuracy > 0,8 VE params.learning_rate = '0,01' VE params.efficiency_rate = '90''
# Aramayı gerçekleştir
koşar = mlflow. arama_çalışmaları ( deneme_kimlikleri = exp_id , filtre_stringi = define_search_criteria )
# Sonuçları göster
Yazdır ( 'Arama Sonuçları:' )
Yazdır ( koşar )
Git aracıyla ilgili bir uyarı, search_runs işlevinin yürütülmesiyle üretilir:
Bu uyarıyı devre dışı bırakmak için Python dosyasının üstüne bir kod ekleyin. İşte kodun kısa bölümü:
içe aktarmak Sen
Sen . yaklaşık olarak [ 'GIT_PYTHON_REFRESH' ] = 'sessizlik'
Aşağıdaki kod satırları eklendiğinde “mlflow.search_runs” işlevi başarıyla yürütülür:
Çözüm
'mlflow.search_runs' işlevi, kullanıcıların makine öğrenimi deneylerini hızlı bir şekilde keşfetmesine ve değerlendirmesine, birçok çalıştırmayı analiz etmesine ve istenen sonuçlara yol açan optimum hiperparametre varyasyonlarını veya modellerini belirlemesine olanak tanır. Makine öğrenimi iş akışını denetlemek, planlamak ve analiz etmek için etkili bir araçtır.