Carian Berjalan dalam MLflow

Carian Berjalan Dalam Mlflow



Untuk menjejak dan mengurus percubaan pembelajaran mesin, MLflow menawarkan platform yang luas. Mempunyai keupayaan untuk menjalankan carian adalah salah satu ciri utama MLflow. Ini memungkinkan untuk mengenal pasti eksperimen yang dibangunkan dan mengaturnya dengan cara yang memudahkan untuk mencari maklumat apabila diperlukan. Kami mungkin menjalankan carian menggunakan API carian MLflow menggunakan beberapa kriteria berbeza yang mungkin termasuk yang berikut:
  • 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.8

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

import 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 parameter

dengan 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 larian

define_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 mlflow

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.