Udostępnij za pośrednictwem


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

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:

  1. Utwórz nowy obszar roboczy nauki o danych lub wybierz istniejący.

  2. Wybierz pozycję Eksperyment w sekcji "Nowy".

  3. Podaj nazwę eksperymentu i wybierz pozycję Utwórz. Ta akcja powoduje utworzenie pustego eksperymentu w obszarze roboczym.

    Screenshot showing where to select Experiment in the New menu.

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.

Screenshot of machine learning run detail page.

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.

Screenshot of machine learning recent runs and Spark application view.

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.

Screenshot showing a list of runs and the chart view.

Aby porównać przebiegi:

  1. Wybierz istniejący eksperyment uczenia maszynowego zawierający wiele przebiegów.
  2. 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.
  3. 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ć.
  4. Rozwiń okienko Filtr, aby zawęzić wyniki na podstawie określonych kryteriów.
  5. 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.

Screenshot showing how to use the MLFlow authoring widget.

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.

Screenshot showing where to select Create a new model.