Udostępnij za pośrednictwem


Wyświetlanie wyników trenowania za pomocą przebiegów platformy MLflow

W tym artykule opisano sposób używania przebiegów platformy MLflow do wyświetlania i analizowania wyników eksperymentu trenowania modelu oraz sposobu zarządzania przebiegami i organizowania ich. Aby uzyskać więcej informacji na temat eksperymentów MLflow, zobacz Organizowanie przebiegów trenowania przy użyciu eksperymentów MLflow.

Uruchomienie platformy MLflow odpowiada pojedynczemu wykonaniu kodu modelu. Każdy przebieg rejestruje informacje, takie jak notatnik, który uruchomił przebieg, wszelkie modele utworzone podczas przebiegu, model parameters i metryki zapisane jako pary klucz-wartość, tagi dotyczące metadanych przebiegu oraz wszystkie artefakty lub pliki wyjściowe utworzone przez przebieg.

Wszystkie przebiegi platformy MLflow są rejestrowane w aktywnym eksperymencie. Jeśli nie set jawnie eksperymentu jako aktywnego eksperymentu, przebiegi są rejestrowane w eksperymencie notesu.

Wyświetlanie szczegółów przebiegu

Możesz uzyskać dostęp do uruchomienia ze strony szczegółów eksperymentu lub bezpośrednio z notatnika, który utworzył uruchomienie.

Na stronie szczegółów eksperymentu kliknij nazwę przebiegu w sekcji przebiegów table.

Otwórz przebieg eksperymentu na stronie szczegółów eksperymentu.

W notatniku kliknij nazwę przebiegu na pasku bocznym "Przebiegi eksperymentów".

Otwórz przebieg eksperymentu z notatnika.

Ekran uruchamiania pokazuje identyfikator przebiegu, parameters używany do uruchomienia, metryki wynikające z przebiegu oraz szczegółowe informacje o przebiegu, w tym link do notesu źródłowego. Artefakty zapisane w przebiegu są dostępne na karcie Artifacts.

Wyświetl przebieg

Fragmenty kodu do przewidywania

Jeśli logujesz model z przebiegu, model pojawi się na karcie Artifacts wraz z fragmentami kodu ilustrującymi sposób ładowania i używania modelu do przewidywania ramek danych Spark i Pandas.

przewidywanie fragmentów kodu

Zobacz notatnik używany do uruchomienia

Aby wyświetlić wersję notesu , która utworzyła przebieg:

  • Na stronie szczegółów eksperymentu kliknij link w Sourcecolumn.
  • Na stronie uruchamiania kliknij link obok pozycji Źródło.
  • W notesie na pasku bocznym Przebiegi eksperymentów kliknij ikonę Notebook Version Icon Notes w polu dla tego przebiegu eksperymentu.

Wersja notatnika powiązanego z uruchomieniem jest wyświetlana w głównym oknie window, z paskiem wyróżniającym przedstawiającym datę i godzinę uruchomienia.

Dodawanie tagu do przebiegu

Tagi to pary klucz-wartość, które można utworzyć i użyć później do wyszukiwania przebiegów.

  1. W Szczegółytable na stronie uruchamiania kliknij przycisk Dodaj obok pozycji Tagi .

    tag table

  2. Zostanie otwarte okno dialogowe Dodawanie/edytowanie tagów. W polu klucz wprowadź nazwę klucza, a następnie kliknij Dodaj tag.

    Dodaj tag.

  3. W polu Wartość wprowadź wartość tagu.

  4. Kliknij znak plusa, aby zapisać wprowadzoną parę klucz-wartość.

    znak Plus, aby zapisać parę klucz-wartość.

  5. Aby dodać dodatkowe tagi, powtórz kroki od 2 do 4.

  6. Po zakończeniu kliknij pozycję Zapisz tagi.

Edytowanie lub usuwanie tagu dla przebiegu

  1. W Detailstable na stronie uruchamiania kliknij przycisk Ikona ołówka. obok istniejących tagów.

    tag table

  2. Zostanie otwarte okno dialogowe Dodawanie/edytowanie tagów.

    1. Aby usunąć tag, kliknij znak X na tym tagu.

      Usuń tag.

    2. Aby edytować tag, select klucz z menu rozwijanego i edytować wartość w polu Wartość. Kliknij znak plusa, aby zapisać zmianę.

      Edytuj tag.

  3. Po zakończeniu kliknij pozycję Zapisz tagi.

Odtworzenie środowiska oprogramowania przebiegu

