Vyhľadávanie prebieha v MLflow

Vyhladavanie Prebieha V Mlflow



Na sledovanie a správu experimentov strojového učenia ponúka MLflow rozsiahlu platformu. Schopnosť vyhľadávať behy je jednou z kľúčových funkcií MLflow. To umožňuje identifikovať vyvinuté experimenty a organizovať ich spôsobom, ktorý zjednodušuje vyhľadávanie informácií, kedykoľvek je to potrebné. Môžeme vyhľadávať behy pomocou vyhľadávacieho API MLflow pomocou množstva rôznych kritérií, ktoré môžu zahŕňať nasledujúce:
  • ID alebo názov experimentu
  • Spustiť ID
  • Parametre a hodnoty
  • Metriky a hodnoty
  • Tagy
  • Ďalšie atribúty, ktoré sú spojené s behmi

Spustenia je možné filtrovať podľa stavu, času začiatku, času ukončenia a trvania pomocou vyhľadávacieho API MLflow. Uľahčuje to filtrovanie medzi mnohými behmi a nájdenie konkrétnych behov, o ktoré majú používatelia záujem.

Funkcia vyhľadávania MLflow

Na prístup k vyhľadávaciemu API MLflow použite funkciu mlflow.search_runs(). Táto funkcia akceptuje rôzne argumenty, ako napríklad:







  • ID alebo názov experimentu
  • Filtrovať reťazec alebo text
  • Maximálny počet spustení, ktoré sa majú vrátiť, je určený argumentom max_results

Zjednodušený variant klauzuly SQL (Structured Query Language) WHERE je reťazec filtra alebo text. Môže sa použiť na označenie kritérií, podľa ktorých chceme zoradiť jazdy.



Syntax funkcie MLflow Search_Runs().

Skutočné ID alebo názov experimentu, v ktorom chceme vyhľadávať, musí byť v nasledujúcom príklade nahradené reťazcom „experiment_id alebo experiment_name“. Premenná search_criteria umožňuje zadať požadované kritériá vyhľadávania. Tieto kritériá môžu byť určené metrikami, značkami, parametrami alebo ďalšími charakteristikami. Základná syntax funkcie search_runs() je nasledovná:



# Ak chcete použiť funkciu search_runs, importujte rozhranie API na vyhľadávanie mlflow

importovať mlflow

# Poskytnite nejaké ID alebo názov experimentu (je to voliteľné; )

exp_id = „ID experimentu alebo NAME“

# Definujte kritériá vyhľadávania pre behy

vyhľadávací_reťazec = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' AND params.efficiency_rate > '80''

# Vykonajte vyhľadávanie

beží = mlflow. search_runs ( experiment_ids = exp_id , filter_string = vyhľadávací_reťazec )

# Zobrazte výsledky

vytlačiť ( 'Výsledky vyhľadávania:' )

vytlačiť ( beží )

Spustite vyhľadávanie pomocou mnohých kritérií

1. Vyhľadávanie podľa metriky

Spustenia možno filtrovať podľa hodnôt konkrétnych metrík pomocou poľa metrík vo vyhľadávacom rozhraní MLflow API. V poli metrík sa zobrazí zbierka názvov metrík oddelených čiarkami. Napríklad nasledujúci reťazec filtra vyhľadá všetky spustenia s hodnotou presnosti väčšou ako 0,9:





metriky. presnosť > 0,9

Úplný zoznam metrík dostupných na použitie v poli metrík je uvedený takto:

  • presnosť
  • auc
  • f1
  • presnosť
  • odvolať
  • mape
  • logloss
  • klasifikácia_chyba
  • multi_class_logloss

Okrem toho môžu používatelia filtrovať behy podľa rozsahu hodnôt metriky pomocou poľa metrík. Napríklad nasledujúci reťazec filtra nájde všetky série, ktoré majú mieru presnosti s hodnotou medzi 0,4 a 0,8:



metriky. presnosť MEDZI 0,4 A 0,8

V poli metrík operátory AND a OR kombinujú metriky, aby našli priebehy s presnosťou metrík a hodnotami f1 nad 0,3 a 0,8:

metriky. presnosť > 0,3 A metriky. f1 > 0,8

2. Vyhľadávanie podľa hodnoty parametra

Využite pole params vo vyhľadávacom API MLflow na vyhľadávanie podľa hodnoty parametra. Názvy a hodnoty parametrov sú uvedené v poli params pomocou čiarok. V tomto príklade vyššie uvedený reťazec filtra nájde všetky spustenia s parametrom num_boost_round, ktoré majú hodnotu 100:

parametre. num_boost_round = '100'

Niekoľko ďalších príkladov vyhľadávacích reťazcov pre hodnoty parametrov:

  • params.num_boost_round = 900
  • params.learning_rate MEDZI 0,001 A 0,01
  • params.num_boost_round=’70’ AND params.learning_rate=’0,01′

3. Vyhľadávanie podľa značiek

Tu je príklad vyhľadávania pomocou značiek:

kritériá vyhľadávania = 'tags.mlflow.source.type = 'dictionary''

Príklad matice a hodnôt parametrov na vykonanie funkcie Mlflow.search_runs().

Prejdime si na príklad nastavenia experimentu MLflow, spustenia protokolovania a následného použitia funkcie mlflow.search_runs() na spustenie vyhľadávania. Ak chcete úplne porozumieť kódu, postupujte takto:

