Nachverfolgen von Ausführungen mit MLflow und der Seite „Einzelvorgänge ausführen“

Wichtig

Dieses Feature befindet sich in der Public Preview.

Jede Workload, die Sie mit air run übermitteln, ist sowohl eine Databricks-Jobausführung als auch ein MLflow-Lauf:

  • Die Einzelvorgangsausführung (sichtbar auf der Seite Einzelvorgänge & Pipelines im Arbeitsbereich) verfolgt die Ausführung: Status, Rechenressourcen, Wiederholungen und Driver-Ausgabe.
  • Die MLflow-Ausführung verfolgt das Experiment: Parameter, Metriken, Systemmetriken und Artefakte.

Eine Einreichung erstellt einen Auftragslauf und einen MLflow-Lauf. Ein Wiederholungsversuch erstellt einen neuen MLflow-Lauf.

Experimente und Ausführungen

Zwei Arbeitslast-YAML-Felder steuern, wie die Ausführung im MLflow angezeigt wird:

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 (Erforderlich): Erstellt ein MLflow-Experiment mit diesem Namen, wenn eins nicht vorhanden ist, oder fügt eine neue Ausführung an das vorhandene Experiment an. Ein Experiment umfasst viele Durchläufe.
  • mlflow_run_name (Optional): Legt den Ausführungsnamen fest. Falls kein Ausführungsname angegeben ist, wird standardmäßig der Experimentname (experiment_name) verwendet.
  • max_retries (Optional): Jeder Wiederholungsversuch ist ein neuer MLflow,der im selben Experiment ausgeführt wird, sodass Sie Versuche vergleichen können. Die ursprüngliche Übermittlung und die zugehörigen Wiederholungen teilen einen Einzelvorgang.

MLflow-Ausführungsseite mit Metriken

Sie können von drei Stellen aus auf eine Ausführung zugreifen:

  • Einzelvorgänge: Auf der Seite „Einzelvorgangsausführungen“ werden Ihre Ausführungen aufgelistet, und jede Ausführung ist mit seiner MLflow-Ausführung und Experiment verknüpft.
  • MLflow: Auf der Seite "Experimente" werden Ihre MLflow-Experimente aufgelistet.
  • Vorherige Workloads: air get run <job-run-id> Druckt klickbare Links zum Einzelvorgang, Experiment und MLflow-Ausführung des Ausführungsvorgangs. air list runs listet Ihre vorherigen Ausführungen auf und lässt Sie nach einer bestimmten Ausführung filtern.
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

Systemmetriken

GPU-, CPU- und Arbeitsspeichersystemmetriken werden für jede Ausführung automatisch erfasst. Es ist keine Konfiguration erforderlich. Zeigen Sie sie auf der Registerkarte " Systemmetriken " der MLflow-Ausführung an.

Registerkarte „Systemmetriken“ eines MLflow-Runs (GPU/CPU/Arbeitsspeicher)

Protokollieren benutzerdefinierter Metriken

Die Plattform erstellt die MLflow-Ausführung und macht ihre ID für Ihren Schulungsprozess über die MLFLOW_RUN_ID Umgebungsvariable verfügbar. Verwenden Sie die MLflow-Tracking-API , um Ihre eigenen Parameter, Metriken und Artefakte für die Ausführung zu protokollieren.

Bei verteilten Arbeitslasten (Multiknoten) teilt jeder Knoten den gleichen MLflow-Lauf. Protokollieren Sie nur vom Rank-0-Prozess, sodass jede Metrik nur einmal erfasst wird:

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)

Protokolle und Artefakte

Streamen oder Herunterladen der Protokolle einer Ausführung mit 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

Protokolle sind auch als Artefakte in einem MLflow-Run verfügbar. Um Modellprüfpunkte beizubehalten, schreiben Sie sie in ein Unity-Katalogvolume. Informationen zu Prüfmustern und zum Verwalten von Volumes finden Sie unter Experimentverfolgung und Observability.

Weitere Ressourcen