- ID atau nama percubaan
- Jalankan ID
- Parameter dan Nilai
- Metrik dan Nilai
- Tag
- Atribut lain yang dikaitkan dengan larian
Larian boleh ditapis mengikut status, masa mula, masa tamat dan tempoh dengan menggunakan API carian MLflow. Ia menjadikannya lebih mudah untuk menapis melalui banyak larian dan mencari larian khusus yang diminati pengguna.
Fungsi Carian MLflow
Gunakan fungsi mlflow.search_runs() untuk mengakses API carian MLflow. Fungsi ini menerima pelbagai hujah seperti berikut:
- ID atau nama percubaan
- Tapis rentetan atau teks
- Bilangan maksimum larian untuk dikembalikan ditentukan oleh argumen max_results
Varian dipermudahkan bagi klausa SQL (Bahasa Pertanyaan Berstruktur) WHERE ialah rentetan penapis atau teks. Ia boleh digunakan untuk menunjukkan kriteria yang kita mahu mengisih larian.
Sintaks Fungsi MLflow Search_Runs().
ID atau nama sebenar percubaan yang ingin kami cari dalam mesti digantikan dengan 'id_percubaan atau nama_percubaan' dalam contoh berikut. Pembolehubah search_criteria membenarkan memasukkan kriteria carian seperti yang dikehendaki. Kriteria ini mungkin ditentukan oleh metrik, teg, parameter atau ciri tambahan. Sintaks asas fungsi search_runs() adalah seperti berikut:
# Import API carian mlflow untuk menggunakan fungsi search_runs
import mlflow
# Berikan beberapa id atau nama Percubaan (ia adalah pilihan; )
exp_id = 'ID atau NAME percubaan'
# Tentukan kriteria carian untuk larian
rentetan_cari = 'metrik.ketepatan > 0.8 DAN params.learning_rate = '0.01' DAN params.efficiency_rate > '80''
# Lakukan carian
berlari = mlflow. carian_berjalan ( id_percubaan = exp_id , rentetan_penapis = rentetan_cari )
# Paparkan keputusan
cetak ( 'Keputusan Carian:' )
cetak ( berlari )
Jalankan Carian Menggunakan Banyak Kriteria
1. Cari mengikut Nilai Metrik
Larian boleh ditapis mengikut nilai metrik tertentu menggunakan medan metrik dalam API carian MLflow. Koleksi nama metrik yang dipisahkan dengan koma muncul dalam medan metrik. Sebagai contoh, rentetan penapis berikut menempatkan semua larian dengan nilai ketepatan lebih daripada 0.9:
metrik. ketepatan > 0.9
Senarai lengkap metrik yang tersedia untuk kegunaan dalam medan metrik diberikan seperti berikut:
- ketepatan
- auc
- f1
- ketepatan
- ingat balik
- peta
- logloss
- ralat_pengkelasan
- multi_class_logloss
Selain itu, pengguna boleh menapis larian mengikut julat nilai metrik menggunakan medan metrik. Sebagai contoh, rentetan penapis seterusnya menempatkan semua larian yang mempunyai ukuran ketepatan dengan nilai antara 0.4 dan 0.8:
metrik. ketepatan ANTARA 0.4 DAN 0.8
Dalam medan metrik, pengendali DAN dan ATAU menggabungkan metrik untuk mencari larian dengan ketepatan metrik dan nilai f1 melebihi 0.3 dan 0.8:
metrik. ketepatan > 0.3 DAN metrik. f1 > 0.82. Cari mengikut Nilai Parameter
Gunakan medan params dalam API carian MLflow untuk melakukan carian mengikut nilai parameter. Nama dan nilai parameter disenaraikan dalam medan params menggunakan koma. Dalam contoh ini, rentetan penapis yang disebutkan di atas menempatkan semua larian dengan parameter num_boost_round yang mempunyai nilai 100:
params. num_boost_round = '100'Beberapa lagi contoh rentetan carian untuk nilai parameter:
- params.num_boost_round = 900
- params.kadar_pembelajaran ANTARA 0.001 DAN 0.01
- params.num_boost_round=’70’ DAN params.learning_rate=’0.01′
3. Cari mengikut Tag
Berikut ialah contoh carian yang menggunakan teg:
kriteria carian = 'tags.mlflow.source.type = 'kamus''Contoh Nilai Matrik dan Parameter untuk Melaksanakan Fungsi Mlflow.search_runs().
Mari kita lihat contoh menyediakan percubaan MLflow, log berjalan, dan kemudian menggunakan mlflow.search_runs() untuk memulakan carian. Untuk memahami kod sepenuhnya, ikuti langkah berikut:
Langkah 1: Buat Eksperimen MLflow
Kita mulakan dengan menyediakan percubaan MLflow. Ia mengambil percubaan sedia ada jika percubaan sudah wujud. Jika tidak, ia mencipta yang baharu.
Penerangan Kod:
Pustaka MLflow diimport dalam baris pertama kod dan experiment_name ditetapkan kepada 'Percubaan MLflow Pertama Saya' dalam baris seterusnya. Apabila experiment_name dihantar ke fungsi 'mlflow.get_experiment_by_name', fungsi itu mengembalikan 'Tiada' jika percubaan tidak wujud dan objek eksperimen sebaliknya.
Semak kewujudan eksperimen dalam pernyataan bersyarat. Jika percubaan sudah wujud, tetapkan experiment_id. Jika tidak, gunakan 'mlflow.create_experiment' untuk membuat percubaan baharu. ID percubaan dikembalikan oleh fungsi ini. Paparkan ID percubaan pada konsol atau skrin terminal pada penghujung percubaan. Salin kod berikut dalam pad nota dan simpan fail dengan nama yang dikehendaki dan dengan sambungan '.py':
# import Perpustakaan mlflowimport mlflow
# Buat atau ambil percubaan
exp_name = 'Percubaan MLflow Pertama Saya'
# Ambil percubaan mengikut nama menggunakan fungsi mlflow get_experiment_by_name
exp = mlflow. get_experiment_by_name ( exp_name )
# Semak sama ada percubaan itu belum wujud
jika exp ialah tiada :
# Cipta Percubaan baharu dan hantarkan nama percubaan kepada fungsi mlflow.create_experiment
exp_id = mlflow. cipta_percubaan ( exp_name )
# Paparkan mesej kejayaan pada skrin
cetak ( 'Percubaan tidak wujud. Percubaan berjaya dibuat!' )
lain :
# Ambil eksperimen_id percubaan sedia ada
exp_id = exp. id_percubaan
cetak ( 'Eksperimen sudah wujud!' )
# Paparan ID Percubaan
cetak ( 'ID percubaan:' , exp_id )
Sekarang, lancarkan program dalam command prompt atau tetingkap terminal menggunakan pengkompil Python dan taip 'Python' dan kemudian nama fail yang, dalam kes ini, ialah 'MyFirstMlflowExperiment.py'. Apabila percubaan pertama kali dijalankan, ia masih belum wujud. Oleh itu, MLFlow mencipta satu dan mencetak ID percubaan pada skrin konsol:
Jalankan semula kod untuk mengesahkan bahawa ia tidak membuat percubaan baharu dan untuk memaparkan ID eksperimen yang sudah wujud. Tangkapan skrin berikut menunjukkan bahawa percubaan sudah wujud:
Langkah 2: Log Larian dengan Metrik dan Parameter
Sekarang mari cuba log beberapa larian dengan metrik dan parameter untuk percubaan yang baru ditubuhkan. Dalam senario dunia sebenar, kami membangunkan model pembelajaran mesin dan merekodkan maklumat yang berkaitan, seperti metrik dan parameter, pada akhir setiap larian. Di sini, ketepatan digunakan sebagai nilai matrik, dan ia adalah 0.95 dalam kes ini. Nilai parameter untuk pembelajaran dan kadar kecekapan masing-masing ialah 0.01 dan 90. Inilah kodnya:
# Mulakan larian MLflow untuk log metrik dan parameterdengan mlflow. start_run ( id_percubaan = exp_id ) :
# Kod pembelajaran mesin anda di sini (ini hanyalah contoh simulasi)
ketepatan_model = 0.95
kadar_pembelajaran_mesin = 0.01
kadar_kecekapan = 90
# Log metrik dan parameter
mlflow. log_metrik ( 'ketepatan' , ketepatan_model )
mlflow. log_param ( 'kadar_pembelajaran' , kadar_pembelajaran_mesin )
mlflow. log_param ( 'kadar_kecekapan' , kadar_kecekapan )
Hasilnya, apabila kod yang disebutkan di atas dilaksanakan, dilihat di sini. Hasilnya adalah sama seperti sebelumnya:
Langkah 3: Lakukan Carian Menggunakan Mlflow.search_runs()
Akhir sekali, kami menjalankan carian pada larian yang telah dilog menggunakan beberapa parameter dan menunjukkan keputusan pada skrin terminal:
# Tentukan kriteria carian untuk lariandefine_search_criteria = 'metrik.ketepatan > 0.8 DAN params.learning_rate = '0.01' DAN params.efficiency_rate = '90''
# Lakukan carian
berlari = mlflow. carian_berjalan ( id_percubaan = exp_id , rentetan_penapis = define_search_criteria )
# Paparkan keputusan
cetak ( 'Keputusan Carian:' )
cetak ( berlari )
Amaran yang berkaitan dengan alat Git dihasilkan oleh pelaksanaan fungsi search_runs:
Tambahkan beberapa kod di bahagian atas fail Python untuk melumpuhkan amaran ini. Berikut ialah bahagian pendek kod:
import awak
awak . lebih kurang [ 'GIT_PYTHON_REFRESH' ] = 'senyap'
Fungsi 'mlflow.search_runs' berjaya dilaksanakan setelah baris kod ini ditambahkan:
Kesimpulan
Fungsi 'mlflow.search_runs' membolehkan pengguna meneroka dan menilai eksperimen pembelajaran mesin dengan cepat, menganalisis banyak larian dan menentukan variasi atau model hiperparameter optimum yang menghasilkan hasil yang diingini. Ia ialah alat yang berkesan untuk menyelia, merancang dan menganalisis aliran kerja pembelajaran mesin.