Sledování spuštění pomocí MLflow a stránky spuštění úloh

Důležité

CLI nástroje AI Runtime je ve fázi beta.

Každá úloha, kterou odešlete, air run je spuštěním úlohy Databricks i spuštěním MLflow:

  • Běh úlohy (viditelný na stránce pracovního prostoru Úlohy a kanály pipeline) sleduje průběh spuštění: stav, výpočetní prostředky, opakování a výstup ovladače.
  • Spuštění MLflow sleduje experiment: parametry, metriky, systémové metriky a artefakty.

Jedno odeslání vytvoří jedno spuštění úlohy a jedno spuštění MLflow. Opakování vytvoří nové spuštění MLflow.

Experimenty a spuštění

Dvě pole YAML v definici úlohy určují, jak se běh zobrazuje v 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 (Povinné): Vytvoří experiment MLflow s tímto názvem, pokud neexistuje, nebo připojí nové spuštění k existujícímu experimentu. Experiment zahrnuje mnoho běhů.
  • mlflow_run_name (Volitelné): Nastaví název spuštění. Pokud tento argument vynecháte, název spuštění se ve výchozím nastavení nastaví na název experimentu (experiment_name).
  • max_retries (Volitelné): Každý pokus o opakování je nové spuštění MLflow ve stejném experimentu, takže můžete porovnat pokusy. Původní odeslání a jeho opakované pokusy sdílejí stejné spuštění úlohy.

Stránka spuštění MLflow zobrazující metriky

K běhu se můžete dostat ze tří různých míst:

  • Úlohy: Na stránce se spuštěními úloh je uveden seznam vašich spuštění a každé spuštění obsahuje odkaz na svůj běh MLflow a experiment.
  • MLflow: Stránka Experimenty obsahuje seznam experimentů MLflow.
  • Předchozí úlohy: air get run <job-run-id> Vytiskne kliknutelné odkazy na úlohu, experimentování a spuštění MLflow. air list runs zobrazí seznam předchozích spuštění a umožňuje vyfiltrovat konkrétní spuštění.
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

Systémové metriky

Metriky gpu, procesoru a paměti se zachytávají automaticky pro každé spuštění. Není nutná žádná konfigurace. Zobrazte je na kartě Systémové metriky běhu MLflow.

Karta systémových metrik běhu MLflow (GPU/CPU/paměť)

Zaznamenávání vlastních metrik

Platforma vytvoří běh MLflow a zpřístupní jeho ID vašemu trénovacímu procesu prostřednictvím proměnné prostředí MLFLOW_RUN_ID. Pomocí rozhraní API pro sledování MLflow zaznamenávejte vlastní parametry, metriky a artefakty do tohoto běhu.

U distribuovaných úloh (s více uzly) sdílí každý uzel stejný run MLflow. Zaznamenávejte pouze z procesu s rankem 0, aby byla každá metrika zaznamenána jen jednou:

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)

Protokoly a artefakty

Streamujte nebo stáhněte protokoly běhu pomocí 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

Záznamy jsou také k dispozici jako artefakty v běhu MLflow. Pokud chcete zachovat kontrolní body modelu, zapište je do svazku katalogu Unity. Vzory pro vytváření kontrolních bodů a správu svazků najdete v článku Sledování experimentů a pozorovatelnost.

Další zdroje informací