Pencarian Berjalan di MLflow

Pencarian Berjalan Di Mlflow



Untuk melacak dan mengelola eksperimen pembelajaran mesin, MLflow menawarkan platform yang luas. Memiliki kemampuan untuk mencari proses adalah salah satu fitur utama MLflow. Hal ini memungkinkan untuk mengidentifikasi eksperimen yang dikembangkan dan mengaturnya sedemikian rupa sehingga memudahkan untuk menemukan informasi kapan pun diperlukan. Kami dapat mencari proses menggunakan API pencarian MLflow menggunakan sejumlah kriteria berbeda yang mungkin mencakup hal berikut:
  • ID atau nama eksperimen
  • Jalankan ID
  • Parameter dan Nilai
  • Metrik dan Nilai
  • Tag
  • Atribut lain yang terkait dengan proses

Proses dapat difilter berdasarkan status, waktu mulai, waktu selesai, dan durasi dengan menggunakan API pencarian MLflow. Ini mempermudah untuk memfilter banyak proses dan menemukan proses tertentu yang diminati pengguna.

Fungsi Pencarian MLflow

Gunakan fungsi mlflow.search_runs() untuk mengakses API pencarian MLflow. Fungsi ini menerima berbagai argumen seperti berikut:







  • ID atau nama eksperimen
  • Filter string atau teks
  • Jumlah maksimum proses yang akan dikembalikan ditentukan oleh argumen max_results

Varian sederhana dari klausa SQL (Structured Query Language) WHERE adalah string filter atau teks. Ini dapat digunakan untuk menunjukkan kriteria yang ingin kita gunakan untuk mengurutkan proses.



Sintaks Fungsi MLflow Search_Runs()

ID atau nama eksperimen sebenarnya yang ingin kita telusuri harus diganti dengan “id_eksperimen atau nama_eksperimen” pada contoh berikut. Variabel search_criteria memungkinkan input kriteria pencarian sesuai keinginan. Kriteria ini dapat ditentukan oleh metrik, tag, parameter, atau karakteristik tambahan. Sintaks dasar fungsi search_runs() adalah sebagai berikut:



# Impor API pencarian mlflow untuk menggunakan fungsi search_runs

impor aliran ml

# Berikan beberapa id atau nama Eksperimen (opsional; )

exp_id = 'ID atau NAMA Eksperimen'

# Tentukan kriteria pencarian untuk proses

pencarian_string = 'metrik.akurasi > 0,8 DAN params.learning_rate = '0,01' DAN params.efficiency_rate > '80''

# Lakukan pencarian

berjalan = aliran ml. pencarian_berjalan ( eksperimen_id = exp_id , filter_string = pencarian_string )

# Tampilkan hasilnya

mencetak ( 'Hasil Pencarian:' )

mencetak ( berjalan )

Jalankan Pencarian Menggunakan Banyak Kriteria

1. Cari berdasarkan Nilai Metrik

Proses dapat difilter berdasarkan nilai metrik tertentu menggunakan bidang metrik di API pencarian MLflow. Kumpulan nama metrik yang dipisahkan koma muncul di bidang metrik. Misalnya, string filter berikut menemukan semua proses dengan nilai akurasi lebih besar dari 0,9:





metrik. ketepatan > 0,9

Daftar lengkap metrik yang tersedia untuk digunakan di bidang metrik diberikan sebagai berikut:

  • ketepatan
  • auc
  • f1
  • presisi
  • mengingat
  • peta
  • logloss
  • klasifikasi_kesalahan
  • multi_class_logloss

Selain itu, pengguna dapat memfilter proses berdasarkan rentang nilai metrik menggunakan bidang metrik. Misalnya, string filter berikutnya menempatkan semua proses yang memiliki ukuran akurasi dengan nilai antara 0,4 dan 0,8:



metrik. ketepatan DI ANTARA 0,4 DAN 0,8

Di bidang metrik, operator AND dan OR menggabungkan metrik untuk menemukan proses dengan akurasi metrik dan nilai f1 di atas 0,3 dan 0,8:

metrik. ketepatan > 0,3 DAN metrik. f1 > 0,8

2. Cari berdasarkan Nilai Parameter

Manfaatkan bidang params di API pencarian MLflow untuk melakukan pencarian berdasarkan nilai parameter. Nama dan nilai parameter dicantumkan di kolom params menggunakan koma. Dalam contoh ini, string filter yang disebutkan di atas menempatkan semua proses dengan parameter num_boost_round yang memiliki nilai 100:

param. angka_boost_round = '100'

Beberapa contoh string pencarian untuk nilai parameter:

  • params.num_boost_round = 900
  • params.learning_rate ANTARA 0,001 DAN 0,01
  • params.num_boost_round='70' DAN params.learning_rate='0.01′

3. Cari berdasarkan Tag

Berikut adalah contoh pencarian yang menggunakan tag:

kriteria pencarian = 'tags.mlflow.source.type = 'kamus''

Contoh Nilai Matrik dan Parameter untuk Menjalankan Fungsi Mlflow.search_runs()

Mari kita lihat contoh menyiapkan eksperimen MLflow, proses logging, dan kemudian menggunakan mlflow.search_runs() untuk memulai penelusuran. Untuk memahami kode sepenuhnya, ikuti langkah-langkah berikut:

Langkah 1: Buat Eksperimen MLflow

Kami mulai dengan menyiapkan eksperimen MLflow. Ini mengambil eksperimen yang ada jika eksperimen tersebut sudah ada. Jika tidak, maka akan tercipta yang baru.

Penjelasan Kode:

