Suivi des Experimentation et observabilité
Aperçu
Cette fonctionnalité est en aperçu public.
AI Runtime s’intègre à MLflow pour fournir le suivi des expérimentations et l’observabilité. MLflow fournit un emplacement unique pour les parameters, les métriques, les métriques système GPU, les Logs et les artefacts d’une exécution, que vous développiez dans un Notebook, soumettiez une charge de travail avec la CLI databricks air ou planifiiez un Job.
Ce que fournit MLflow
Une Experimentation MLflow regroupe les exécutions d’entraînement associées, et chaque exécution fournit un enregistrement permanent de la configuration et des résultats de l’entraînement.
- Métriques et parameter : enregistrez la perte d’entraînement, les métriques d’évaluation, les taux d’apprentissage et les hyperparameters, puis comparez-les entre les exécutions.
- Métriques système : consultez l’utilisation du GPU, du CPU et de la mémoire pour les exécutions gérées dans l’ Métriques système tab.
- Log : affichez la sortie du Driver pour une charge de travail reposant sur un Job dans le tab Log de l’exécution.
- Artefacts et modèles : stockez les fichiers de modèle, les configurations et autres sorties avec l’exécution. Utilisez un volume Unity Catalog pour les artefacts volumineux ou durables.
- Partage et collaboration : accordez l’accès à une Experimentation afin que d’autres utilisateurs du Workspace puissent consulter et comparer ses exécutions. Voir Organiser les exécutions d’entraînement avec les expérimentations MLflow.
- Intégrations de frameworks : utilisez les intégrations MLflow avec Hugging Face Transformers, PyTorch Lightning et d’autres bibliothèques prises en charge.
Pour les charges de travail associées à un job, telles que celles soumises avec databricks air run, l’exécution du job Databricks complète MLflow en enregistrant l’état d’exécution, le compute, les tentatives et la sortie du Driver.
Comment sont créées les exécutions MLflow
How vous start ou rejoignez une exécution MLflow dépend de la façon dont vous start la charge de travail :
Comment exécuter la charge de travail | Comment l’exécution MLflow start | Comment sélectionner l’Experimentation |
|---|---|---|
CLI Databricks ( | Chaque tentative crée automatiquement une exécution. | Définissez |
Notebook avec le SDK Databricks AI Runtime ( | Chaque appel crée automatiquement une exécution. | Appelez |
Code exécuté directement dans un Notebook attaché | Aucune exécution n’est créée automatiquement. Utilisez | Appelez |
Planifiée | La tâche crée automatiquement une exécution. | Définissez |
Après que votre code a start l’exécution correcte ou l’a rejointe, utilisez l’API de suivi MLflow pour enregistrer les données d’entraînement personnalisées. Pour les frameworks pris en charge, vous pouvez utiliser la journalisation automatique au lieu d’ajouter des appels de journalisation individuels. Pour les modèles de deep learning, consultez le workflow de deep learning MLflow 3.
Utilisez les pratiques suivantes lors de la configuration du suivi MLflow :
- Définissez
stepsur une valeur pertinente, comme le batch global ou l’époque. Effectuez un log à intervalles réguliers plutôt qu’à chaque batch. MLflow limite le nombre d’étapes de métriques par exécution. Consultez Limites des ressources. - Pour l’entraînement distribué, journalisez une métrique uniquement depuis le rang 0 afin que chaque valeur soit enregistrée une seule fois.
- Pour les workflows de Notebook, utilisez des chemins absolus d’Experimentation, tels que
/Users/<username>/my-experimentou/Workspace/Shared/<team>/my-experiment. Placez les expérimentations que vous souhaitez partager dans un dossier de Workspace partagé. - Stockez les checkpoints volumineux et persistants dans un volume Unity Catalog. Pour les méthodes de checkpointing, consultez Améliorer les performances et la résilience de l’entraînement sur AI Runtime.
Utilisez MLflow 3.7 ou une version ultérieure pour les exemples de cette page.
Suivez les charges de travail de la CLI Databricks
Lorsque vous soumettez une charge de travail avec databricks air run, AI Runtime crée une exécution de Job Databricks pour les détails d’exécution et une exécution MLflow pour les données d’Experimentation. La soumission d’origine et ses nouvelles tentatives partagent une même exécution de job, tandis que chaque tentative crée une exécution MLflow distincte dans la même experimentation afin que vous puissiez comparer les tentatives.
Les métriques système du GPU, du CPU et de la mémoire sont automatiquement collectées pour chaque exécution gérée et apparaissent dans le tab Métriques système de MLflow.

Configurez et consignez dans l’exécution
Utilisez le fichier YAML de charge de travail pour sélectionner l’Experimentation et configurer éventuellement le nom de l’exécution et l’emplacement de l’artefact. L’exemple suivant affiche uniquement les champs MLflow :
experiment_name: my-training
mlflow_run_name: baseline-lr3e5
mlflow_artifact_location: /Volumes/main/default/mlflow-artifacts/my-training
Pour connaître les exigences des champs, les valeurs default et les valeurs prises en charge, consultez la référence YAML Workload.
AI Runtime expose l’identifiant de l’exécution gérée via MLFLOW_RUN_ID. Pour consigner vos propres parameter, métriques et artefacts dans cette exécution, rouvrez-la via l’ API de suivi MLflow:
import os
import mlflow
# Log from rank 0 only because all nodes share the same MLFLOW_RUN_ID.
if os.environ.get("RANK", "0") == "0":
with mlflow.start_run(run_id=os.environ["MLFLOW_RUN_ID"]):
mlflow.log_param("learning_rate", 3e-4)
for step, loss in enumerate(training_losses):
mlflow.log_metric("train_loss", loss, step=step)
Rechercher des exécutions et des Logs
Les logs sont disponibles via le CLI Databricks et la page d’exécution MLflow. Utilisez les commandes suivantes pour rechercher des charges de travail, examiner une charge de travail et Stream ou download les Logs :
databricks air list --all-status
databricks air get <job-run-id>
databricks air logs <job-run-id>
databricks air logs <job-run-id> --node 2
databricks air logs <job-run-id> --download-to ./logs/
Suivez les charges de travail des Notebooks
Depuis un notebook, vous pouvez exécuter du code directement dans la session attachée ou lancer un entraînement distribué via le décorateur @distributed du SDK Databricks AI Runtime.
Exécuter du code directement dans un notebook
Le code exécuté directement dans un Notebook attaché ne crée pas automatiquement d’exécution MLflow. Sélectionnez une expérimentation, puis start une exécution ou activez la journalisation automatique :
import mlflow
mlflow.set_experiment("/Users/<username>/my-experiment")
with mlflow.start_run(run_name="baseline"):
train()
Pour activer le log automatique de PyTorch Lightning, utilisez le modèle suivant :
mlflow.pytorch.autolog()
with mlflow.start_run(run_name="lightning-baseline"):
trainer.fit(model, datamodule=datamodule)
Pour les Transformers de Hugging Face, configurez TrainingArguments comme suit :
from transformers import TrainingArguments
args = TrainingArguments(
output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
report_to="mlflow",
run_name="llama7b-sft-lr3e5",
logging_steps=50,
)
Utilisez le SDK Databricks AI Runtime
Pour l’entraînement distribué depuis un Notebook, utilisez le décorateur @distributed de l’SDK Databricks AI Runtime (databricks-sdk-air). Le SDK est disponible dans l’espace de noms databricks.air dans la version 6 ou ultérieure de l’environnement GPU, ou sous la forme serverless_gpu dans la version 5 ou antérieure de l’environnement GPU.
from databricks.air import distributed
@distributed()
def train():
# Training code
...
train.distributed()
Chaque appel .distributed() crée automatiquement une exécution MLflow. L’Experimentation par défaut est /Users/{WORKSPACE_USER}/{notebook-name}. Pour sélectionner une autre experimentation, définissez-la avant d’appeler .distributed():
mlflow.set_experiment("/Users/<username>/my-experiment")
train.distributed()
Lorsque vous appelez .distributed() pendant une exécution active, AI Runtime crée une exécution enfant imbriquée :
with mlflow.start_run() as parent_run:
train.distributed()
Pour reprendre une exécution précédente, définissez MLFLOW_RUN_ID avant .distributed():
import os
os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
train.distributed()
Utilisez le lien d’exécution dans le résultat de la cellule ou le panneau Experimentation du Notebook pour ouvrir l’exécution MLflow.
Afficher les Logs
- Sortie du notebook : la sortie standard et les erreurs du code d’entraînement s’affichent dans la sortie de la cellule du notebook.
- MLflow Logs : pour les charges de travail de Notebook adossées à des Job, telles que les appels
.distributed(remote=True), le tab Logs de MLflow affiche la sortie de l’exécution du Job associé.
Surveillez les ressources GPU en temps réel
Le volet Ressources GPU du Notebook affiche en temps réel les taux d’utilisation du GPU et de la mémoire, ainsi que la température, pour les charges de travail à nœud unique et multinœuds. Utilisez le MLflow System metrics tab lorsque vous avez besoin d’un enregistrement persistant associé à une exécution.
Pour ouvrir le volet, connectez le notebook à AI Runtime, puis cliquez sur Ressources GPU dans le volet de droite.

Le volet interroge les métriques toutes les 10 secondes et conserve jusqu’à 2 heures d’historique. Cliquez sur Refresh pour récupérer les dernières valeurs. Après 5 minutes d’inactivité, le volet se met en pause. Rouvrez-le pour reprendre le monitoring.
Résoudre les problèmes d’accès aux Logs
L’tab Logs de la page d’une exécution MLflow diffuse la sortie de l’exécution du Job Databricks associé. L’accès à l’Experimentation MLflow n’implique pas l’accès au Job.
Si l’tab affiche Vous n’avez pas accès à ces logs , demandez à un utilisateur disposant de l’autorisation Gestion autorisée ou à un administrateur du workspace de vous accorder au moins l’autorisation Consultation autorisée sur le job. Consultez Contrôler l’accès à un job.
Limites globales dans Databricks
Consultez les Limites des ressources.