Udostępnij przez


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. Uruchomienie odpowiada pojedynczemu wykonaniu kodu modelu. W MLflow śledzenie jest oparte na eksperymentach i uruchomieniach.

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.

Warunki wstępne

Tworzenie eksperymentu

Eksperyment uczenia maszynowego można utworzyć bezpośrednio z poziomu interfejsu użytkownika (UI) sieci szkieletowej 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 lub wybierz istniejący.

  2. W lewym górnym rogu obszaru roboczego wybierz pozycję Nowy element. W obszarze Analizowanie i trenowanie danych wybierz pozycję Eksperymentuj .

    Zrzut ekranu przedstawiający miejsce, w którym można wybrać Eksperyment w przestrzeni roboczej. LUB

  3. Wybierz pozycję Utwórz, którą można znaleźć w ... w menu pionowym.

    Zrzut ekranu przedstawiający przycisk utwórz.

  4. W obszarze Nauka o danych wybierz pozycję Eksperyment.

    Zrzut ekranu pokazujący, gdzie wybrać pozycję Eksperyment po wybraniu pozycji Utwórz.

  5. Podaj nazwę eksperymentu i wybierz pozycję Utwórz. Ta akcja powoduje rozpoczęcie pustego eksperymentu w ramach obszaru roboczego.

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 ze środowiska tworzenia przy użyciu interfejsów API mlflow.create_experiment() lub mlflow.set_experiment(). W poniższym kodzie zastąp <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.

Aby wyświetlić przebiegi eksperymentu, wybierz pozycję Uruchom listę w widoku eksperymentu.

Zrzut ekranu przedstawiający ostatnie uruchomienia uczenia maszynowego.

Z listy uruchomień możesz przejść do szczegółów określonego przebiegu, wybierając nazwę przebiegu.

Śledzenie szczegółów przebiegu

Przebieg uczenia maszynowego odpowiada pojedynczemu wykonaniu kodu modelu. Dla każdego przebiegu można śledzić następujące informacje:

zrzut ekranu pokazujący stronę szczegółów przebiegu uczenia maszynowego.

Każdy przebieg zawiera następujące informacje:

  • Źródło: Nazwa notesu, który utworzył uruchomienie.
  • Zarejestrowana Wersja: wskazuje, czy przebieg został zapisany jako model uczenia maszynowego.
  • Data rozpoczęcia: Godzina rozpoczęcia uruchomienia.
  • Status: postęp biegu.
  • Hiperparametry: Hiperparametry zapisane jako pary klucz-wartość. Zarówno klucze, jak i wartości są ciągami.
  • Metryki: Metryki działania zapisane w formie par 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.
  • Tagi: metadane jako pary klucz-wartość dla uruchomień.

zrzut ekranu pokazujący stronę szczegółów przebiegu uczenia maszynowego.

Wyświetl listę uruchomień

Wszystkie przebiegi można wyświetlić w eksperymencie w widoku Listy przebiegów. Ten widok umożliwia śledzenie ostatnich działań, szybkie przechodzenie do powiązanej aplikacji Spark i stosowanie filtrów na podstawie stanu uruchomienia.

Wyświetl listę uruchomień

Wszystkie przebiegi można wyświetlić w eksperymencie w widoku Listy przebiegów. Ten widok umożliwia śledzenie ostatnich działań, szybkie przechodzenie do powiązanej aplikacji Spark i stosowanie filtrów na podstawie stanu uruchomienia.

Zrzut ekranu przedstawiający ostatnie uruchomienia uczenia maszynowego.

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.

Oznaczanie przebiegów tagami

Tagowanie MLflow dla przebiegów eksperymentów umożliwia użytkownikom dodawanie niestandardowych metadanych w postaci par klucz-wartość do ich przebiegów. Te tagi ułatwiają kategoryzowanie, filtrowanie i wyszukiwanie przebiegów na podstawie określonych atrybutów, co ułatwia zarządzanie eksperymentami i analizowanie ich na platformie MLflow. Użytkownicy mogą używać tagów do etykietowania przebiegów z informacjami, takimi jak typy modeli, parametry lub wszelkie odpowiednie identyfikatory, zwiększając ogólną organizację i możliwość śledzenia eksperymentów.

Ten fragment kodu uruchamia przebieg MLflow, rejestruje niektóre parametry i metryki oraz dodaje tagi do kategoryzowania i zapewnienia dodatkowego kontekstu dla przebiegu.

import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing

# Autologging
mlflow.autolog()

# Load the California housing dataset
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target

# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Start an MLflow run
with mlflow.start_run() as run:

    # Train the model
    model = LinearRegression()
    model.fit(X_train, y_train)

    # Predict and evaluate
    y_pred = model.predict(X_test)
    
    # Add tags
    mlflow.set_tag("model_type", "Linear Regression")
    mlflow.set_tag("dataset", "California Housing")
    mlflow.set_tag("developer", "Bob")

Po zastosowaniu tagów można wyświetlić wyniki bezpośrednio za pomocą wbudowanego widżetu MLflow lub ze strony szczegółów przebiegu.

Zrzut ekranu przedstawiający tagi zastosowane do procesu na stronie szczegółów.

Ostrzeżenie

Ostrzeżenie : ograniczenia dotyczące stosowania tagów do przebiegów eksperymentów MLflow w Fabric

  • Tagi niepuste: Nazwy lub wartości tagów nie mogą być puste. Jeśli spróbujesz zastosować tag z pustą nazwą lub wartością, operacja zakończy się niepowodzeniem.
  • nazwy tagów: Nazwy tagów mogą mieć długość maksymalnie 250 znaków.
  • wartości tagów: wartości tagów mogą mieć długość do 5000 znaków.
  • nazwy tagów z ograniczeniami: nazwy tagów rozpoczynające się od niektórych prefiksów nie są obsługiwane. W szczególności nazwy tagów rozpoczynające się od synapseml, mlflowlub trident są ograniczone i nie zostaną zaakceptowane.

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 pośród nich.

Zrzut ekranu przedstawiający listę przebiegów i widok wykresu.

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 listy Widok Uruchom. Alternatywnie, możesz wybrać opcję Wyświetl listę uruchamiania bezpośrednio z widoku Szczegóły uruchomienia.
  3. Dostosuj kolumny w tabeli, rozwijając panel Dostosuj kolumny. W tym miejscu możesz wybrać właściwości, metryki, tagi 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ównaj przebiegi za pomocą interfejsu API 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 wyszukiwania MLflow mlflow.search_runs(), aby pobrać wszystkie przebiegi w eksperymencie, zastępując <EXPERIMENT_NAME> 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 usłudze MLflow wyszukiwanie w wielu eksperymentach. Może to być przydatne, jeśli chcesz porównać przebiegi w różnych eksperymentach.

Zamówienia i limity uruchomień

Aby ograniczyć liczbę zwracanych przebiegów, użyj parametru max_results z search_runs. Parametr order_by umożliwia wyświetlenie listy kolumn do kolejności i może zawierać opcjonalną wartość DESC lub ASC. Na przykład poniższa funkcja zwraca ostatni przebieg eksperymentu.

mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])

Porównaj wyniki w notesie Fabric

Możesz używać widżetu tworzenia MLFlow w notesach Fabric do śledzenia biegów 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 wizualne, możesz również przełączyć się na widok Porównaj. Ten widok przedstawia dane graficznie, ułatwiając szybką identyfikację wzorców lub odchyleń w różnych przebiegach.

Zrzut ekranu przedstawiający sposób korzystania z widżetu autorskiego w usłudze MLFlow.

Zapisz przebieg jako model uczenia maszynowego

Po uzyskaniu żądanego wyniku przebiegu możesz zapisać go jako model uczenia maszynowego, aby usprawnić śledzenie i wdrażanie modelu, wybierając pozycję Zapisz jako model uczenia maszynowego.

Zrzut ekranu pokazujący, gdzie wybrać opcję Utwórz nowy model.

Monitorowanie eksperymentów uczenia maszynowego (wersja zapoznawcza)

Eksperymenty uczenia maszynowego są zintegrowane bezpośrednio z monitorem. Ta funkcja została zaprojektowana w celu zapewnienia większego wglądu w aplikacje platformy Spark i generowane przez nie eksperymenty uczenia maszynowego, co ułatwia zarządzanie tymi procesami i ich debugowanie.

Śledzenie danych z monitora

Użytkownicy mogą śledzić przebiegi eksperymentów bezpośrednio z monitora, zapewniając ujednolicony widok wszystkich swoich działań. Ta integracja obejmuje opcje filtrowania, umożliwiając użytkownikom skoncentrowanie się na eksperymentach lub przebiegach utworzonych w ciągu ostatnich 30 dni lub innych określonych okresów.

Zrzut ekranu przedstawiający miejsce uruchamiania widoku na karcie monitora.

Eksperyment uczenia maszynowego jest zintegrowany bezpośrednio z monitorem, w którym można wybrać określoną aplikację platformy Spark i uzyskać dostęp do migawek elementów. W tym miejscu znajdziesz listę wszystkich eksperymentów i przebiegów generowanych przez aplikację.