- ID nebo název experimentu
- Spustit ID
- Parametry a hodnoty
- Metriky a hodnoty
- Tagy
- Další atributy, které jsou spojeny s běhy
Spuštění lze filtrovat podle stavu, času zahájení, času ukončení a trvání pomocí vyhledávacího API MLflow. Usnadňuje filtrování mnoha běhů a nalezení konkrétních běhů, které uživatele zajímají.
Funkce vyhledávání MLflow
Pro přístup k vyhledávacímu API MLflow použijte funkci mlflow.search_runs(). Tato funkce přijímá různé argumenty, jako jsou následující:
- ID nebo název experimentu
- Řetězec nebo text filtru
- Maximální počet vrácených běhů je určen argumentem max_results
Zjednodušená varianta klauzule WHERE SQL (Structured Query Language) je řetězec nebo text filtru. Lze jej použít k označení kritérií, podle kterých chceme běhy seřadit.
Syntaxe funkce MLflow Search_Runs()
Skutečné ID nebo název experimentu, ve kterém chceme hledat, musí být v následujícím příkladu nahrazeno „id_experimentu nebo název_experimentu“. Proměnná search_criteria umožňuje zadání vyhledávacích kritérií podle potřeby. Tato kritéria mohou být určena metrikami, značkami, parametry nebo dalšími charakteristikami. Základní syntaxe funkce search_runs() je následující:
# Importujte rozhraní API pro vyhledávání mlflow pro použití funkce search_runs
import mlflow
# Zadejte nějaké ID nebo název experimentu (je volitelné; )
exp_id = 'ID experimentu nebo NAME'
# Definujte kritéria vyhledávání pro běhy
vyhledávací_řetězec = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate > '80''
# Proveďte vyhledávání
běží = mlflow. search_runs ( experiment_ids = exp_id , řetězec_filtru = vyhledávací_řetězec )
# Zobrazte výsledky
tisk ( 'Výsledky vyhledávání:' )
tisk ( běží )
Spusťte vyhledávání pomocí mnoha kritérií
1. Vyhledávání podle metrické hodnoty
Spuštění lze filtrovat podle hodnot konkrétních metrik pomocí pole metrik ve vyhledávacím API MLflow. V poli metrik se zobrazí kolekce názvů metrik oddělených čárkami. Například následující řetězec filtru vyhledá všechny běhy s hodnotou přesnosti větší než 0,9:
metriky. přesnost > 0,9
Úplný seznam metrik dostupných pro použití v poli metrik je uveden následovně:
- přesnost
- auc
- f1
- přesnost
- odvolání
- mapě
- logloss
- klasifikace_chyba
- multi_class_logloss
Kromě toho mohou uživatelé filtrovat běhy podle rozsahu hodnot metriky pomocí pole metrik. Například další řetězec filtru vyhledá všechny běhy, které mají míru přesnosti s hodnotou mezi 0,4 a 0,8:
metriky. přesnost MEZI 0,4 A 0,8
V poli metrik operátory AND a OR kombinují metriky, aby nalezly běhy s přesností metrik a hodnotami f1 nad 0,3 a 0,8:
metriky. přesnost > 0,3 A metriky. f1 > 0,82. Vyhledávání podle hodnoty parametru
Použijte pole params ve vyhledávacím rozhraní MLflow k vyhledávání podle hodnoty parametru. Názvy a hodnoty parametrů jsou uvedeny v poli params pomocí čárek. V tomto příkladu výše uvedený řetězec filtru vyhledá všechny běhy s parametrem num_boost_round, které mají hodnotu 100:
parametry. num_boost_round = '100'Několik dalších příkladů vyhledávacích řetězců pro hodnoty parametrů:
- params.num_boost_round = 900
- params.learning_rate MEZI 0,001 A 0,01
- params.num_boost_round=’70’ AND params.learning_rate=’0.01′
3. Vyhledávání podle značek
Zde je příklad vyhledávání pomocí značek:
kritéria vyhledávání = 'tags.mlflow.source.type = 'dictionary''Příklad hodnot matice a parametrů k provedení funkce Mlflow.search_runs().
Projdeme si příklad nastavení experimentu MLflow, protokolování běhů a poté použití mlflow.search_runs() k zahájení vyhledávání. Chcete-li zcela porozumět kódu, postupujte takto:
Krok 1: Vytvořte experiment MLflow
Začneme nastavením experimentu MLflow. Načte existující experiment, pokud experiment již existuje. Pokud ne, vytvoří nový.
Vysvětlení kódu:
Knihovna MLflow se importuje na první řádek kódu a název_experimentu je na dalším řádku nastaven na „Můj první experiment MLflow“. Když je název experimentu předán funkci „mlflow.get_experiment_by_name“, vrátí tato funkce hodnotu „None“, pokud experiment neexistuje a jinak objekt experimentu.
Zkontrolujte existenci experimentu v podmíněném příkazu. Pokud experiment již existuje, nastavte experiment_id. V opačném případě použijte k vytvoření nového experimentu „mlflow.create_experiment“. Tato funkce vrací ID experimentu. Na konci experimentu zobrazte ID experimentu na obrazovce konzoly nebo terminálu. Zkopírujte následující kód do poznámkového bloku a uložte soubor s požadovaným názvem a příponou „.py“:
# import knihovny mlflowimport mlflow
# Vytvořte nebo načtěte experiment
jméno_exp = „Můj první experiment MLflow“
# Načtěte experiment podle názvu pomocí funkce mlflow get_experiment_by_name
zk = mlflow. get_experiment_by_name ( jméno_exp )
# Zkontrolujte, zda experiment již neexistuje
-li zk je Žádný :
# Vytvořte nový experiment a předejte název experimentu funkci mlflow.create_experiment
exp_id = mlflow. vytvořit_experiment ( jméno_exp )
# Zobrazte na obrazovce zprávu o úspěchu
tisk ( 'Experiment neexistuje. Experiment byl úspěšně vytvořen!' )
jiný :
# Načtěte experiment_id stávajícího experimentu
exp_id = zk. experiment_id
tisk ( 'Experiment již existuje!' )
# Zobrazit ID experimentu
tisk ( 'ID experimentu:' , exp_id )
Nyní spusťte program v příkazovém řádku nebo okně terminálu pomocí kompilátoru Pythonu a zadejte „Python“ a poté název souboru, který je v tomto případě „MyFirstMlflowExperiment.py“. Když je experiment poprvé spuštěn, ještě neexistuje. MLFlow tedy vytvoří jeden a vytiskne ID experimentu na obrazovku konzoly:
Spusťte kód znovu, abyste ověřili, že nevytváří nové experimenty, a zobrazte ID těch, které již existují. Následující snímek obrazovky ukazuje, že experiment již existuje:
Krok 2: Zaznamenejte běhy s metrikami a parametry
Pokusme se nyní zaznamenat několik běhů s metrikami a parametry pro právě založený experiment. Ve scénáři reálného světa vyvíjíme modely strojového učení a na konci každého běhu zaznamenáváme relevantní informace, jako jsou metriky a parametry. Zde se jako maticová hodnota používá přesnost a v tomto případě je to 0,95. Hodnoty parametrů pro učení a účinnost jsou 0,01 a 90, v tomto pořadí. Zde je kód:
# Spusťte běh MLflow pro protokolování metrik a parametrůs mlflow. start_run ( experiment_id = exp_id ) :
# Zde je váš kód strojového učení (toto je pouze simulovaný příklad)
přesnost_modelu = 0,95
rychlost_strojového_učení = 0,01
míra účinnosti = 90
# Log metriky a parametry
mlflow. log_metric ( 'přesnost' , přesnost_modelu )
mlflow. log_param ( 'rychlost_učení' , rychlost_strojového_učení )
mlflow. log_param ( 'účinnost_míra' , míra účinnosti )
Výsledek po provedení výše uvedeného kódu je vidět zde. Výsledek je stejný jako předtím:
Krok 3: Proveďte vyhledávání pomocí Mlflow.search_runs()
Nakonec spustíme vyhledávání běhů, které byly zaznamenány pomocí několika parametrů, a zobrazíme výsledky na obrazovce terminálu:
# Definujte kritéria vyhledávání pro běhydefine_search_criteria = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate = '90''
# Proveďte vyhledávání
běží = mlflow. search_runs ( experiment_ids = exp_id , řetězec_filtru = define_search_criteria )
# Zobrazte výsledky
tisk ( 'Výsledky vyhledávání:' )
tisk ( běží )
Spuštěním funkce search_runs vzniká varování, které se týká nástroje Git:
Přidejte nějaký kód do horní části souboru Python, abyste toto varování deaktivovali. Zde je krátká část kódu:
import vy
vy . přibližně [ 'GIT_PYTHON_REFRESH' ] = 'klid'
Funkce „mlflow.search_runs“ je úspěšně spuštěna po přidání těchto řádků kódu:
Závěr
Funkce „mlflow.search_runs“ umožňuje uživatelům rychle prozkoumat a vyhodnotit experimenty strojového učení, analyzovat mnoho běhů a určit optimální varianty hyperparametrů nebo modely, které vedou k požadovaným výsledkům. Je to účinný nástroj pro dohled, plánování a analýzu pracovního postupu strojového učení.