Możesz odtworzyć dokładne środowisko oprogramowania dla przebiegu, klikając Odtwórz przebieg w prawym górnym rogu strony przebiegu. Zostanie wyświetlone następujące okno dialogowe:

Odtwórz okno dialogowe uruchamiania

Przy użyciu ustawień domyślnych po kliknięciu przycisku Potwierdź:

  • Notes jest klonowany do lokalizacji wyświetlanej w oknie dialogowym.
  • Jeśli oryginalny klaster nadal istnieje, sklonowany notes jest dołączony do oryginalnego klastra i jest uruchamiany.
  • Jeśli oryginalny klaster już nie istnieje, zostanie utworzony i uruchomiony nowy klaster z tą samą konfiguracją, w tym wszystkie zainstalowane biblioteki. Notes jest dołączony do nowego klastra.

Możesz select inną lokalizację sklonowanego notesu i sprawdzić konfigurację klastra i zainstalowane biblioteki:

  • Aby select inny folder do zapisu sklonowanego notesu, kliknij Edytuj folder.
  • Aby wyświetlić specyfikację klastra, kliknij pozycję Wyświetl specyfikację. Aby sklonować tylko notes, a nie klaster, usuń zaznaczenie tej opcji.
  • Jeśli oryginalny klaster już nie istnieje, możesz wyświetlić biblioteki zainstalowane w oryginalnym klastrze, klikając pozycję Wyświetl biblioteki. Jeśli oryginalny klaster nadal istnieje, ta sekcja jest wyszarajona.

Zmień nazwę przebiegu

Aby zmienić nazwę przebiegu, kliknij menu kebab menu Kebab w prawym górnym rogu strony przebiegu (obok przycisku Uprawnienia) i selectzmień nazwę.

Zmień nazwę przebiegu na stronie przebiegu.

Select columns do wyświetlenia

Aby kontrolować columns wyświetlane w uruchomieniach table na stronie szczegółów eksperymentu, wybierz Columns i select z menu rozwijanego.

Uruchomienia filtrów

Możesz wyszukać przebiegi w table na stronie szczegółów eksperymentu w oparciu o parametr lub metrykę values. Możesz również wyszukać uruchomienia według tagu.

  • Aby wyszukać uruchomienia zgodne z wyrażeniem zawierającym parametr i metrykę values, wprowadź zapytanie w polu wyszukiwania i naciśnij Enter. Oto kilka przykładów składni zapytań:

    metrics.r2 > 0.3

    params.elasticNetParam = 0.5

    params.elasticNetParam = 0.5 AND metrics.avg_areaUnderROC > 0.3

    MIN(metrics.rmse) <= 1

    MAX(metrics.memUsage) > 0.9

    LATEST(metrics.memUsage) = 0 AND MIN(metrics.rmse) <= 1

    Domyślnie metryki values są filtrowane na podstawie ostatniej zarejestrowanej wartości. Użycie MIN lub MAX umożliwia wyszukiwanie przebiegów na podstawie minimalnej lub maksymalnej metryki values, odpowiednio. Tylko przebiegi rejestrowane po sierpniu 2024 r. mają minimalną i maksymalną metrykę values.

  • Aby wyszukać uruchomienia według tagu, wprowadź tagi w formacie: tags.<key>="<value>". Tekst values musi być ujęty w cudzysłowach, jak pokazano.

    tags.estimator_name="RandomForestRegressor"

    tags.color="blue" AND tags.size=5

    Zarówno klucze, jak i values mogą zawierać spacje. Jeśli klucz zawiera spacje, należy go ująć w backticks, jak pokazano poniżej.

    tags.`my custom tag` = "my value"
    

Można również filtrować przebiegi na podstawie ich stanu (aktywne lub usunięte), gdy przebieg został utworzony i jakie zestawy danych zostały użyte. W tym celu należy dokonać wyboru z menu rozwijanych Czas utworzony, Stanlub Datasets.

Uruchomienia filtrów

Przebiegi pobierania

Przebiegi można pobrać ze strony szczegółów eksperymentu w następujący sposób:

  1. Kliknij menu Kebab, aby otworzyć menu kebab.

    Menu kebabu z opcjami pobierania na stronie Eksperymenty.

  2. Aby pobrać plik w formacie CSV zawierający wszystkie wyświetlane uruchomienia (maksymalnie 100), selectPobierz <n> uruchomienia. MLflow tworzy i pobiera plik z jednym wykonaniem na wiersz, zawierający następujące pola dla każdego wykonania:

    Start Time, Duration, Run ID, Name, Source Type, Source Name, User, Status, <parameter1>, <parameter2>, ..., <metric1>, <metric2>, ...
    
  3. Jeśli chcesz pobrać więcej niż 100 uruchomień lub chcesz pobrać uruchomienia programistycznie, selectPobierz wszystkie uruchomienia. Zostanie otwarte okno dialogowe z fragmentem kodu, który można skopiować lub otworzyć w notesie. Po uruchomieniu tego kodu w komórce notesu selectPobierz wszystkie wiersze z danych wyjściowych komórki.

