Choisissez où sont stockées vos données MLflow
Les serveurs de suivi MLflow stockent et gèrent les données, les exécutions et les modèles de vos expérimentations. Configurez vos serveurs de suivi pour contrôler où vos données MLflow sont stockées et comment accéder aux expérimentations dans différents environnements.
Serveur de suivi hébergé par Databricks
Par default, Databricks fournit un serveur de suivi MLflow géré qui :
- Ne nécessite aucune configuration ou installation supplémentaire
- Stocke les données d'expérimentation dans votre workspace
- S'intègre parfaitement aux Notebooks et clusters Databricks
Définir l'expérimentation active
Par défaut, toutes les exécutions MLflow sont journalisées sur le serveur de suivi du Workspace à l'aide de l'Expérimentation active. Si aucune expérimentation n'est explicitement définie, les exécutions sont enregistrées dans l'expérimentation du Notebook.
Contrôlez où les exécutions sont enregistrées dans Databricks en définissant l'expérimentation active :
- Mlflow.set_experiment()
- Mlflow.start_run()
- Environment variables
Définissez une expérimentation pour toutes les exécutions ultérieures dans l'exécution.
import mlflow
mlflow.set_experiment("/Shared/my-experiment")
Définir l'expérimentation pour une exécution spécifique.
with mlflow.start_run(experiment_id="12345"):
mlflow.log_param("learning_rate", 0.01)
Configurer une expérimentation 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"
Configurez le suivi vers un serveur de suivi MLflow distant
Vous devrez peut-être configurer une connexion vers un serveur de suivi MLflow distant. Cela peut être dû au fait que vous développez localement et que vous souhaitez suivre par rapport au serveur hébergé Databricks, ou que vous souhaitez suivre sur un autre serveur de suivi MLflow. Par exemple, un qui se trouve dans un autre workspace.
Scénarios courants pour le suivi à distance :
Scénario | Cas d'usage |
|---|---|
Suivi inter-workspace | Suivi centralisé des Experimentation sur plusieurs Workspaces |
Développement local | Développez localement mais suivez l'expérimentation dans Databricks |
Auto-hébergé à distance | Infrastructure MLflow personnalisée avec des exigences de conformité spécifiques |
Configurer l'URI de suivi et l'Experimentation
Pour journaliser les expérimentations sur un serveur de suivi distant, configurez à la fois l'URI de suivi et le chemin d'expérimentation :
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 au serveur de suivi distant nécessitent une authentification appropriée. Choisissez entre les jetons d'accès personnels (PAT) ou OAuth à l'aide de Service Principal.
- PAT
- OAuth (service principal)
Utilisez des PAT pour une authentification simple par jetons.
Avantages : Configuration simple, bon pour le développement
Inconvénients : 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")
Utiliser OAuth avec les informations d'identification du service principal pour les workflows automatisés.
Avantages : Mieux pour l’automatisation, gestion centralisée des identités
Inconvénients : nécessite la configuration du Service Principal et la configuration OAuth
Créer un Service Principal. Consultez Gérer les Service Principals.
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")