Suivi des exécutions avec l'ancienne CLI Python
Cette documentation n'est plus publiée et ne sera peut-être pas mise à jour.
La CLI air basée sur Python, installée avec le package databricks-air, est désormais obsolète et n’est plus activement maintenue.
Utilisez la CLI Databricks pour les nouvelles charges de travail. Consultez Use the Databricks CLI with AI Runtime.
Chaque charge de travail que vous soumettez avec air run est à la fois une exécution de Job Databricks et une exécution MLflow :
- The job run (visible on the workspace Jobs & Pipelines page) tracks execution: status, compute, retries, and driver output.
- The MLflow run tracks the experiment: parameters, metrics, system metrics, and artifacts.
Une soumission crée un run de job et un run MLflow. Une nouvelle tentative crée un nouveau run MLflow.
Expérimentations et exécutions
Les champs YAML de charge de travail suivants contrôlent le stockage de l'expérience, de l'exécution et des artefacts MLflow :
experiment_name: my-training # Creates or appends to this MLflow experiment
mlflow_run_name: baseline-lr3e5 # Names the MLflow run for this submission
# Stores artifacts in a UC volume
mlflow_artifact_location: /Volumes/main/default/mlflow-artifacts/my-training
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 portant ce nom si elle n'existe pas, ou ajoute une nouvelle exécution à l'expérimentation existante. Une expérimentation comporte de nombreuses exécutions.mlflow_run_name(Optionnel) : définit le nom de l’exécution. En cas d’omission, le nom de l’exécution est par default le nom de l’expérimentation (experiment_name).mlflow_artifact_location(Facultatif) : définit l’emplacement racine des artefacts. En cas d’omission, une nouvelle experiment utilise l’emplacement DBFS default, et une experiment existante utilise l’emplacement associé àexperiment_name. Pour un volume Unity Catalog, utilisez/Volumes/<catalog>/<schema>/<volume>/.... Pour une experiment existante, l’emplacement spécifié doit correspondre à l’emplacement d’artefact de l’experiment ou être omis.max_retries(Optional): Each retry attempt is a new MLflow run in the same experiment, so you can compare attempts. The original submission and its retries share one job run.

Naviguer entre les charges de travail 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 renvoie vers son run MLflow et son Experimentation.
- MLflow : La page Experiments répertorie vos expérimentations MLflow.
- Charges de travail précédentes :
air get run <job-run-id>affiche des liens cliquables vers le Job, l’Experimentation et l’exécution MLflow de l’exécution.air list runsrépertorie vos exécutions précédentes et vous permet d’effectuer un filtrage 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
Indicateurs du système
Les métriques du GPU, du CPU et du système mémoire sont capturées automatiquement pour chaque exécution. Aucune configuration n’est requise. Consultez-les dans le tab Indicateurs du système de l’exécution MLflow.

Journaliser des métriques personnalisées
The platform creates the MLflow run and exposes its ID to your training process through the MLFLOW_RUN_ID environment variable. Use the MLflow tracking API to log your own parameters, metrics, and artifacts to that run.
Sur les workloads distribués (multinœud), chaque nœud partage le même run MLflow. Log provenant uniquement du processus de rang 0, de sorte que chaque métrique est enregistrée une seule 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 des modèles, écrivez-les dans un volume Unity Catalog. Pour connaître les modèles de points de contrôle, consultez Améliorer les performances et la résilience de l'entraînement sur AI Runtime.