Pustaka MLflow diimpor di baris pertama kode, dan nama_eksperimen disetel ke “Eksperimen MLflow Pertama Saya” di baris berikutnya. Saat nama_eksperimen diteruskan ke fungsi “mlflow.get_experiment_by_name”, fungsi tersebut akan mengembalikan “Tidak Ada” jika eksperimen tidak ada dan objek eksperimen sebaliknya.

Periksa keberadaan eksperimen dalam pernyataan kondisional. Jika eksperimen sudah ada, setel eksperimen_id. Jika tidak, gunakan “mlflow.create_experiment” untuk membuat eksperimen baru. ID eksperimen dikembalikan oleh fungsi ini. Tampilkan ID eksperimen di layar konsol atau terminal di akhir eksperimen. Salin kode berikut di notepad dan simpan file dengan nama yang diinginkan dan dengan ekstensi “.py”:

# impor Perpustakaan mlflow

impor aliran ml

# Buat atau ambil eksperimen

nama_exp = 'Eksperimen MLflow Pertama Saya'

# Ambil eksperimen berdasarkan nama menggunakan fungsi mlflow get_experiment_by_name

pengalaman = aliran ml. get_experiment_by_name ( nama_exp )

# Periksa apakah eksperimen belum ada

jika pengalaman adalah Tidak ada :

# Buat Eksperimen baru dan teruskan nama eksperimen ke fungsi mlflow.create_experiment

exp_id = aliran ml. buat_eksperimen ( nama_exp )

# Tampilkan pesan sukses di layar

mencetak ( 'Eksperimen tidak ada. Eksperimen berhasil dibuat!' )

kalau tidak :

# Ambil eksperimen_id dari eksperimen yang ada

exp_id = pengalaman. eksperimen_id

mencetak ( 'Eksperimen sudah ada!' )

# Tampilkan ID Eksperimen

mencetak ( 'ID Eksperimen:' , exp_id )

Sekarang, luncurkan program di command prompt atau jendela terminal menggunakan kompiler Python dan ketik “Python” dan kemudian nama file yang, dalam hal ini, adalah “MyFirstMlflowExperiment.py”. Saat eksperimen pertama kali dijalankan, eksperimen tersebut belum ada. Jadi, MLFlow membuatnya dan mencetak ID eksperimen di layar konsol:

Jalankan kembali kode untuk memverifikasi bahwa kode tersebut tidak membuat eksperimen baru dan untuk menampilkan ID eksperimen yang sudah ada. Tangkapan layar berikut menunjukkan bahwa eksperimen sudah ada:

Langkah 2: Catat Proses dengan Metrik dan Parameter

Sekarang mari kita coba mencatat beberapa proses dengan metrik dan parameter untuk eksperimen yang baru saja dilakukan. Dalam skenario dunia nyata, kami mengembangkan model pembelajaran mesin dan mencatat informasi yang relevan, seperti metrik dan parameter, di akhir setiap proses. Di sini, akurasi digunakan sebagai nilai matriks, dan dalam kasus ini adalah 0,95. Nilai parameter pembelajaran dan tingkat efisiensi masing-masing sebesar 0,01 dan 90. Ini kodenya:

# Mulai menjalankan MLflow untuk mencatat metrik dan parameter

dengan aliran ml. mulai_jalankan ( eksperimen_id = exp_id ) :

# Kode pembelajaran mesin Anda di sini (ini hanyalah contoh simulasi)

akurasi_model = 0,95

kecepatan_pembelajaran_mesin = 0,01

tingkat_efisiensi = 90

# Catat metrik dan parameter

aliran ml. log_metrik ( 'ketepatan' , akurasi_model )

aliran ml. log_param ( 'kecepatan_belajar' , kecepatan_pembelajaran_mesin )

aliran ml. log_param ( 'tingkat_efisiensi' , tingkat_efisiensi )

Hasilnya, ketika kode di atas dijalankan, terlihat di sini. Hasilnya sama seperti sebelumnya:

Langkah 3: Lakukan Pencarian Menggunakan Mlflow.search_runs()

Terakhir, kami menjalankan pencarian pada proses yang telah dicatat menggunakan beberapa parameter dan menampilkan hasilnya di layar terminal:

# Tentukan kriteria pencarian untuk proses

tentukan_kriteria_penelusuran = 'metrik.akurasi > 0,8 DAN params.learning_rate = '0,01' DAN params.efficiency_rate = '90''

# Lakukan pencarian

berjalan = aliran ml. pencarian_berjalan ( eksperimen_id = exp_id , filter_string = tentukan_kriteria_penelusuran )

# Tampilkan hasilnya

mencetak ( 'Hasil Pencarian:' )

mencetak ( berjalan )

Peringatan yang berkaitan dengan alat Git dihasilkan oleh eksekusi fungsi search_runs:


Tambahkan beberapa kode di bagian atas file Python untuk menonaktifkan peringatan ini. Berikut ini bagian singkat dari kodenya:

impor aliran ml

impor Anda

Anda . sekitar [ 'GIT_PYTHON_REFRESH' ] = 'diam'

Fungsi “mlflow.search_runs” berhasil dijalankan setelah baris kode berikut ditambahkan:

Kesimpulan

Fungsi “mlflow.search_runs” memungkinkan pengguna dengan cepat menjelajahi dan mengevaluasi eksperimen pembelajaran mesin, menganalisis banyak proses, dan menentukan variasi atau model hyperparameter optimal yang menghasilkan hasil yang diinginkan. Ini adalah alat yang efektif untuk mengawasi, merencanakan, dan menganalisis alur kerja pembelajaran mesin.