Suivre les exécutions avec MLflow et la page d'exécution des tâches
Aperçu
Cette fonctionnalité est en aperçu public.
Chaque charge de travail que vous soumettez avec air run est à la fois une exécution de Job Databricks et une exécution MLflow :
- L'exécution du job (visible sur la page Jobs & Pipelines du workspace) suit l'exécution : état, compute, tentatives et sortie du driver.
- L'exécution MLflow suit l'expérimentation : paramètres, métriques, métriques système et artefacts.
Une soumission crée une exécution de Job et une exécution MLflow. Une nouvelle tentative crée une nouvelle exécution MLflow.
Experimentation et exécutions
Deux champs YAML de charge de travail contrôlent la façon dont l'exécution apparaît dans MLflow :
experiment_name: my-training # Creates or appends to this MLflow experiment
mlflow_run_name: baseline-lr3e5 # Names the MLflow run for this submission
compute:
num_accelerators: 8
accelerator_type: GPU_8xH100
command: torchrun --nproc_per_node=8 train.py
max_retries: 2
experiment_name(Obligatoire) : Crée une expérimentation MLflow avec ce nom si elle n'existe pas, ou ajoute une nouvelle exécution à l'expérimentation existante. Une expérimentation contient de nombreuses exécutions.mlflow_run_name(Facultatif) : Définit le nom de l’exécution. Si omis, le nom de l'exécution utilise par default le nom de l'Experimentation (experiment_name).max_retries(Facultatif) : chaque nouvelle tentative est une nouvelle exécution MLflow dans la même expérimentation, vous pouvez donc comparer les tentatives. La soumission originale et ses nouvelles tentatives partagent une seule exécution de Job.

Naviguer entre les Jobs, MLflow et les charges de travail précédentes.
Vous pouvez accéder à une exécution à partir de trois emplacements :
- Jobs : la page d'exécution des Jobs répertorie vos exécutions, et chaque exécution est liée à son exécution MLflow et à son experimentation.
- MLflow : La page Expérimentations répertorie vos expérimentations MLflow.
- Charges de travail précédentes :
air get run <job-run-id>imprime des Links cliquables vers le Job, l’Experimentation et l’exécution MLflow.air list runsliste vos exécutions précédentes et vous permet de filtrer pour trouver une exécution spécifique.
air get run <job-run-id> # Links to the job, experiment, and MLflow run
air list runs # List previous runs; filter to find a specific run
Métriques du système
Les métriques système du GPU, du CPU et de la mémoire sont capturées automatiquement pour chaque exécution. Aucune configuration n'est requise. Affichez-les sur l'onglet **Métriques système** de l'exécution MLflow.

Log custom metrics
La plateforme crée l'exécution MLflow et expose son ID à votre processus d'entraînement via la variable d'environnement MLFLOW_RUN_ID. Utilisez l'API de suivi MLflow pour Log vos propres paramètres, métriques et artefacts pour cette exécution.
Sur les charges de travail distribuées (multi-nœuds), chaque nœud partage la même exécution MLflow. Log du processus de rang 0 uniquement, de sorte que chaque métrique est enregistrée une fois :
import os
import mlflow
# Log from rank 0 only; 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)
Logs et artefacts
Stream ou download les Logs d'une exécution avec air logs:
air logs <job-run-id> # Stream logs from node 0
air logs <job-run-id> --node 2 # Logs from a specific node
air logs <job-run-id> --download-to ./logs/ # Download instead of streaming
Les Logs sont également disponibles en tant qu'artefacts sur l'exécution MLflow. Pour conserver les points de contrôle du modèle, écrivez-les dans un volume Unity Catalog. Pour les modèles de point de contrôle et la gestion des volumes, consultez Suivi d'Experimentation et observabilité.