- ID-ul sau numele experimentului
- Run ID
- Parametri și valori
- Metrici și valori
- Etichete
- Alte atribute care sunt asociate cu rulările
Execuțiile pot fi filtrate după stare, ora de începere, ora de încheiere și durată cu ajutorul API-ului de căutare MLflow. Facilitează filtrarea mai multor rulări și găsirea unor rulări specifice de care sunt interesați utilizatorii.
Funcția de căutare MLflow
Utilizați funcția mlflow.search_runs() pentru a accesa API-ul de căutare MLflow. Această funcție acceptă o varietate de argumente precum următoarele:
- ID-ul sau numele experimentului
- Filtrați șir sau text
- Numărul maxim de rulări de returnat este specificat de argumentul max_results
O variantă simplificată a clauzei SQL (Structured Query Language) WHERE este șirul de filtru sau textul. Poate fi folosit pentru a indica criteriile după care dorim să sortăm rulările.
Sintaxa funcției MLflow Search_Runs()
ID-ul sau numele real al experimentului în care dorim să căutăm trebuie să fie înlocuit cu „experiment_id sau experiment_name” în exemplul următor. Variabila search_criteria permite introducerea criteriilor de căutare după cum se dorește. Aceste criterii pot fi determinate de valori, etichete, parametri sau caracteristici suplimentare. Sintaxa de bază a funcției search_runs() este următoarea:
# Importați API-ul de căutare mlflow pentru a utiliza funcția search_runs
import mlflow
# Furnizați un ID sau un nume de experiment (este opțional; )
exp_id = „ID experiment sau NAME”
# Definiți criteriile de căutare pentru rulări
șir_căutare = „metrics.accuracy > 0,8 AND params.learning_rate = „0,01” AND params.efficiency_rate > „80””
# Efectuați căutarea
aleargă = mlflow. search_runs ( experiment_ids = exp_id , șir_filtru = șir_căutare )
# Afișează rezultatele
imprimare ( 'Rezultatele cautarii:' )
imprimare ( aleargă )
Rulați o căutare folosind numeroase criterii
1. Căutați după valoarea valorii
Execuțiile pot fi filtrate după valorile anumitor valori folosind câmpul pentru valori din API-ul de căutare MLflow. În câmpul pentru valori apare o colecție de nume de valori separate prin virgule. De exemplu, următorul șir de filtru localizează toate rulările cu o valoare de precizie mai mare de 0,9:
metrici. precizie > 0,9
Lista completă a valorilor disponibile pentru utilizare în câmpul pentru valori este dată după cum urmează:
- precizie
- auc
- f1
- precizie
- reamintire
- Hartă
- logloss
- eroare_clasificare
- multi_clasă_logloss
În plus, utilizatorii pot filtra rulările după intervalul de valori al unei valori utilizând câmpul pentru valori. De exemplu, următorul șir de filtru localizează toate rulările care au o măsură de precizie cu o valoare între 0,4 și 0,8:
metrici. precizie ÎNTRE 0,4 ȘI 0,8
În câmpul metrics, operatorii AND și OR combină valorile pentru a găsi execuțiile cu acuratețea metricilor și valori f1 peste 0,3 și 0,8:
metrici. precizie > 0,3 ȘI metrici. f1 > 0,82. Căutați după valoarea parametrului
Folosiți câmpul params din API-ul de căutare MLflow pentru a efectua o căutare după valoarea unui parametru. Numele și valorile parametrilor sunt listate în câmpul de parametri folosind virgule. În acest exemplu, șirul de filtru menționat mai sus localizează toate rulările cu parametrul num_boost_round care au valoarea 100:
parametrii. num_boost_round = '100'Mai multe exemple de șiruri de căutare pentru valorile parametrilor:
- params.num_boost_round = 900
- params.learning_rate INTRE 0,001 SI 0,01
- params.num_boost_round=’70’ ȘI params.learning_rate=’0,01′
3. Căutați după etichete
Iată un exemplu de căutare care utilizează etichete:
criteriu de cautare = „tags.mlflow.source.type = „dicționar””Exemplu de valori matrice și parametri pentru a efectua funcția Mlflow.search_runs()
Să lucrăm printr-un exemplu de configurare a unui experiment MLflow, înregistrarea rulărilor și apoi utilizarea mlflow.search_runs() pentru a iniția o căutare. Pentru a înțelege complet codul, urmați acești pași:
Pasul 1: creați un experiment MLflow
Începem prin a configura un experiment MLflow. Preia experimentul existent dacă experimentul există deja. Dacă nu, se creează unul nou.
Explicația codului:
Biblioteca MLflow este importată în prima linie a codului, iar experiment_name este setat la „Primul meu experiment MLflow” în rândul următor. Când experiment_name este transmis funcției „mlflow.get_experiment_by_name”, acea funcție returnează „Niciunul” dacă experimentul nu există și un obiect al experimentului în caz contrar.
Verificați existența experimentului în declarația condiționată. Dacă experimentul există deja, setați experiment_id. În caz contrar, utilizați „mlflow.create_experiment” pentru a crea un nou experiment. ID-ul experimentului este returnat de această funcție. Afișați ID-ul experimentului pe consolă sau pe ecranul terminalului la sfârșitul experimentului. Copiați următorul cod în bloc-notes și salvați fișierul cu numele dorit și cu extensia „.py”:
# import biblioteca mlflowimport mlflow
# Creați sau preluați experimentul
exp_name = „Primul meu experiment MLflow”
# Preluați experimentul după nume folosind funcția mlflow get_experiment_by_name
exp = mlflow. obține_experimentul_după_nume ( exp_name )
# Verificați dacă experimentul nu există deja
dacă exp este Nici unul :
# Creați un nou experiment și transmiteți numele experimentului funcției mlflow.create_experiment
exp_id = mlflow. create_experiment ( exp_name )
# Afișează mesajul de succes pe ecran
imprimare ( 'Experimentul nu există. Experimentul a fost creat cu succes!' )
altfel :
# Preluați experiment_id-ul experimentului existent
exp_id = exp. experiment_id
imprimare ( „Experimentul există deja!” )
# Afișează ID-ul experimentului
imprimare ( „ID experiment:” , exp_id )
Acum, lansați programul în promptul de comandă sau în fereastra terminalului folosind compilatorul Python și tastați „Python” și apoi numele fișierului care, în acest caz, este „MyFirstMlflowExperiment.py”. Când experimentul este executat pentru prima dată, acesta nu există încă. Astfel, MLFlow creează unul și tipărește ID-ul experimentului pe ecranul consolei:
Reluați codul pentru a verifica dacă nu creează noi experimente și pentru a afișa ID-ul celor care există deja. Următoarea captură de ecran arată că experimentul există deja:
Pasul 2: Înregistrați rulările cu metrici și parametri
Să încercăm acum să înregistrăm câteva rulări cu valorile și parametrii pentru experimentul recent stabilit. Într-un scenariu real, dezvoltăm modelele de învățare automată și înregistrăm informațiile relevante, cum ar fi metrici și parametri, la sfârșitul fiecărei rulări. Aici, acuratețea este folosită ca valoare matriceală și este de 0,95 în acest caz. Valorile parametrilor pentru învățare și rata de eficiență sunt 0,01 și, respectiv, 90. Iată codul:
# Începeți o rulare MLflow pentru a înregistra valorile și parametriicu mlflow. start_run ( experiment_id = exp_id ) :
# Codul dvs. de învățare automată aici (acesta este doar un exemplu simulat)
acuratețea_modelului = 0,95
rata_de_învățare_mașină = 0,01
rata_eficienței = 90
# Înregistrați valorile și parametrii
mlflow. log_metric ( 'precizie' , acuratețea_modelului )
mlflow. log_param ( 'rata_de_învățare' , rata_de_învățare_mașină )
mlflow. log_param ( „rată_eficiență” , rata_eficienței )
Rezultatul, atunci când codul menționat mai sus este executat, se vede aici. Rezultatul este același ca înainte:
Pasul 3: Efectuați o căutare folosind Mlflow.search_runs()
În cele din urmă, rulăm o căutare pe run-urile care au fost înregistrate folosind câțiva parametri și arătăm rezultatele pe ecranul terminalului:
# Definiți criteriile de căutare pentru rulăridefiniți_criteriile_de_căutare = „metrics.accuracy > 0,8 AND params.learning_rate = „0,01” ȘI params.efficiency_rate = „90””
# Efectuați căutarea
aleargă = mlflow. search_runs ( experiment_ids = exp_id , șir_filtru = definiți_criteriile_de_căutare )
# Afișează rezultatele
imprimare ( 'Rezultatele cautarii:' )
imprimare ( aleargă )
Un avertisment care se referă la instrumentul Git este produs de execuția funcției search_runs:
Adăugați un cod în partea de sus a fișierului Python pentru a dezactiva acest avertisment. Iată secțiunea scurtă a codului:
import tu
tu . aproximativ [ „GIT_PYTHON_REFRESH” ] = 'Liniște'
Funcția „mlflow.search_runs” este executată cu succes odată ce sunt adăugate aceste linii de cod:
Concluzie
Funcția „mlflow.search_runs” permite utilizatorilor să exploreze și să evalueze rapid experimentele de învățare automată, să analizeze multe rulări și să identifice variațiile sau modelele optime ale hiperparametrului care au ca rezultat rezultatele dorite. Este un instrument eficient pentru supravegherea, planificarea și analiza fluxului de lucru de învățare automată.