Vyhledávání probíhá v MLflow

Vyhledavani Probiha V Mlflow



Pro sledování a správu experimentů strojového učení nabízí MLflow rozsáhlou platformu. Možnost vyhledávat běhy je jednou z klíčových funkcí MLflow. To umožňuje identifikovat vyvinuté experimenty a uspořádat je způsobem, který usnadňuje vyhledání informací, kdykoli je to potřeba. Můžeme vyhledávat běhy pomocí vyhledávacího API MLflow pomocí řady různých kritérií, která mohou zahrnovat následující:
  • 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,8

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

import 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ěhy

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

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í.