Usuwanie przebiegów

Możesz usunąć przebiegi ze strony szczegółów eksperymentu, wykonując następujące kroki:

  1. W eksperymencie select zaznacz jeden lub więcej przebiegów, klikając pole wyboru po lewej stronie przebiegu.
  2. Kliknij Usuń.
  3. Jeśli przebieg jest przebiegiem nadrzędnym, zdecyduj, czy chcesz również usunąć przebiegi elementów potomnych. Ta opcja jest domyślnie wybrana.
  4. Kliknij przycisk Usuń , aby potwierdzić. Usunięte przebiegi są zapisywane przez 30 dni. Aby wyświetlić usunięte uruchomienia, selectUsunięto w polu Stan.

Operacje usuwania zbiorczego są uruchamiane na podstawie czasu tworzenia

Możesz użyć języka Python do zbiorczego usuwania przebiegów eksperymentu utworzonego przed znacznikiem czasu systemu UNIX lub . Za pomocą środowiska Databricks Runtime 14.1 lub nowszego można wywołać mlflow.delete_runs interfejs API, aby usunąć przebiegi i zwrócić liczbę usuniętych przebiegów.

Poniżej przedstawiono mlflow.delete_runsparameters:

  • experiment_id: identyfikator eksperymentu zawierającego przebiegi do usunięcia.
  • max_timestamp_millis: maksymalny znacznik czasu tworzenia w milisekundach od epoki systemu UNIX do usuwania przebiegów. Usuwane są tylko uruchomienia utworzone przed znacznikami czasu lub w tym momencie.
  • max_runs:Fakultatywny. Dodatnia liczba całkowita wskazująca maksymalną liczbę przebiegów do usunięcia. Maksymalna dozwolona wartość dla max_runs to 10000. Jeśli nie zostanie określony, max_runs wartość domyślna to 10000.
import mlflow

