Condividi tramite


Scegliere dove vengono archiviati i dati MLflow

I server di rilevamento MLflow archiviano e gestiscono i dati, le esecuzioni e i modelli dell'esperimento. Configurare i server di rilevamento per controllare dove vengono archiviati i dati di MLflow e come accedere agli esperimenti in ambienti diversi.

Server di rilevamento ospitato da Databricks

Per impostazione predefinita, Databricks fornisce un server di rilevamento MLflow gestito che:

  • Non richiede alcuna configurazione o installazione aggiuntiva
  • Archivia i dati dell'esperimento nell'area di lavoro
  • Si integra perfettamente con notebook e cluster di Databricks

Impostare l'esperimento attivo

Per impostazione predefinita, tutte le esecuzioni di MLflow vengono registrate nel server di rilevamento dell'area di lavoro usando l'esperimento attivo. Se non viene impostato in modo esplicito alcun esperimento, le esecuzioni vengono registrate nell'esperimento del notebook.

Controllare dove vengono registrate le esecuzioni in Databricks impostando l'esperimento attivo:

Mlflow.set_experiment()

Impostare un esperimento per tutte le esecuzioni successive nell'esecuzione.

import mlflow

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

Mlflow.start_run()

Impostare l'esperimento per un'esecuzione specifica.

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

Variabili di ambiente

Impostare un esperimento per tutte le esecuzioni nell'ambiente.

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

Configurare il rilevamento in un server di rilevamento MLflow remoto

Potrebbe essere necessario configurare una connessione a un server di rilevamento MLflow remoto. Ciò potrebbe essere dovuto allo sviluppo in locale e alla vuoi tenere traccia del server ospitato di Databricks oppure vuoi tenere traccia di un server di rilevamento MLflow diverso. Ad esempio, una che si trova in un'area di lavoro diversa.

Scenari comuni per il rilevamento remoto:

Scenario Caso d'uso
Rilevamento tra aree di lavoro Rilevamento centralizzato degli esperimenti in più aree di lavoro
Sviluppo locale Sviluppare in locale ma tenere traccia degli esperimenti in Databricks
Self-hosted remoto Infrastruttura MLflow personalizzata con requisiti di conformità specifici

Configurare l'URI di rilevamento e l'esperimento

Per registrare gli esperimenti in un server di rilevamento remoto, configurare sia l'URI di rilevamento che il percorso dell'esperimento:

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)

Metodi di autenticazione

Le connessioni server di rilevamento remoto richiedono l'autenticazione corretta. Scegliere tra token di accesso personale (PAT) o OAuth usando le entità servizio.

Token di accesso personali (PAT)

Usare LET per l'autenticazione semplice basata su token.

Pro: Configurazione semplice, valida per lo sviluppo

Contro: Specifica dell'utente, richiede la gestione manuale dei token

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 (entità servizio)

Usare OAuth con le credenziali dell'entità servizio per i flussi di lavoro automatizzati.

Pro: Migliore per l'automazione, la gestione centralizzata delle identità

Contro: Richiede l'installazione dell'entità servizio e la configurazione OAuth

Creare un'entità servizio. Vedere Gestire le entità servizio.

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")