- 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,82. 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 mlflowimportovať 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 parametrovs 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 behydefinovať_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ť 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.