- Identyfikator lub nazwa eksperymentu
- Uruchom identyfikator
- Parametry i wartości
- Metryki i wartości
- Tagi
- Inne atrybuty powiązane z przebiegami
Uruchomienia można filtrować według statusu, czasu rozpoczęcia, zakończenia i czasu trwania za pomocą interfejsu API wyszukiwania MLflow. Ułatwia to filtrowanie wielu uruchomień i znajdowanie tych, które interesują użytkowników.
Funkcja wyszukiwania MLflow
Użyj funkcji mlflow.search_runs(), aby uzyskać dostęp do interfejsu API wyszukiwania MLflow. Ta funkcja akceptuje różne argumenty, takie jak następujące:
- Identyfikator lub nazwa eksperymentu
- Filtruj ciąg lub tekst
- Maksymalna liczba zwróconych uruchomień jest określona przez argument max_results
Uproszczony wariant klauzuli WHERE SQL (Structured Query Language) to ciąg filtrujący lub tekst. Można go wykorzystać do wskazania kryteriów, według których chcemy sortować przebiegi.
Składnia funkcji MLflow Search_Runs().
W poniższym przykładzie rzeczywisty identyfikator lub nazwę eksperymentu, w którym chcemy przeszukać, należy zastąpić „id_eksperymentu lub nazwa_eksperymentu”. Zmienna search_criteria umożliwia wprowadzenie dowolnych kryteriów wyszukiwania. Kryteria te mogą być określone za pomocą metryk, tagów, parametrów lub dodatkowych cech. Podstawowa składnia funkcji search_runs() jest następująca:
# Zaimportuj API wyszukiwania mlflow, aby użyć funkcji search_runs
import mlprzepływ
# Podaj identyfikator lub nazwę eksperymentu (jest to opcjonalne; )
id_wyd = „Identyfikator lub NAZWA eksperymentu”
# Zdefiniuj kryteria wyszukiwania przebiegów
szukana fraza = „metrics.accuracy > 0,8 ORAZ params.learning_rate = '0,01' ORAZ params.efficiency_rate > '80''
# Przeprowadź wyszukiwanie
biegnie = mlprzepływ. search_runs ( identyfikatory_eksperymentu = id_wyd , ciąg_filtru = szukana fraza )
# Wyświetl wyniki
wydrukować ( „Wyniki wyszukiwania:” )
wydrukować ( biegnie )
Przeprowadź wyszukiwanie, korzystając z wielu kryteriów
1. Wyszukaj według wartości metryki
Przebiegi można filtrować według wartości poszczególnych metryk przy użyciu pola metryk w interfejsie API wyszukiwania MLflow. W polu metryk pojawi się zbiór nazw metryk oddzielonych przecinkami. Na przykład następujący ciąg filtru lokalizuje wszystkie przebiegi z wartością dokładności większą niż 0,9:
metryka. dokładność > 0,9
Pełna lista metryk dostępnych do wykorzystania w polu metryki jest podana w następujący sposób:
- dokładność
- auc
- f1
- precyzja
- przypomnienie sobie czegoś
- mapa
- logloss
- błąd_klasyfikacji
- multi_class_logloss
Dodatkowo użytkownicy mogą filtrować przebiegi według zakresu wartości metryki, korzystając z pola metryki. Na przykład następny ciąg filtru lokalizuje wszystkie przebiegi, których miara dokładności mieści się w przedziale od 0,4 do 0,8:
metryka. dokładność MIĘDZY 0,4 I 0,8
W polu metryki operatory AND i OR łączą metryki, aby znaleźć przebiegi z dokładnością metryki i wartościami f1 powyżej 0,3 i 0,8:
metryka. dokładność > 0,3 ORAZ metryki. f1 > 0,82. Wyszukaj według wartości parametru
Skorzystaj z pola params w interfejsie API wyszukiwania MLflow, aby przeprowadzić wyszukiwanie według wartości parametru. Nazwy i wartości parametrów są wyświetlane w polu parametrów za pomocą przecinków. W tym przykładzie wspomniany ciąg filtrów lokalizuje wszystkie przebiegi z parametrem num_boost_round, które mają wartość 100:
parametry. num_boost_round = „100”Kilka innych przykładów ciągów wyszukiwania dla wartości parametrów:
- params.num_boost_round = 900
- params.learning_rate MIĘDZY 0,001 A 0,01
- params.num_boost_round=’70’ ORAZ params.learning_rate=’0.01′
3. Szukaj według tagów
Oto przykład wyszukiwania z wykorzystaniem tagów:
kryteria wyszukiwania = 'tags.mlflow.source.type = 'słownik''Przykład wartości macierzy i parametrów do wykonania funkcji Mlflow.search_runs().
Przeanalizujmy przykład konfiguracji eksperymentu MLflow, rejestrowania przebiegów, a następnie użycia funkcji mlflow.search_runs() do zainicjowania wyszukiwania. Aby w pełni zrozumieć kod, wykonaj następujące kroki:
Krok 1: Utwórz eksperyment MLflow
Zaczynamy od skonfigurowania eksperymentu MLflow. Pobiera istniejący eksperyment, jeśli eksperyment już istnieje. Jeśli nie, tworzy nowy.
Wyjaśnienie kodu:
Biblioteka MLflow jest importowana w pierwszym wierszu kodu, a nazwa_eksperymentu jest ustawiana w następnym wierszu na „Mój pierwszy eksperyment MLflow”. Kiedy nazwa_eksperymentu zostanie przekazana do funkcji „mlflow.get_experiment_by_name”, funkcja ta zwróci „Brak”, jeśli eksperyment nie istnieje, a w przeciwnym razie obiekt eksperymentu.
Sprawdź, czy w instrukcji warunkowej istnieje eksperyment. Jeśli eksperyment już istnieje, ustaw identyfikator eksperymentu. W przeciwnym razie użyj „mlflow.create_experiment”, aby utworzyć nowy eksperyment. Funkcja ta zwraca identyfikator eksperymentu. Po zakończeniu eksperymentu wyświetl identyfikator eksperymentu na ekranie konsoli lub terminala. Skopiuj poniższy kod do notatnika i zapisz plik pod żądaną nazwą i rozszerzeniem „.py”:
# importuj bibliotekę mlflowimport mlprzepływ
# Utwórz lub pobierz eksperyment
nazwa_eks = „Mój pierwszy eksperyment MLflow”
# Pobierz eksperyment według nazwy za pomocą funkcji mlflow get_experiment_by_name
do potęgi = mlprzepływ. get_experiment_by_name ( nazwa_eks )
# Sprawdź, czy eksperyment już nie istnieje
Jeśli do potęgi Jest Nic :
# Utwórz nowy eksperyment i przekaż nazwę eksperymentu do funkcji mlflow.create_experiment
id_wyd = mlprzepływ. utwórz_eksperyment ( nazwa_eks )
# Wyświetl komunikat o powodzeniu na ekranie
wydrukować ( „Eksperyment nie istnieje. Eksperyment utworzono pomyślnie!” )
w przeciwnym razie :
# Pobierz identyfikator_eksperymentu istniejącego eksperymentu
id_wyd = do potęgi. identyfikator_eksperymentu
wydrukować ( „Eksperyment już istnieje!” )
# Wyświetl identyfikator eksperymentu
wydrukować ( „Identyfikator eksperymentu:” , id_wyd )
Teraz uruchom program w wierszu poleceń lub oknie terminala za pomocą kompilatora Pythona i wpisz „Python”, a następnie nazwę pliku, która w tym przypadku to „MyFirstMlflowExperiment.py”. Kiedy eksperyment jest przeprowadzany po raz pierwszy, jeszcze go nie ma. Zatem MLFlow tworzy taki eksperyment i wypisuje identyfikator eksperymentu na ekranie konsoli:
Uruchom ponownie kod, aby sprawdzić, czy nie tworzy nowych eksperymentów i wyświetlić identyfikatory już istniejących. Poniższy zrzut ekranu pokazuje, że eksperyment już istnieje:
Krok 2: Rejestruj przebiegi za pomocą metryk i parametrów
Spróbujmy teraz zarejestrować niektóre przebiegi z metrykami i parametrami dla właśnie rozpoczętego eksperymentu. W scenariuszu ze świata rzeczywistego opracowujemy modele uczenia maszynowego i rejestrujemy odpowiednie informacje, takie jak metryki i parametry, na końcu każdego przebiegu. W tym przypadku dokładność jest używana jako wartość macierzowa i w tym przypadku wynosi ona 0,95. Wartości parametrów uczenia się i współczynnika efektywności wynoszą odpowiednio 0,01 i 90. Oto kod:
# Rozpocznij przebieg MLflow, aby rejestrować metryki i parametryz mlprzepływ. start_uruchom ( identyfikator_eksperymentu = id_wyd ) :
# Tutaj znajdziesz kod uczenia maszynowego (to tylko symulowany przykład)
dokładność_modelu = 0,95
machine_learning_rate = 0,01
wydajność_wskaźnik = 90
# Rejestruj metryki i parametry
mlprzepływ. log_metryka ( 'dokładność' , dokładność_modelu )
mlprzepływ. parametr_logowania ( „szybkość_uczenia się” , machine_learning_rate )
mlprzepływ. parametr_logowania ( „wskaźnik_wydajności” , wydajność_wskaźnik )
Wynik wykonania powyższego kodu można zobaczyć tutaj. Wynik jest taki sam jak poprzednio:
Krok 3: Przeprowadź wyszukiwanie za pomocą Mlflow.search_runs()
Na koniec przeprowadzamy wyszukiwanie zarejestrowanych przebiegów przy użyciu kilku parametrów i wyświetlamy wyniki na ekranie terminala:
# Zdefiniuj kryteria wyszukiwania przebiegówzdefiniuj_kryteria_wyszukiwania = 'metrics.accuracy > 0,8 ORAZ params.learning_rate = '0,01' ORAZ params.efficiency_rate = '90''
# Przeprowadź wyszukiwanie
biegnie = mlprzepływ. search_runs ( identyfikatory_eksperymentu = id_wyd , ciąg_filtru = zdefiniuj_kryteria_wyszukiwania )
# Wyświetl wyniki
wydrukować ( „Wyniki wyszukiwania:” )
wydrukować ( biegnie )
Wykonanie funkcji search_runs generuje ostrzeżenie dotyczące narzędzia Git:
Dodaj kod na górze pliku Python, aby wyłączyć to ostrzeżenie. Oto krótka część kodu:
import Ty
Ty . około [ „GIT_PYTHON_REFRESH” ] = 'cichy'
Funkcja „mlflow.search_runs” zostanie pomyślnie wykonana po dodaniu następujących linii kodu:
Wniosek
Funkcja „mlflow.search_runs” pozwala użytkownikom szybko eksplorować i oceniać eksperymenty uczenia maszynowego, analizować wiele przebiegów i wskazywać optymalne warianty lub modele hiperparametrów, które dają pożądane wyniki. Jest to skuteczne narzędzie do nadzorowania, planowania i analizowania przepływu pracy w uczeniu maszynowym.