# Replace <experiment_id>, <max_timestamp_ms>, and <max_runs> with your values.
runs_deleted = mlflow.delete_runs(
  experiment_id=<experiment_id>,
  max_timestamp_millis=<max_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_deleted = mlflow.delete_runs(
  experiment_id="4183847697906956",
  max_timestamp_millis=1711990504000,
  max_runs=10
)

Za pomocą środowiska Databricks Runtime 13.3 LTS lub starszego można uruchomić następujący kod klienta w notesie usługi Azure Databricks.

from typing import Optional

def delete_runs(experiment_id: str,
                max_timestamp_millis: int,
                max_runs: Optional[int] = None) -> int:
    """
    Bulk delete runs in an experiment that were created prior to or at the specified timestamp.
    Deletes at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to delete.
    :param max_timestamp_millis: The maximum creation timestamp in milliseconds
                                 since the UNIX epoch for deleting runs. Only runs
                                 created prior to or at this timestamp are deleted.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to delete. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs deleted.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request

    json_body = {"experiment_id": experiment_id, "max_timestamp_millis": max_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/delete-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_deleted"]

Zapoznaj się z dokumentacją interfejsu API eksperymentów usługi Azure Databricks, aby uzyskać parameters oraz specyfikacje wartości zwracanej dla usunięcia przebiegów na podstawie czasu utworzenia.

Restore przebiegi

Możesz restore poprzednio usuniętych przebiegów z interfejsu użytkownika w następujący sposób:

  1. Na stronie Experiment (Eksperyment ) w polu State (Stan ) Usunięto w celu wyświetlenia usuniętych przebiegów.
  2. Select wybierz jeden lub więcej przebiegów, klikając pole wyboru po lewej stronie przebiegu.
  3. Kliknij pozycję Restore.
  4. Kliknij Restore, aby potwierdzić. Przywrócone uruchomienia są teraz widoczne po wyborze opcji selectAktywne w polu Stan.

zbiorcze restore jest uruchamiane na podstawie czasu usunięcia

Możesz również użyć języka Python do zbiorczego przetwarzania restore przebiegów eksperymentu, które zostały usunięte o lub po znaczniku czasu systemu UNIX. Korzystając z środowiska Databricks Runtime 14.1 lub nowszego, możesz wywołać interfejs API mlflow.restore_runs w celu restore przebiegów i zwrócić liczbę przywróconych przebiegów.

Poniżej przedstawiono mlflow.restore_runsparameters:

  • experiment_id: identyfikator eksperymentu zawierającego przebiegi do restore.
  • min_timestamp_millis: minimalny znacznik czasu usuwania w milisekundach od epoki systemu UNIX na potrzeby przywracania przebiegów. Przywracana jest tylko sygnatura czasowa usunięta lub po tej sygnaturze czasowej.
  • max_runs:Fakultatywny. Dodatnia liczba całkowita wskazująca maksymalną liczbę przebiegów do restore. Maksymalna dozwolona wartość dla max_runs to 10000. Jeśli nie zostanie określony, max_runs wartość domyślna to 10000.
import mlflow

# Replace <experiment_id>, <min_timestamp_ms>, and <max_runs> with your values.
runs_restored = mlflow.restore_runs(
  experiment_id=<experiment_id>,
  min_timestamp_millis=<min_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_restored = mlflow.restore_runs(
  experiment_id="4183847697906956",
  min_timestamp_millis=1711990504000,
  max_runs=10
)

Za pomocą środowiska Databricks Runtime 13.3 LTS lub starszego można uruchomić następujący kod klienta w notesie usługi Azure Databricks.

from typing import Optional

def restore_runs(experiment_id: str,
                 min_timestamp_millis: int,
                 max_runs: Optional[int] = None) -> int:
    """
    Bulk restore runs in an experiment that were deleted at or after the specified timestamp.
    Restores at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to restore.
    :param min_timestamp_millis: The minimum deletion timestamp in milliseconds
                                 since the UNIX epoch for restoring runs. Only runs
                                 deleted at or after this timestamp are restored.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to restore. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs restored.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request
    json_body = {"experiment_id": experiment_id, "min_timestamp_millis": min_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/restore-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_restored"]

Zapoznaj się z dokumentacją interfejsu API eksperymentów usługi Azure Databricks, aby uzyskać informacje o parameters oraz specyfikacje wartości zwracanych dla przebiegów przywracanych na podstawie czasu usunięcia.

Porównywanie przebiegów

Możesz porównać przebiegi z jednego eksperymentu lub z wielu eksperymentów. Na stronie Porównanie przebiegów przedstawiono informacje o wybranych przebiegach w formacie tabelarycznym. Można również tworzyć wizualizacje wyników przebiegu, informacji o przebiegu tables, jak również uruchomień parametersi metryk. Zobacz Porównanie przebiegów MLflow przy użyciu wykresów i diagramów.

Metrics dla i pokazują przebieg oraz metryki ze wszystkich wybranych przebiegów. columns w tych tables są identyfikowane przez szczegóły uruchamiania table bezpośrednio powyżej. Dla uproszczenia można ukryć parameters i metryki, które są identyczne we wszystkich wybranych uruchomieniach, przełączając przycisk Pokaż tylko różnice.

strona porównywania przebiegów tables

Porównanie przebiegów z jednego eksperymentu

  1. Na stronie szczegółów eksperymentu select co najmniej dwa uruchomienia, klikając pole wyboru po lewej stronie przebiegu lub select wszystkie uruchomienia, zaznaczając pole u góry column.
  2. Kliknij pozycję Porównaj. Zostanie wyświetlony ekran Porównanie <N> przebiegów.

Porównanie przebiegów z wielu eksperymentów

  1. Na stronie eksperymentów wybierz eksperymenty do porównania, klikając w pole po lewej stronie nazwy eksperymentu select.
  2. Kliknij pozycję Porównaj (n) (n to liczba wybranych eksperymentów). Zostanie wyświetlony ekran przedstawiający wszystkie przebiegi z wybranych eksperymentów.
  3. Select co najmniej dwa przebiegi, zaznaczając pole wyboru po lewej stronie każdego przebiegu, lub select wszystkie przebiegi, zaznaczając pole wyboru na górze column.
  4. Kliknij pozycję Porównaj. Zostanie wyświetlony ekran Porównanie <N> przebiegów.

Kopiowanie przebiegów między obszarami roboczymi

Aby zaimportować lub wyeksportować przebiegi platformy MLflow do lub z obszaru roboczego usługi Databricks, możesz użyć projektu open source opartego na społeczności MLflow Export-Import.