MLflow'da Çalıştırma Arama

Mlflow Da Calistirma Arama



MLflow, makine öğrenimi deneylerini izlemek ve yönetmek için kapsamlı bir platform sunar. Çalıştırmaları arama yeteneğine sahip olmak, MLflow'un temel özelliklerinden biridir. Bu, geliştirilen deneyleri tanımlamayı ve gerektiğinde bilgiyi bulmayı kolaylaştıracak şekilde düzenlemeyi mümkün kılar. Aşağıdakileri içerebilecek bir dizi farklı kriteri kullanarak MLflow arama API'sini kullanarak çalıştırmaları arayabiliriz:
  • 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,8

2. 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 aktar

iç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ın

ile 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ın

define_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 ml akışı

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.