Partager via


Choisissez l’emplacement de stockage de vos données MLflow

Les serveurs de suivi MLflow stockent et gèrent vos données d’expérience, les exécutions et les modèles. Configurez vos serveurs de suivi pour contrôler où vos données MLflow sont stockées et comment accéder aux expériences dans différents environnements.

Serveur de suivi hébergé par Databricks

Par défaut, Databricks fournit un serveur de suivi MLflow managé qui :

  • Nécessite aucune configuration ou configuration supplémentaire
  • Stocke les données d’expérience dans votre espace de travail
  • S’intègre en toute transparence aux notebooks et clusters Databricks

Définir l’expérience active

Par défaut, toutes les exécutions MLflow sont journalisées sur le serveur de suivi de l’espace de travail à l’aide de l’expérience active. Si aucune expérience n’est définie explicitement, les exécutions sont enregistrées dans l’expérience de notebook.

Contrôler où les exécutions sont journalisées dans Databricks en définissant l’expérience active :

Mlflow.set_experiment()

Définissez une expérience pour toutes les exécutions suivantes dans l’exécution.

import mlflow

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

Mlflow.start_run()

Définissez l’expérience pour une exécution spécifique.

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

Variables d'environnement

Définissez une expérience pour toutes les exécutions dans l’environnement.

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

Configurer le suivi sur un serveur de suivi MLflow distant

Vous devrez peut-être configurer une connexion à un serveur de suivi MLflow distant. Cela peut être dû au fait que vous développez localement et que vous souhaitez effectuer le suivi sur le serveur hébergé Databricks, ou que vous souhaitez effectuer le suivi vers un autre serveur de suivi MLflow. Par exemple, un autre espace de travail.

Scénarios courants pour le suivi à distance :

Scénario Cas d’usage
Suivi inter-espaces de travail Suivi centralisé des expériences entre plusieurs espaces de travail
Développement local Développer localement mais suivre des expériences dans Databricks
Auto-hébergé à distance Infrastructure MLflow personnalisée avec des exigences de conformité spécifiques

Configurer l’URI de suivi et l’expérience

Pour consigner des expériences sur un serveur de suivi à distance, configurez à la fois l’URI de suivi et le chemin d’accès de l’expérience :

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éthodes d’authentification

Les connexions de serveur de suivi à distance nécessitent une authentification appropriée. Choisissez entre les jetons d’accès personnel (PAT) ou OAuth à l’aide de principaux de service.

Jeton d’accès personnel

Utilisez des PAT pour l’authentification simple basée sur des jetons.

Avantages: Configuration simple, bonne pour le développement

Contre: Spécifique à l’utilisateur, nécessite une gestion manuelle des jetons

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 (principal de service)

Utilisez OAuth avec les informations d’identification du principal de service pour les flux de travail automatisés.

Avantages: Mieux pour l’automatisation, la gestion centralisée des identités

Contre: Nécessite la configuration du principal de service et la configuration OAuth

Créez un principal de service. Consultez Gérer les principaux de service.

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