Ajoutez une ressource d'expérimentation MLflow à une application Databricks.
Ajoutez les expérimentations MLflow en tant que ressources Databricks Apps pour activer le suivi des expérimentations pour vos applications d'IA, agents, LLM et modèles ML. Les expérimentations MLflow offrent un moyen structuré d'organiser et de Log les exécutions, de suivre les paramètres, les métriques et les artefacts tout au long du cycle de vie du développement d'applications d'IA.
Lorsque vous ajoutez une expérimentation MLflow en tant que ressource, votre application peut :
- Déboguer les agents et les applications LLM avec les traces d'exécution
- Évaluez la qualité des applications agent et LLM avec des scorers
- Gérer et versionner les templates de prompt pour les applications LLM
- Log les exécutions d'entraînement des modèles ML avec des paramètres, des métriques et des artefacts.
- Récupérer les données d'Experimentation, les métadonnées et l'historique des exécutions
Ajouter une Ressource d'Experimentation MLflow
Avant d'ajouter une Expérimentation MLflow en tant que Ressource, consultez les conditions préalables aux ressources d'application.
-
Dans la section **Ressources de l'application**, lorsque vous créez ou modifiez une application, cliquez sur **+ Ajouter une ressource** > **Expérimentation MLflow**.
-
Choisissez une Expérimentation MLflow parmi la liste des expérimentations disponibles dans votre Workspace.
-
Sélectionnez le niveau d’autorisation approprié pour votre application :
- « Peut lire » : Accorde à l'application la permission de visualiser les métadonnées de l'expérimentation, les exécutions, les paramètres et les métriques. À utiliser pour les applications qui affichent les résultats de l'expérimentation.
- Modification autorisée : octroie à l'application l'autorisation de modifier les paramètres d'Experimentation et les métadonnées.
- Peut gérer : accorde à l’application un accès administratif complet à l’experimentation.
-
(Facultatif) Spécifiez une clé de ressource personnalisée, qui est la façon dont vous référencez l'expérimentation dans la configuration de votre application. La clé default est
experiment.
Lorsque vous ajoutez une ressource d'expérimentation MLflow :
- Databricks accorde au service principal de votre application les autorisations spécifiées sur l'expérimentation sélectionnée.
- L'application peut log les exécutions d'entraînement et accéder aux données d'expérimentation via l'API MLflow Tracking.
- L'accès est limité à l'expérimentation sélectionnée uniquement. Votre application ne peut pas accéder à d'autres expérimentations à moins que vous ne les ajoutiez en tant que ressources distinctes.
Une ressource d’Experimentation MLflow accorde des autorisations au niveau du Workspace sur l’Experimentation. Si l’expérimentation stocke des traces dans Unity Catalog, ajoutez les quatre tables de traces Unity Catalog en tant que ressources d’application. L’accès aux traces dans ces tables est régi par les privilèges Unity Catalog, et non par les autorisations de l’expérimentation.
Variables d'environnement
Lorsque vous déployez une application avec une ressource d'expérimentation MLflow, Databricks expose l'ID de l'expérimentation via des variables d'environnement que vous pouvez référencer à l'aide du champ valueFrom dans votre configuration app.yaml.
Exemple de configuration :
env:
- name: MLFLOW_EXPERIMENT_ID
valueFrom: experiment # Use your custom resource key if different
Utilisation de l'ID d'Experimentation dans votre application :
import os
import mlflow
# Access the experiment using the injected environment variable
experiment_id = os.getenv("MLFLOW_EXPERIMENT_ID")
# Set the experiment for tracking
mlflow.set_experiment(experiment_id=experiment_id)
# Log parameters and metrics
with mlflow.start_run():
mlflow.log_param("learning_rate", 0.01)
mlflow.log_metric("accuracy", 0.95)
mlflow.log_artifact("model.pkl")
Pour plus d'informations, consultez Accéder aux variables d'environnement depuis les ressources.
Stocker les traces MLflow dans Unity Catalog
Pour écrire des traces MLflow depuis une application vers Unity Catalog, commencez par créer une expérimentation avec un emplacement de traces Unity Catalog. Spécifiez un préfixe de table afin que les noms des quatre tables de traces soient prévisibles.
Ajoutez l’expérimentation à l’application avec l’autorisation CAN_EDIT. Ajoutez ensuite chacune des tables Unity Catalog suivantes en tant que ressource d’application distincte avec l’autorisation MODIFY :
<table_prefix>_otel_annotations<table_prefix>_otel_logs<table_prefix>_otel_metrics<table_prefix>_otel_spans
L’autorisation MODIFY accorde au Service Principal de l’application à la fois MODIFY et SELECT sur chaque table. Databricks Apps accorde également automatiquement USE CATALOG et USE SCHEMA sur le catalogue parent et le schéma.
L’exemple suivant de Declarative Automation Bundles configure l’Experimentation et ses quatre tables de traces en tant que Ressources d’application :
resources:
apps:
my_app:
name: 'my-app'
source_code_path: ./app
resources:
- name: 'experiment'
experiment:
experiment_id: '<experiment-id>'
permission: 'CAN_EDIT'
- name: 'trace-annotations'
uc_securable:
securable_full_name: '<catalog>.<schema>.<table_prefix>_otel_annotations'
securable_type: 'TABLE'
permission: 'MODIFY'
- name: 'trace-logs'
uc_securable:
securable_full_name: '<catalog>.<schema>.<table_prefix>_otel_logs'
securable_type: 'TABLE'
permission: 'MODIFY'
- name: 'trace-metrics'
uc_securable:
securable_full_name: '<catalog>.<schema>.<table_prefix>_otel_metrics'
securable_type: 'TABLE'
permission: 'MODIFY'
- name: 'trace-spans'
uc_securable:
securable_full_name: '<catalog>.<schema>.<table_prefix>_otel_spans'
securable_type: 'TABLE'
permission: 'MODIFY'
Pour toutes les exigences de traçage Unity Catalog, y compris les autorisations nécessaires pour créer et gérer les tables, consultez Stocker les traces OpenTelemetry dans Unity Catalog.
Supprimer une ressource d'Experimentation MLflow
Lorsque vous supprimez une ressource d’expérimentation MLflow d’une application, le Service Principal de l’application perd l’accès à l’expérimentation. L’expérimentation elle-même reste inchangée et continue d’être disponible pour les autres utilisateurs et applications qui disposent des autorisations appropriées.
Bonnes pratiques
Suivez ces meilleures pratiques lorsque vous travaillez avec les ressources d'Expérimentation MLflow :
- Organisez les expérimentations logiquement par projet ou type de modèle pour améliorer la découvrabilité.
- Utilisez des conventions de nommage cohérentes pour les exécutions et les parameters au sein de votre organisation.
- Tenez compte des politiques de rétention des expérimentations et de la gestion du stockage pour les projets à long terme.