Spårning och observerbarhet för experiment

Viktigt!

AI Runtime för aktiviteter med en nod finns i offentlig förhandsversion. Det distribuerade tränings-API:et för multi-GPU-arbetsbelastningar finns kvar i Beta.

På den här sidan beskrivs hur du använder MLflow, visar loggar, hanterar modellkontrollpunkter och övervakar GPU-resurser på AI Runtime.

MLflow-integrering

AI Runtime integreras internt med MLflow för experimentspårning, modellloggning och måttvisualisering.

Installationsrekommendationer:

  • Uppgradera MLflow till version 3.7 eller senare och följ arbetsflödesmönstren för djupinlärning.

  • Aktivera automatisk loggning för PyTorch Lightning:

    import mlflow
    mlflow.pytorch.autolog()
    
  • Anpassa MLflow-körningsnamnet genom att kapsla in din modellträningskod inom API-omfånget mlflow.start_run() . Detta ger dig kontroll över körningsnamnet och gör att du kan starta om från en tidigare körning. Du kan anpassa körningsnamnet med hjälp av parametern run_name i mlflow.start_run(run_name="your-custom-name") eller i bibliotek från tredje part som stöder MLflow (till exempel Hugging Face Transformers). Annars är standardkörningsnamnet jobTaskRun-xxxxx.

    from transformers import TrainingArguments
    args = TrainingArguments(
        report_to="mlflow",
        run_name="llama7b-sft-lr3e5",  # <-- MLflow run name
        logging_steps=50,
    )
    
  • Det serverlösa GPU-API:et startar automatiskt ett MLflow-experiment med standardnamnet /Users/{WORKSPACE_USER}/{get_notebook_name()}. Användare kan skriva över den med miljövariabeln MLFLOW_EXPERIMENT_NAME. Använd alltid absoluta sökvägar för MLFLOW_EXPERIMENT_NAME miljövariabeln:

    import os
    os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"
    
  • Återuppta föregående träning genom att ange MLFLOW_RUN_ID från den tidigare körningen:

    mlflow.start_run(run_id="<previous-run-id>")
    
  • Ange parametern step i MLFlowLogger till rimliga batchnummer. MLflow har en begränsning på 10 miljoner steg – att logga varje enskild batch under stora träningspass kan nå denna gräns. Se Resursbegränsningar.

Visa loggar

  • Notebook-utdata – Standardutdata och fel från träningskoden visas i notebook-cellens utdata.
  • MLflow-loggar – Användargränssnittet för MLflow-experiment visar träningsmått, parametrar och artefakter.

Kontrollpunkter för modell

Spara modellkontrollpunkter i Unity Catalog-volymer, som ger samma styrning som andra Unity Catalog-objekt. Använd följande sökvägsformat för att referera till filer i volymer från en Databricks-notebook-fil:

/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Spara kontrollpunkter på volymer på samma sätt som du sparar dem i lokal lagring.

I följande exempel visas hur du skriver en PyTorch-kontrollpunkt till Unity Catalog-volymer:

import torch

checkpoint = {
    "epoch": epoch,  # last finished epoch
    "model_state_dict": model.state_dict(),  # weights & buffers
    "optimizer_state_dict": optimizer.state_dict(),  # optimizer state
    "loss": loss,  # optional current loss
    "metrics": {"val_acc": val_acc},  # optional metrics
    # Add scheduler state, RNG state, and other metadata as needed.
}
checkpoint_path = "/Volumes/my_catalog/my_schema/model/checkpoints/ckpt-0001.pt"
torch.save(checkpoint, checkpoint_path)

Den här metoden fungerar även för distribuerade kontrollpunkter. I följande exempel visas kontrollpunkter för distribuerade modeller med TORCH Distributed Checkpoint API:

import torch.distributed.checkpoint as dcp

def save_checkpoint(self, checkpoint_path):
    state_dict = self.get_state_dict(model, optimizer)
    dcp.save(state_dict, checkpoint_id=checkpoint_path)

trainer.save_checkpoint("/Volumes/my_catalog/my_schema/model/checkpoints")

Övervaka GPU-resurser

Använd fönstret GPU-resurser för att övervaka GPU-hälsa och -användning medan koden körs på AI Runtime. Panelen stöder både arbetsbelastningar med en eller flera noder.

Om du vill öppna fönstret ansluter du anteckningsboken till AI Runtime och klickar sedan på chipikonen.GPU-resurser i fönstret till höger.

Fönstret GPU-resurser som visar användnings-, minnes- och temperaturmått för varje GPU.

Fönstret visar följande mått för varje GPU:

  • GPU-användningsprocent
  • GPU-minnesanvändning
  • Temperatur

Panelen hämtar mätvärden var tionde sekund och sparar upp till två timmars historik. Klicka på Ikonen Uppdatera.Uppdatera för att hämta de senaste värdena omedelbart. Efter 5 minuters inaktivitet pausar fönstret. öppna den igen för att återuppta övervakningen.

Samarbete mellan flera användare

  • För att säkerställa att alla användare kan komma åt delad kod (till exempel hjälpmoduler eller YAML-miljöfiler) lagrar du dem i /Workspace/Shared stället för användarspecifika mappar som /Workspace/Users/<your_email>/.
  • För kod som är i aktiv utveckling använder du Git-mappar i användarspecifika mappar /Workspace/Users/<your_email>/ och push-överför till fjärranslutna Git-lagringsplatser. Detta gör att flera användare kan ha en användarspecifik klon och gren, samtidigt som de använder en fjärransluten Git-lagringsplats för versionskontroll. Se metodtips för att använda Git på Databricks.
  • Medarbetare kan dela och kommentera anteckningsböcker.

Globala gränser i Azure Databricks

Se Resursbegränsningar.