A keresés az MLflow-ban fut

A Kereses Az Mlflow Ban Fut



A gépi tanulási kísérletek nyomon követéséhez és kezeléséhez az MLflow kiterjedt platformot kínál. A futások keresésének lehetősége az MLflow egyik legfontosabb jellemzője. Ez lehetővé teszi a kifejlesztett kísérletek azonosítását és olyan rendszerezését, amely megkönnyíti az információk megtalálását, amikor csak szükséges. Az MLflow keresési API-t használó futtatásokban számos különböző feltétel alapján kereshetünk, amelyek a következők lehetnek:
  • Kísérletazonosító vagy név
  • Futtatási azonosító
  • Paraméterek és értékek
  • Mérések és értékek
  • Címkék
  • A futtatáshoz társított egyéb attribútumok

A futások állapota, kezdési ideje, befejezési ideje és időtartama szerint szűrhetők az MLflow kereső API használatával. Ez megkönnyíti a szűrést a sok futtatás között, és megtalálja a felhasználókat érdeklő konkrét futtatásokat.

MLflow keresési funkció

Használja az mlflow.search_runs() függvényt az MLflow keresési API eléréséhez. Ez a függvény számos argumentumot fogad el, például a következőket:







  • A kísérlet azonosítója vagy neve
  • Szűrőkarakterlánc vagy szöveg
  • A visszaadandó futások maximális számát a max_results argumentum határozza meg

Az SQL (Structured Query Language) WHERE záradék egyszerűsített változata a szűrő karakterlánc vagy szöveg. Segítségével jelezhetjük, hogy milyen szempontok szerint szeretnénk rendezni a futásokat.



Az MLflow Search_Runs() függvény szintaxisa

A következő példában a keresni kívánt kísérlet tényleges azonosítóját vagy nevét be kell cserélni a „kísérlet_azonosítója” vagy a kísérlet_neve helyére. A search_criteria változó lehetővé teszi a keresési feltételek tetszőleges bevitelét. Ezeket a feltételeket metrikák, címkék, paraméterek vagy további jellemzők határozhatják meg. A search_runs() függvény alapvető szintaxisa a következő:



# Importálja az mlflow keresési API-t a search_runs függvény használatához

import mlflow

# Adja meg a kísérlet azonosítóját vagy nevét (nem kötelező; )

exp_id = „Kísérletazonosító vagy NAME”

# Határozza meg a futtatások keresési feltételeit

keresési_karakterlánc = 'metrics.accuracy > 0,8 AND params.learning_rate = '0,01' ÉS params.efficiency_rate > '80''

# Hajtsa végre a keresést

fut = mlflow. search_runs ( kísérlet_azonosítói = exp_id , filter_string = keresési_karakterlánc )

# Jelenítse meg az eredményeket

nyomtatás ( 'Keresési eredmények:' )

nyomtatás ( fut )

Futtasson keresést számos feltétel használatával

1. Keresés metrikaérték alapján

A futtatások adott metrikák értékei alapján szűrhetők az MLflow keresési API metrika mezőjének használatával. A metrikák mezőben vesszővel elválasztott metrikanevek gyűjteménye jelenik meg. Például a következő szűrőkarakterlánc minden 0,9-nél nagyobb pontosságú futást megkeres:





mérőszámok. pontosság > 0.9

A metrikák mezőben használható mérőszámok teljes listája a következő:

  • pontosság
  • auc
  • f1
  • pontosság
  • visszahívás
  • térkép
  • logloss
  • osztályozási_hiba
  • multi_class_logloss

Ezenkívül a felhasználók szűrhetik a futtatásokat egy metrika értéktartománya alapján a metrika mező használatával. Például a következő szűrőkarakterlánc megkeresi az összes olyan futtatást, amelynek pontossági mértéke 0,4 és 0,8 közötti értékkel rendelkezik:



mérőszámok. pontosság KÖZÖTT 0.4 ÉS 0.8

A mérőszámok mezőben az ÉS és VAGY operátorok kombinálják a mérőszámokat, hogy megtalálják a 0,3 és 0,8 feletti f1 értékekkel rendelkező mérőszámok pontosságát:

mérőszámok. pontosság > 0.3 ÉS mérőszámok. f1 > 0.8

2. Keresés paraméterérték alapján

Használja az MLflow keresési API paramétermezőjét a paraméterérték alapján történő kereséshez. A paraméterek nevei és értékei vesszővel jelennek meg a paramétermezőben. Ebben a példában a fent említett szűrőkarakterlánc megkeresi a 100 értékű num_boost_round paraméterrel rendelkező összes futtatást:

params. num_boost_round = '100'

Néhány további példa a paraméterértékek keresési karakterláncaira:

  • params.num_boost_round = 900
  • params.learning_rate 0,001 ÉS 0,01 KÖZÖTT
  • params.num_boost_round=’70’ ÉS params.learning_rate=’0,01′

3. Keresés címkék szerint

Íme egy példa a címkéket használó keresésre:

keresési feltétel = 'tags.mlflow.source.type = 'szótár''

Példa az Mlflow.search_runs() függvény végrehajtásához szükséges mátrix- és paraméterértékekre

Nézzünk meg egy példát egy MLflow-kísérlet beállítására, naplózásra, majd az mlflow.search_runs() használatára a keresés elindítására. A kód teljes megértéséhez kövesse az alábbi lépéseket:

1. lépés: Hozzon létre egy MLflow-kísérletet

Kezdjük egy MLflow kísérlet beállításával. Lekéri a meglévő kísérletet, ha a kísérlet már létezik. Ha nem, akkor újat hoz létre.

Kód magyarázata:

A program a kód első sorába importálja az MLflow-könyvtárat, a következő sorban pedig a kísérlet_neve értéke „My First MLflow Experiment”. Amikor a kísérlet_neve átadásra kerül az „mlflow.get_experiment_by_name” függvénynek, ez a függvény „Nincs” értéket ad vissza, ha a kísérlet nem létezik, egyébként pedig a kísérlet objektuma.

Ellenőrizze a kísérlet meglétét a feltételes utasításban. Ha a kísérlet már létezik, állítsa be a kísérlet_azonosítóját. Ellenkező esetben használja az „mlflow.create_experiment” parancsot egy új kísérlet létrehozásához. Ez a függvény a kísérlet azonosítóját adja vissza. A kísérlet végén jelenítse meg a kísérlet azonosítóját a konzol vagy a terminál képernyőjén. Másolja a következő kódot a jegyzettömbbe, és mentse el a fájlt a kívánt néven és „.py” kiterjesztéssel:

# import mlflow Library

import mlflow

# Hozza létre vagy töltse le a kísérletet

exp_name = 'Az első MLflow kísérletem'

# Töltse le a kísérletet név szerint a get_experiment_by_name mlflow függvény segítségével

exp = mlflow. get_experiment_by_name ( exp_name )

# Ellenőrizze, hogy a kísérlet nem létezik-e még

ha exp van Egyik sem :

# Hozzon létre új kísérletet, és adja át a kísérlet nevét az mlflow.create_experiment függvénynek

exp_id = mlflow. létrehozás_kísérlet ( exp_name )

# Jelenítse meg a sikeres üzenetet a képernyőn

nyomtatás ( 'Kísérlet nem létezik. A kísérlet sikeresen létrehozva!' )

más :

# A meglévő kísérlet kísérleti_azonosítójának lekérése

exp_id = exp. kísérlet_azonosítója

nyomtatás ( 'Már létezik kísérlet!' )

# Kísérletazonosító megjelenítése

nyomtatás ( 'Kísérlet azonosítója:' , exp_id )

Most indítsa el a programot a parancssorban vagy a terminálablakban a Python fordító segítségével, és írja be a „Python” kifejezést, majd a fájlnevet, amely ebben az esetben „MyFirstMlflowExperiment.py”. A kísérlet első futtatásakor még nem létezik. Így az MLFlow létrehoz egyet, és kinyomtatja a kísérlet azonosítóját a konzol képernyőjén:

Futtassa újra a kódot annak ellenőrzésére, hogy nem hoz létre új kísérleteket, és jelenítse meg a már létezők azonosítóját. A következő képernyőképen látható, hogy a kísérlet már létezik:

2. lépés: A futtatások naplózása metrikákkal és paraméterekkel

Most próbáljunk meg naplózni néhány futtatást az imént létrehozott kísérlet mérőszámaival és paramétereivel. Valós forgatókönyv esetén fejlesztjük a gépi tanulási modelleket, és minden egyes futtatás végén rögzítjük a releváns információkat, például a mérőszámokat és a paramétereket. Itt a pontosságot használjuk mátrixértékként, és ez ebben az esetben 0,95. A tanulási és hatékonysági arány paraméterértékei 0,01, illetve 90. Íme a kód:

# Indítson el egy MLflow futtatást a metrikák és paraméterek naplózásához

val vel mlflow. start_run ( kísérlet_azonosítója = exp_id ) :

# Az Ön gépi tanulási kódja itt (ez csak egy szimulált példa)

modell_pontosság = 0,95

gépi_tanulási_ráta = 0,01

hatékonysági_ráta = 90

# A mérőszámok és paraméterek naplózása

mlflow. log_metric ( 'pontosság' , modell_pontosság )

mlflow. log_param ( 'learning_rate' , gépi_tanulási_ráta )

mlflow. log_param ( 'efficiency_rate' , hatékonysági_ráta )

Az eredmény, amikor a fent említett kód végrehajtásra kerül, itt látható. Az eredmény ugyanaz, mint korábban:

3. lépés: Végezzen keresést az Mlflow.search_runs() használatával

Végül keresést futtatunk azokon a futtatásokon, amelyeket néhány paraméter segítségével naplóztunk, és az eredményeket megjelenítjük a terminál képernyőjén:

# Határozza meg a futtatások keresési feltételeit

define_search_criteria = 'metrics.accuracy > 0,8 ÉS params.learning_rate = '0,01' ÉS params.efficiency_rate = '90''

# Hajtsa végre a keresést

fut = mlflow. search_runs ( kísérlet_azonosítói = exp_id , filter_string = define_search_criteria )

# Jelenítse meg az eredményeket

nyomtatás ( 'Keresési eredmények:' )

nyomtatás ( fut )

A Git eszközre vonatkozó figyelmeztetést a search_runs függvény végrehajtása állítja elő:


A figyelmeztetés letiltásához adjon hozzá kódot a Python-fájl tetejéhez. Íme a kód rövid része:

import mlflow

import te

te . hozzávetőlegesen, körülbelül [ 'GIT_PYTHON_REFRESH' ] = 'csendes'

Az „mlflow.search_runs” függvény sikeresen végrehajtódik, miután hozzáadta a következő kódsorokat:

Következtetés

Az „mlflow.search_runs” funkció lehetővé teszi a felhasználók számára, hogy gyorsan felfedezzék és kiértékeljék a gépi tanulási kísérleteket, számos futtatást elemezzenek, és meghatározzák az optimális hiperparaméter-variációkat vagy modelleket, amelyek a kívánt eredményeket eredményezik. Ez egy hatékony eszköz a gépi tanulási munkafolyamat felügyeletéhez, tervezéséhez és elemzéséhez.