Aller au contenu principal
Page non répertoriée
Cette page n'est pas répertoriée. Les moteurs de recherche ne l'indexeront pas, et seuls les utilisateurs ayant un lien direct peuvent y accéder.

Suivi des exécutions avec l'ancienne CLI Python

important

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 :

YAML
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.

Page d&#39;exécution MLflow affichant les métriques

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 runs répertorie vos exécutions précédentes et vous permet d’effectuer un filtrage pour trouver une exécution spécifique.
Bash
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.

Tab des métriques système d&#39;une exécution MLflow (GPU/CPU/mémoire)

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 :

Python
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:

Bash
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.

Ressources supplémentaires​