Eksperymenty uczenia maszynowego w usłudze Microsoft Fabric
Eksperyment uczenia maszynowego to podstawowa jednostka organizacji i kontroli dla wszystkich powiązanych przebiegów uczenia maszynowego. Przebieg odpowiada pojedynczemu wykonaniu kodu modelu. W środowisku MLflow śledzenie jest oparte na eksperymentach i przebiegach.
Eksperymenty uczenia maszynowego umożliwiają analitykom danych rejestrowanie parametrów, wersji kodu, metryk i plików wyjściowych podczas uruchamiania kodu uczenia maszynowego. Eksperymenty umożliwiają również wizualizowanie, wyszukiwanie i porównywanie przebiegów, a także pobieranie plików run i metadanych do analizy w innych narzędziach.
W tym artykule dowiesz się więcej o tym, jak analitycy danych mogą wchodzić w interakcje z eksperymentami uczenia maszynowego i używać ich do organizowania procesu programowania oraz śledzenia wielu przebiegów.
Wymagania wstępne
- Subskrypcja usługi Power BI Premium. Jeśli go nie masz, zobacz Jak kupić usługę Power BI Premium.
- Obszar roboczy usługi Power BI z przypisaną pojemnością Premium.
Tworzenie eksperymentu
Eksperyment uczenia maszynowego można utworzyć bezpośrednio ze strony głównej Nauka o danych w interfejsie użytkownika usługi Power BI lub pisząc kod korzystający z interfejsu API platformy MLflow.
Tworzenie eksperymentu przy użyciu interfejsu użytkownika
Aby utworzyć eksperyment uczenia maszynowego z poziomu interfejsu użytkownika:
Utwórz nowy obszar roboczy nauki o danych lub wybierz istniejący.
Wybierz pozycję Eksperyment w sekcji "Nowy".
Podaj nazwę eksperymentu i wybierz pozycję Utwórz. Ta akcja powoduje utworzenie pustego eksperymentu w obszarze roboczym.
Po utworzeniu eksperymentu możesz rozpocząć dodawanie przebiegów w celu śledzenia metryk i parametrów przebiegu.
Tworzenie eksperymentu przy użyciu interfejsu API platformy MLflow
Możesz również utworzyć eksperyment uczenia maszynowego bezpośrednio z poziomu środowiska tworzenia przy użyciu mlflow.create_experiment()
interfejsów API lub mlflow.set_experiment()
. W poniższym kodzie zastąp ciąg <EXPERIMENT_NAME>
nazwą eksperymentu.
import mlflow
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")
# This will set the given experiment as the active experiment.
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")
Zarządzanie przebiegami w ramach eksperymentu
Eksperyment uczenia maszynowego zawiera kolekcję przebiegów na potrzeby uproszczonego śledzenia i porównywania. W ramach eksperymentu analityk danych może przechodzić między różnymi przebiegami i eksplorować podstawowe parametry i metryki. Analitycy danych mogą również porównać przebiegi w eksperymencie uczenia maszynowego, aby określić, który podzbiór parametrów daje żądaną wydajność modelu.
Śledzenie przebiegów
Przebieg uczenia maszynowego odpowiada pojedynczemu wykonaniu kodu modelu.
Każdy przebieg zawiera następujące informacje:
- Źródło: nazwa notesu, który utworzył przebieg.
- Zarejestrowana wersja: wskazuje, czy przebieg został zapisany jako model uczenia maszynowego.
- Data rozpoczęcia: godzina rozpoczęcia przebiegu.
- Stan: postęp przebiegu.
- Hiperparametry: hiperparametry zapisane jako pary klucz-wartość. Zarówno klucze, jak i wartości są ciągami.
- Metryki: uruchom metryki zapisane jako pary klucz-wartość. Wartość jest liczbowa.
- Pliki wyjściowe: pliki wyjściowe w dowolnym formacie. Można na przykład rejestrować obrazy, środowisko, modele i pliki danych.
Wyświetlanie ostatnich przebiegów
Możesz również wyświetlić ostatnie uruchomienia eksperymentu bezpośrednio z widoku listy obszarów roboczych. Ten widok umożliwia śledzenie ostatnich działań, szybkie przechodzenie do powiązanej aplikacji Spark i stosowanie filtrów na podstawie stanu uruchomienia.
Porównywanie i filtrowanie przebiegów
Aby porównać i ocenić jakość przebiegów uczenia maszynowego, możesz porównać parametry, metryki i metadane między wybranymi przebiegami w ramach eksperymentu.
Wizualne porównywanie przebiegów
Możesz wizualnie porównać i filtrować przebiegi w istniejącym eksperymencie. Porównanie wizualne umożliwia łatwe nawigowanie między wieloma przebiegami i sortowanie między nimi.
Aby porównać przebiegi:
- Wybierz istniejący eksperyment uczenia maszynowego zawierający wiele przebiegów.
- Wybierz kartę Widok , a następnie przejdź do widoku listy Uruchom. Alternatywnie możesz wybrać opcję Wyświetl listę uruchomień bezpośrednio w widoku Szczegóły przebiegu.
- Dostosuj kolumny w tabeli, rozwijając okienko Dostosowywanie kolumn . W tym miejscu możesz wybrać właściwości, metryki i hiperparametry, które chcesz zobaczyć.
- Rozwiń okienko Filtr, aby zawęzić wyniki na podstawie określonych kryteriów.
- Wybierz wiele przebiegów, aby porównać wyniki w okienku porównania metryk. W tym okienku można dostosować wykresy, zmieniając tytuł wykresu, typ wizualizacji, oś X, oś Y i nie tylko.
Porównanie przebiegów przy użyciu interfejsu API platformy MLflow
Analitycy danych mogą również używać biblioteki MLflow do wykonywania zapytań i wyszukiwania między przebiegami w ramach eksperymentu. Więcej interfejsów API platformy MLflow do wyszukiwania, filtrowania i porównywania przebiegów można znaleźć w dokumentacji platformy MLflow.
Pobieranie wszystkich przebiegów
Możesz użyć interfejsu API mlflow.search_runs()
wyszukiwania MLflow, aby pobrać wszystkie przebiegi w eksperymencie, zastępując <EXPERIMENT_NAME>
ciąg nazwą eksperymentu lub <EXPERIMENT_ID>
identyfikatorem eksperymentu w następującym kodzie:
import mlflow
# Get runs by experiment name:
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])
# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])
Napiwek
Możesz przeszukiwać wiele eksperymentów, podając listę identyfikatorów eksperymentów dla parametru experiment_ids
. Podobnie udostępnienie listy nazw eksperymentów do parametru experiment_names
umożliwi MLflow wyszukiwanie w wielu eksperymentach. Może to być przydatne, jeśli chcesz porównać przebiegi w różnych eksperymentach.
Order and limit runs (Zamówienia i limity przebiegów)
Użyj parametru max_results
z search_runs
, aby ograniczyć liczbę zwracanych przebiegów. Parametr order_by
umożliwia wyświetlenie listy kolumn do kolejności według i może zawierać wartość opcjonalną lub ASC
wartośćDESC
. Na przykład poniższy przykład zwraca ostatni przebieg eksperymentu.
mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])
Porównanie przebiegów w notesie sieci szkieletowej
Widżet tworzenia biblioteki MLFlow można używać w notesach sieci Szkieletowej do śledzenia przebiegów platformy MLflow generowanych w każdej komórce notesu. Widżet umożliwia śledzenie przebiegów, skojarzonych metryk, parametrów i właściwości aż do poziomu poszczególnych komórek.
Aby uzyskać porównanie wizualizacji, możesz również przełączyć się do widoku porównania Uruchom. Ten widok przedstawia dane graficznie, ułatwiając szybką identyfikację wzorców lub odchyleń w różnych przebiegach.
Zapisywanie przebiegu jako modelu uczenia maszynowego
Po uzyskaniu żądanego wyniku przebiegu możesz zapisać przebieg jako model na potrzeby rozszerzonego śledzenia modeli i wdrożenia modelu, wybierając pozycję Zapisz jako model uczenia maszynowego.