Udostępnij przez


Wybieranie miejsca przechowywania danych MLflow

Serwery śledzenia MLflow przechowują dane eksperymentów, przebiegi i modele oraz zarządzaj nimi. Skonfiguruj serwery śledzenia, aby kontrolować, gdzie są przechowywane dane MLflow i jak uzyskiwać dostęp do eksperymentów w różnych środowiskach.

Serwer śledzenia hostowany w usłudze Databricks

Domyślnie usługa Databricks udostępnia zarządzany serwer śledzenia MLflow, który:

  • Nie wymaga dodatkowej konfiguracji ani konfiguracji
  • Przechowuje dane eksperymentu w obszarze roboczym
  • Bezproblemowo integruje się z notesami i klastrami usługi Databricks

Ustawianie aktywnego eksperymentu

Domyślnie wszystkie przebiegi platformy MLflow są rejestrowane na serwerze śledzenia obszaru roboczego przy użyciu aktywnego eksperymentu. Jeśli żaden eksperyment nie jest jawnie ustawiony, przebiegi są rejestrowane w eksperymencie notesu.

Określ, gdzie przebiegi są rejestrowane w usłudze Databricks, ustawiając aktywny eksperyment:

Mlflow.set_experiment()

Ustaw eksperyment dla wszystkich kolejnych przebiegów w wykonaniu.

import mlflow

mlflow.set_experiment("/Shared/my-experiment")

Mlflow.start_run()

Ustaw eksperyment dla określonego przebiegu.

with mlflow.start_run(experiment_id="12345"):
    mlflow.log_param("learning_rate", 0.01)

Zmienne środowiskowe

Ustaw eksperyment dla wszystkich przebiegów w środowisku.

import os
os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Shared/my-experiment"
# or
os.environ["MLFLOW_EXPERIMENT_ID"] = "12345"

Konfigurowanie śledzenia na zdalnym serwerze śledzenia MLflow

Może być konieczne skonfigurowanie połączenia z zdalnym serwerem śledzenia MLflow. Może to być spowodowane tym, że programujesz lokalnie i chcesz śledzić serwer hostowany w usłudze Databricks lub chcesz śledzić inny serwer śledzenia MLflow. Na przykład taki, który znajduje się w innym obszarze roboczym.

Typowe scenariusze śledzenia zdalnego:

Scenario Przypadek użycia
Śledzenie między obszarami roboczymi Scentralizowane śledzenie eksperymentów w wielu obszarach roboczych
Programowanie lokalne Programowanie lokalnie, ale śledzenie eksperymentów w usłudze Databricks
Zdalne self-hosted Niestandardowa infrastruktura MLflow z określonymi wymaganiami dotyczącymi zgodności

Konfigurowanie identyfikatora URI śledzenia i eksperymentu

Aby rejestrować eksperymenty na serwerze śledzenia zdalnego, skonfiguruj zarówno identyfikator URI śledzenia, jak i ścieżkę eksperymentu:

import mlflow

# Set the tracking URI to the remote server
mlflow.set_tracking_uri("databricks://remote-workspace-url")

# Set the experiment path in the remote server
mlflow.set_experiment("/Shared/centralized-experiments/my-project")

# All subsequent runs will be logged to the remote server
with mlflow.start_run():
    mlflow.log_param("model_type", "random_forest")
    mlflow.log_metric("accuracy", 0.95)

Metody uwierzytelniania

Połączenia serwera śledzenia zdalnego wymagają odpowiedniego uwierzytelniania. Wybierz między osobistymi tokenami dostępu (PAT) lub OAuth przy użyciu jednostek usługi.

osobisty token dostępu

Użyj paT do prostego uwierzytelniania opartego na tokenach.

Plusy: Prosta konfiguracja, dobra do programowania

Minusy: Specyficzne dla użytkownika wymaga ręcznego zarządzania tokenami

import os

# Set authentication token
os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"

# Configure remote tracking
mlflow.set_tracking_uri("databricks://remote-workspace-url")
mlflow.set_experiment("/Shared/remote-experiment")

OAuth (jednostka usługi)

Użyj protokołu OAuth z poświadczeniami jednostki usługi dla zautomatyzowanych przepływów pracy.

Plusy: Lepsze w przypadku automatyzacji, scentralizowanego zarządzania tożsamościami

Minusy: Wymaga konfiguracji jednostki usługi i protokołu OAuth

Utwórz jednostkę usługi. Zobacz Zarządzanie jednostkami usługi.

import os

# Set service principal credentials
os.environ["DATABRICKS_CLIENT_ID"] = "your-service-principal-client-id"
os.environ["DATABRICKS_CLIENT_SECRET"] = "your-service-principal-secret"

# Configure remote tracking
mlflow.set_tracking_uri("databricks://remote-workspace-url")
mlflow.set_experiment("/Shared/remote-experiment")