Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
AI Runtime integreert met MLflow om experimentele tracking-, observabiliteits- en debuggingtools te bieden. MLflow biedt één plek voor parameters, metrics, GPU-systeemmetrics, logs en artefacten van een run, of je nu ontwikkelt in een notebook, een workload indient bij de databricks air CLI, of een taak plant.
Wat MLflow biedt
Een MLflow-experiment groepeert gerelateerde trainingsruns, en elke run levert een persistent record van de trainingsconfiguratie en resultaten.
- Metrics en parameters: Noteer trainingsverlies, evaluatie-indicatoren, leersnelheden en hyperparameters, en vergelijk deze vervolgens over de runs heen.
- Systeemmetrics: Bekijk GPU-, CPU- en geheugengebruik voor beheerde runs op het tabblad Systemmetrics .
- Logweergave: Bekijk driveroutput voor een job-ondersteunde werklast op het tabblad Logs van de run. Zie Bekijk logs in het tabblad MLflow Logs.
- Artefacten en modellen: Sla modelbestanden, configuraties en andere uitvoer op met de run. Gebruik een Unity Catalog-volume voor grote of duurzame artefacten.
- Delen en samenwerking: Verleen toegang tot een experiment zodat andere gebruikers van de werkruimte de runs kunnen bekijken en vergelijken. Zie Trainingsuitvoeringen organiseren met MLflow-experimenten.
- Framework-integraties: Gebruik MLflow-integraties met Hugging Face Transformers, PyTorch Lightning en andere ondersteunde bibliotheken.
Voor job-backed workloads, zoals workloads die worden ingediend met databricks air run, vult de Azure Databricks-job run MLflow aan door uitvoeringsstatus, rekenkracht, pogingen en driveroutput op te nemen.
Hoe MLflow-runs worden gemaakt
Hoe je een MLflow-run start of eraan deelneemt, hangt af van hoe je de werklast start:
| Hoe je de werklast aanpakt | Hoe de MLflow-run begint | Hoe het experiment te selecteren |
|---|---|---|
Databricks CLI (databricks air run) |
Elke poging creëert automatisch een run. | Stel experiment_name in het workload YAML in. |
Notebook met de Databricks AI Runtime SDK (.distributed()) |
Elke oproep maakt automatisch een run aan. | Bel mlflow.set_experiment() vóór .distributed(), of stel MLFLOW_EXPERIMENT_NAME. |
| Code draait direct in een gekoppeld notebook | Er wordt geen run automatisch aangemaakt. Gebruik mlflow.start_run() of autologgen. |
Roep mlflow.set_experiment() aan in het notitieblok. |
Gepland ai_runtime_task |
De taak maakt automatisch een run aan. | Stel experiment in de taakconfiguratie in. Zie AI Runtime-taak. |
Nadat je code start of deelneemt aan de juiste run, gebruik je de MLflow tracking API om aangepaste trainingsdata op te nemen. Voor ondersteunde frameworks kun je autologging gebruiken in plaats van individuele loggingcalls toe te voegen. Voor deep learning-patronen, zie MLflow 3 deep learning workflow.
Gebruik de volgende praktijken bij het configureren van MLflow-tracking:
- Stel
stepdit in op een betekenisvolle waarde zoals de globale batch of epoch. Log met tussenpozen in plaats van bij elke batch. MLflow beperkt het aantal metrische stappen per run. Zie Resourcelimieten. - Voor gedistribueerde training log je een metriek vanaf rang 0 alleen zodat elke waarde één keer wordt geregistreerd.
- Voor notebookworkflows gebruik absolute experimentele paden, zoals
/Users/<username>/my-experimentof/Workspace/Shared/<team>/my-experiment. Zet experimenten die je wilt delen in een gedeelde werkruimtemap. - Sla grote, duurzame checkpoints op in een Unity Catalog-volume. Voor checkpointpatronen, zie Verbeter trainingsprestaties en veerkracht op AI Runtime.
Note
Gebruik MLflow 3.7 en hoger voor de voorbeelden op deze pagina.
Volg Databricks CLI-workloads
Wanneer je een workload indient met databricks air run, maakt AI Runtime een Azure Databricks-jobuitvoering voor uitvoeringsdetails en een MLflow-run voor experimentele data. De oorspronkelijke inzending en de herpogingen delen één taakrun, terwijl elke poging een aparte MLflow-run in hetzelfde experiment creëert zodat je pogingen kunt vergelijken.
GPU-, CPU- en geheugensysteemstatistieken worden automatisch vastgelegd voor elke beheerde uitvoering en verschijnen op het MLflow System-metricstabblad .
Configureer en logboekregistratie voor de run
Gebruik de workload YAML om het experiment te selecteren en optioneel de runnaam en artefactlocatie te configureren. Het volgende voorbeeld toont de benodigde MLflow-velden:
experiment_name: my-training
mlflow_run_name: baseline-lr3e5
mlflow_artifact_location: /Volumes/main/default/mlflow-artifacts/my-training
Voor veldvereisten, standaardwaarden en ondersteunde waarden, zie Workload YAML-referentie.
AI Runtime stelt de beheerde run ID bloot via MLFLOW_RUN_ID. Om je eigen parameters, metrics en artefacten in die run te loggen, open je deze opnieuw met de MLflow tracking API:
import os
import mlflow
# Log from rank 0 only because 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)
Zoek runs en logs
Logs zijn beschikbaar via zowel de Databricks CLI als de MLflow-runpagina. Gebruik de volgende commando's om workloads te vinden, een workload te inspecteren en logs te streamen of downloaden:
databricks air list --all-status
databricks air get <job-run-id>
databricks air logs <job-run-id>
databricks air logs <job-run-id> --node 2
databricks air logs <job-run-id> --download-to ./logs/
Notebook-workloads bijhouden
Vanuit een notebook kun je code direct uitvoeren in de bijgevoegde sessie of distributed training uitvoeren via de @distributed decorator van de Databricks AI Runtime SDK.
Voer code direct uit in een notebook
Code die direct in een bijgevoegd notitieboek wordt uitgevoerd, maakt niet automatisch een MLflow-run aan. Selecteer een experiment, start dan een run of schakel autologging in:
import mlflow
mlflow.set_experiment("/Users/<username>/my-experiment")
with mlflow.start_run(run_name="baseline"):
train()
Om PyTorch Lightning autologging mogelijk te maken, gebruik je het volgende patroon:
mlflow.pytorch.autolog()
with mlflow.start_run(run_name="lightning-baseline"):
trainer.fit(model, datamodule=datamodule)
Voor Hugging Face Transformers configureer TrainingArguments je als volgt:
from transformers import TrainingArguments
args = TrainingArguments(
output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
report_to="mlflow",
run_name="llama7b-sft-lr3e5",
logging_steps=50,
)
Gebruik de Databricks AI Runtime SDK
Voor gedistribueerde training vanuit een notebook gebruik je de @distributed decorator van de Databricks AI Runtime SDK (databricks-sdk-air). De SDK is beschikbaar onder de databricks.air naamruimte in GPU-omgeving versie 6 en hoger, of als serverless_gpu in GPU-omgeving versie 5 en lager.
from databricks.air import distributed
@distributed()
def train():
# Training code
...
train.distributed()
Elke .distributed() call maakt automatisch een MLflow run. Het standaardexperiment is /Users/{WORKSPACE_USER}/{notebook-name}. Om een ander experiment te selecteren, stel je het in voordat je .distributed() aanroept:
mlflow.set_experiment("/Users/<username>/my-experiment")
train.distributed()
Wanneer je .distributed() aanroept binnen een actieve run, maakt AI Runtime een geneste kindrun aan:
with mlflow.start_run() as parent_run:
train.distributed()
Om een eerdere run te hervatten, stel MLFLOW_RUN_ID vóór .distributed() in:
import os
os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
train.distributed()
Gebruik de run link in de celuitvoer of het notebook Experiment-paneel om de MLflow-run te openen.
Bekijk logs
- Notebook-uitvoer: Standaarduitvoer en fouten uit de trainingscode verschijnen in de uitvoer van de notebookcel.
-
MLflow-logs: Voor job-backed notebookworkloads zoals
.distributed(remote=True)calls toont het MLflow Logs-tabblad output van de bijbehorende jobrun.
Bewaak live GPU-bronnen
Het GPU-resourcepaneel van notebook toont live GPU-gebruik, geheugen en temperatuur voor single-node- en multi-node workloads. Gebruik het MLflow System-metricstabblad wanneer je een persistent record nodig hebt dat aan een run is gekoppeld.
Om het paneel te openen, verbind je het notebook met AI Runtime en klik je vervolgens in het rechter paneel op GPU-resources.
Het deelvenster haalt elke 10 seconden metriekgegevens op en bewaart een geschiedenis van maximaal 2 uur. Klik op Verversen om de nieuwste waarden op te halen. Na vijf minuten inactiviteit pauzeert het paneel. Open het opnieuw om de monitoring te hervatten.
Bekijk logs in het tabblad MLflow Logs
Het tabblad Logs op een MLflow-runpagina toont de output van een door een job ondersteunde AI Runtime-workload. Om het te openen, ga je naar de run-pagina en klik je op Logs.
Voor nieuwe runs vervangt het tabblad Logs de logbestanden die eerder op het Artifacts-tabblad van de run waren opgeslagen, die verouderd zijn. Eerder gemaakte runs bewaren hun logbestanden op het tabblad Artifacts .
Vanuit het tabblad Logs kunt u:
- Zoeken: Toon alleen de regels die een zoekterm bevatten.
- Filter op knooppunt, niveau en tijdbereik: Selecteer één knooppunt van een multi-knooppuntwerklast, toon alleen informatie-, waarschuwing- of foutregels, of beperk het overzicht tot een tijdsbereik.
- Volg een lopende werklast: Terwijl de run actief is, verschijnt er nieuwe output zodra deze arriveert. Scroll omhoog om het volgen te pauzeren.
- Kopiëren en downloaden: Kopieer de geladen regels, of download elke regel die overeenkomt met de huidige filters.
Logretentie
Logs zijn 60 dagen beschikbaar op het tabblad Logs .
Problemen met toegang tot logboeken oplossen
Het tabblad Logs op een MLflow-run-pagina toont output in realtime uit de bijbehorende Azure Databricks-taakuitvoering. Toegang tot het MLflow-experiment impliceert geen toegang tot de job.
Als het tabblad aangeeft dat je geen toegang hebt tot deze logs, vraag dan een gebruiker met de machtiging Kan Beheren of een workspace-beheerder om je ten minste Kan Bekijken op de taak te geven. Zie Beheer de toegang tot een taak.
Globale limieten in Azure Databricks
Zie Resourcelimieten.