- 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,82. 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 mlflowimpor 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 parameterdengan 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 prosestentukan_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 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.