Comparteix via


Elección de dónde se almacenan los datos de MLflow

Los servidores de seguimiento de MLflow almacenan y administran los datos, ejecuciones y modelos del experimento. Configure los servidores de seguimiento para controlar dónde se almacenan los datos de MLflow y cómo acceder a experimentos en distintos entornos.

Servidor de seguimiento hospedado en Databricks

De forma predeterminada, Databricks proporciona un servidor de seguimiento de MLflow administrado que:

  • No requiere ninguna configuración ni configuración adicional
  • Almacena los datos del experimento en el área de trabajo.
  • Se integra perfectamente con cuadernos y clústeres de Databricks

Establecimiento del experimento activo

De forma predeterminada, todas las ejecuciones de MLflow se registran en el servidor de seguimiento del área de trabajo mediante el experimento activo. Si no se establece explícitamente ningún experimento, las ejecuciones se registran en el experimento del cuaderno.

Controle dónde se registran las ejecuciones en Databricks estableciendo el experimento activo:

Mlflow.set_experiment()

Establezca un experimento para todas las ejecuciones posteriores en la ejecución.

import mlflow

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

Mlflow.start_run()

Establezca el experimento para una ejecución específica.

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

Variables de entorno

Establezca un experimento para todas las ejecuciones del entorno.

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

Configuración del seguimiento en un servidor de seguimiento remoto de MLflow

Es posible que tenga que configurar una conexión a un servidor de seguimiento remoto de MLflow. Esto podría deberse a que está desarrollando localmente y desea realizar un seguimiento en el servidor hospedado de Databricks, o bien desea realizar un seguimiento de un servidor de seguimiento de MLflow diferente. Por ejemplo, uno que se encuentra en un área de trabajo diferente.

Escenarios comunes para el seguimiento remoto:

Scenario Caso de uso
Seguimiento entre áreas de trabajo Seguimiento centralizado de experimentos en varias áreas de trabajo
Desarrollo local Desarrollo local pero seguimiento de experimentos en Databricks
Autohospedado remoto Infraestructura de MLflow personalizada con requisitos de cumplimiento específicos

Configuración del URI de seguimiento y el experimento

Para registrar experimentos en un servidor de seguimiento remoto, configure el URI de seguimiento y la ruta de acceso del experimento:

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)

Métodos de autenticación

Las conexiones del servidor de seguimiento remoto requieren una autenticación adecuada. Elija entre tokens de acceso personal (PAT) o OAuth mediante entidades de servicio.

PAT

Use PAT para la autenticación simple basada en tokens.

Pros: Configuración sencilla, buena para el desarrollo

Contras: Específico del usuario, requiere la administración manual de tokens

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 (entidad de servicio)

Use OAuth con credenciales de entidad de servicio para flujos de trabajo automatizados.

Pros: Mejor para la automatización, administración centralizada de identidades

Contras: Requiere la configuración de la entidad de servicio y la configuración de OAuth

Cree una entidad de servicio. Consulte Administración de entidades de servicio.

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