Runs bijhouden met MLflow en de uitvoeringspagina van Jobs

Belangrijk

De AI Runtime CLI bevindt zich in de bètaversie.

Elke workload die u met air run indient, is zowel een Databricks-jobuitvoering als een MLflow-uitvoering:

  • De jobrun (zichtbaar op de werkruimtepagina Jobs & Pipelines) houdt het volgende bij: status, compute-resources, nieuwe uitvoerpogingen en driveruitvoer.
  • De MLflow-uitvoering houdt het experiment bij: parameters, metrische gegevens, systeemmetrieken en artefacten.

Eén inzending maakt één taakuitvoering en één MLflow-uitvoering. Opnieuw proberen maakt een nieuwe MLflow run aan.

Experimenten en uitvoeringen

In twee YAML-workloadvelden wordt bepaald hoe de uitvoering wordt weergegeven in 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 (Vereist): Hiermee maakt u een MLflow-experiment met deze naam als deze niet bestaat of voegt u een nieuwe uitvoering toe aan het bestaande experiment. Een experiment omvat veel runs.
  • mlflow_run_name (Optioneel): Hiermee wordt de runnaam ingesteld. Als u dit weglaat, wordt de uitvoeringsnaam standaard ingesteld op de naam van het experiment (experiment_name).
  • max_retries (Optioneel): Elke nieuwe poging is een nieuwe MLflow-uitvoering in hetzelfde experiment, zodat u pogingen kunt vergelijken. De oorspronkelijke indiening en de herhalingspogingen delen dezelfde taakuitvoering.

MLflow-uitvoeringspagina met metrische gegevens

U kunt op drie manieren naar een run gaan:

  • Jobs: Op de uitvoeringspagina van Jobs worden uw uitvoeringen vermeld en bevat elke uitvoering een koppeling naar de MLflow-uitvoering en het MLflow-experiment.
  • MLflow: De pagina Experimenten bevat uw MLflow-experimenten.
  • Eerdere workloads: air get run <job-run-id> toont klikbare links naar de job, het experiment en de MLflow-run van de uitvoering. air list runs bevat uw vorige uitvoeringen en kunt u filteren om een specifieke uitvoering te vinden.
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

Metrische systeemgegevens

Metrische gegevens van GPU, CPU en geheugensysteem worden automatisch vastgelegd voor elke uitvoering. Er is geen configuratie vereist. Bekijk ze op het tabblad Metrische systeemgegevens van de MLflow-uitvoering.

Tabblad Metrische systeemgegevens van een MLflow-uitvoering (GPU/CPU/geheugen)

Aangepaste metrische gegevens registreren

Het platform maakt de MLflow-uitvoering en stelt de id ervan beschikbaar voor uw trainingsproces via de MLFLOW_RUN_ID omgevingsvariabele. Gebruik de MLflow-tracerings-API om uw eigen parameters, metrische gegevens en artefacten te registreren voor die uitvoering.

Bij gedistribueerde workloads (meerdere knooppunten) deelt elk knooppunt dezelfde MLflow-uitvoering. Meld u alleen aan bij het rank-0-proces, zodat elke metrische waarde eenmaal wordt vastgelegd:

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)

Logboeken en artefacten

Stream of download de logboeken van een uitvoering met 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

Logboeken zijn ook beschikbaar als artefacten in de MLflow-uitvoering. Als u modelcontrolepunten wilt behouden, schrijft u deze naar een Unity Catalog-volume. Zie Experimenten bijhouden en waarneembaarheid voor controlepunten en het beheren van volumes.

Aanvullende informatiebronnen