Krok 1: Vytvorte experiment MLflow

Začneme nastavením experimentu MLflow. Načíta existujúci experiment, ak už existuje. Ak nie, vytvorí nový.

Vysvetlenie kódu:

Knižnica MLflow sa importuje v prvom riadku kódu a názov_experimentu je v ďalšom riadku nastavený na „Môj prvý experiment MLflow“. Keď sa názov_experimentu odovzdá do funkcie „mlflow.get_experiment_by_name“, táto funkcia vráti hodnotu „None“, ak experiment neexistuje a inak je objekt experimentu.

Skontrolujte existenciu experimentu v podmienenom príkaze. Ak experiment už existuje, nastavte experiment_id. V opačnom prípade použite na vytvorenie nového experimentu „mlflow.create_experiment“. Táto funkcia vráti ID experimentu. Na konci experimentu zobrazte ID experimentu na obrazovke konzoly alebo terminálu. Skopírujte nasledujúci kód do poznámkového bloku a uložte súbor s požadovaným názvom a príponou „.py“:

# importovať knižnicu mlflow

importovať mlflow

# Vytvorte alebo načítajte experiment

exp_name = „Môj prvý experiment MLflow“

# Získajte experiment podľa názvu pomocou funkcie mlflow get_experiment_by_name

exp = mlflow. get_experiment_by_name ( exp_name )

# Skontrolujte, či experiment už neexistuje

ak exp je žiadne :

# Vytvorte nový experiment a odovzdajte názov experimentu funkcii mlflow.create_experiment

exp_id = mlflow. vytvoriť_experiment ( názov_exp )

# Zobrazte na obrazovke správu o úspechu

vytlačiť ( 'Experiment neexistuje. Experiment bol úspešne vytvorený!' )

inak :

# Načítajte experiment_id existujúceho experimentu

exp_id = exp. experiment_id

vytlačiť ( 'Experiment už existuje!' )

# Zobraziť ID experimentu

vytlačiť ( 'ID experimentu:' , exp_id )

Teraz spustite program v príkazovom riadku alebo okne terminálu pomocou kompilátora Python a zadajte „Python“ a potom názov súboru, ktorý je v tomto prípade „MyFirstMlflowExperiment.py“. Pri prvom spustení experiment ešte neexistuje. MLFlow ho teda vytvorí a vytlačí ID experimentu na obrazovku konzoly:

Znova spustite kód, aby ste overili, že nevytvára nové experimenty, a aby sa zobrazilo ID tých, ktoré už existujú. Nasledujúca snímka obrazovky ukazuje, že experiment už existuje:

Krok 2: Zaznamenajte priebehy pomocou metrík a parametrov

Pokúsme sa teraz zaznamenať niekoľko spustení s metrikami a parametrami pre práve založený experiment. V scenári reálneho sveta vyvíjame modely strojového učenia a zaznamenávame relevantné informácie, ako sú metriky a parametre, na konci každého cyklu. Presnosť sa tu používa ako maticová hodnota a v tomto prípade je to 0,95. Hodnoty parametrov pre učenie a účinnosť sú 0,01 a 90, v tomto poradí. Tu je kód:

# Spustite spustenie MLflow na zaznamenávanie metrík a parametrov

s mlflow. start_run ( experiment_id = exp_id ) :

# Tu je váš kód strojového učenia (toto je len simulovaný príklad)

model_accuracy = 0,95

rýchlosť_strojového_učenia = 0,01

efektívnosť_miera = 90

# Zaznamenajte metriky a parametre

mlflow. log_metric ( 'presnosť' , model_accuracy )

mlflow. log_param ( 'rýchlosť_učenia' , rýchlosť_strojového_učenia )

mlflow. log_param ( 'účinnosť_miera' , efektívnosť_miera )

Výsledok, keď sa spustí vyššie uvedený kód, je vidieť tu. Výsledok je rovnaký ako predtým:

Krok 3: Vykonajte vyhľadávanie pomocou Mlflow.search_runs()

Nakoniec spustíme vyhľadávanie na behoch, ktoré boli zaznamenané pomocou niekoľkých parametrov, a výsledky zobrazíme na obrazovke terminálu:

# Definujte kritériá vyhľadávania pre behy

definovať_kritériá_vyhľadávania = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate = '90''

# Vykonajte vyhľadávanie

beží = mlflow. search_runs ( experiment_ids = exp_id , filter_string = definovať_kritériá_vyhľadávania )

# Zobrazte výsledky

vytlačiť ( 'Výsledky vyhľadávania:' )

vytlačiť ( beží )

Varovanie, ktoré sa týka nástroja Git, je vytvorené spustením funkcie search_runs:


Pridajte nejaký kód do hornej časti súboru Python, aby ste zakázali toto varovanie. Tu je krátka časť kódu:

importovať mlflow

importovať vy

vy . približne [ 'GIT_PYTHON_REFRESH' ] = 'tichý'

Funkcia „mlflow.search_runs“ sa úspešne spustí po pridaní týchto riadkov kódu:

Záver

Funkcia „mlflow.search_runs“ umožňuje používateľom rýchlo preskúmať a vyhodnotiť experimenty so strojovým učením, analyzovať množstvo cyklov a určiť optimálne variácie alebo modely hyperparametrov, ktoré vedú k požadovaným výsledkom. Je to efektívny nástroj na dohľad, plánovanie a analýzu pracovného toku strojového učenia.