Sledování experimentů a pozorovatelnost

AI Runtime se integruje s MLflow a poskytuje nástroje pro sledování experimentů, pozorovatelnost a ladění. MLflow poskytuje jedno místo pro parametry, metriky, GPU systémové metriky, logy a artefakty běhu, ať už vyvíjíte v notebooku, odesíláte pracovní zátěž s databricks air CLI nebo plánujete úlohu.

Co MLflow poskytuje

Experiment MLflow seskupuje související trénovací běhy a každý běh poskytuje trvalý záznam trénovací konfigurace a výsledků.

  • Metriky a parametry: Zaznamenávejte ztráty při trénování, hodnotící metriky, rychlosti učení a hyperparametry, poté je porovnávejte napříč běhy.
  • Systémové metriky: Zobrazit využití GPU, CPU a paměti pro řízené běhy na záložce Systémové metriky .
  • Zobrazení protokolu: Zobrazit výstup ovladače pro pracovní zátěž podloženou úlohou na záložce Logy běhu. Viz Zobrazení logů na kartě MLflow Logs.
  • Artefakty a modely: Ukládejte soubory modelů, konfigurace a další výstupy s daným spuštěním. Pro velké nebo trvalé artefakty použijte volume v katalogu Unity.
  • Sdílení a spolupráce: Udělit přístup k experimentu, aby ostatní uživatelé pracovního prostoru mohli sledovat a porovnávat jeho běhy. Viz Uspořádání trénovacích běhů pomocí experimentů MLflow.
  • Integrace s frameworky: Používejte integrace MLflow s Hugging Face Transformers, PyTorch Lightning a dalšími podporovanými knihovnami.

Pro workloady podporované úlohami, jako jsou workloady odeslané pomocí databricks air run, spuštění úlohy Azure Databricks doplňuje MLflow tím, že zaznamenává stav spuštění, výpočetní prostředky, pokusy a výstup ovladače.

Jak se vytvářejí běhy MLflow

To, jak spustíte běh MLflow nebo se k němu připojíte, závisí na tom, jak pracovní úlohu spustíte:

Jak provozujete úlohu Jak začíná MLflow běh Jak vybrat experiment
Databricks CLI (databricks air run) Každý pokus automaticky vytváří běh. Nastavte experiment_name v YAML souboru workloadu.
Notebook s Databricks AI Runtime SDK (.distributed()) Každé volání automaticky vytvoří spuštění. Volejte mlflow.set_experiment() před .distributed(), nebo nastavte MLFLOW_EXPERIMENT_NAME.
Kód spuštěný přímo v připojeném notebooku Žádné spuštění se automaticky nevytváří. Použijte mlflow.start_run() nebo automatické logování. Spusťte mlflow.set_experiment() v poznámkovém bloku.
Naplánováno ai_runtime_task Úkol automaticky vytvoří běh. Nastavte experiment v konfiguraci úlohy. Vizte úlohu AI Runtime.

Poté, co váš kód spustí nebo se připojí ke správnému runu, použijte MLflow tracking API k zaznamenávání vlastních tréninkových dat. Pro podporované frameworky můžete použít autologování místo přidávání jednotlivých logovacích volání. Pro vzory hlubokého učení viz MLflow 3 workflow hlubokého učení.

Při konfiguraci sledování MLflow použijte následující postupy:

  • Nastavte step na významnou hodnotu, například globální dávku nebo epochu. Logujte v intervalech namísto po každé várce. MLflow omezuje počet metrických kroků na run. Viz Omezení prostředků.
  • Pro distribuované trénování zaznamenávejte metriku pouze od ranku 0, aby byla každá hodnota zaznamenána jednou.
  • V pracovních postupech notebooku používejte absolutní cesty experimentů, například /Users/<username>/my-experiment nebo /Workspace/Shared/<team>/my-experiment. Dejte experimenty, které chcete sdílet, do sdílené složky workspace.
  • Ukládejte velké, odolné kontrolní body v objemu Unity Catalog. Pro vzory kontrolních bodů viz Zlepšení výkonu tréninku a odolnosti v AI Runtime.

Note

Pro příklady na této stránce použijte MLflow 3.7 a novější.

Sledování úloh Databricks CLI

Když odešlete pracovní zátěž s databricks air run, AI Runtime vytvoří spuštění úlohy Azure Databricks pro podrobnosti o spuštění a běh MLflow pro experimentální data. Původní odeslání a jeho opakované pokusy sdílejí jeden běh úlohy, zatímco každý pokus vytváří samostatný MLflow běh ve stejném experimentu, abyste mohli porovnat pokusy.

Metriky GPU, CPU a paměťového systému jsou automaticky zachycovány pro každý řízený běh a zobrazují se na záložce MLflow System metrics .

Záložka systémových metrik v běhu MLflow zobrazující GPU, CPU a paměťové metriky.

Konfigurujte a protokolujte spuštění

Použijte workload YAML k výběru experimentu a volitelně nastavte název běhu a umístění artefaktu. Následující příklad ukazuje potřebná pole MLflow:

experiment_name: my-training
mlflow_run_name: baseline-lr3e5
mlflow_artifact_location: /Volumes/main/default/mlflow-artifacts/my-training

Pro požadavky na pole, výchozí hodnoty a podporované hodnoty viz Workload YAML reference.

AI Runtime zpřístupňuje spravované ID běhu přes MLFLOW_RUN_ID. Pro zaznamenání vlastních parametrů, metrik a artefaktů do tohoto běhu ho znovu otevřete pomocí rozhraní 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)

Najít běhy a protokoly

Logy jsou dostupné jak přes Databricks CLI, tak přes stránku MLflow run. Použijte následující příkazy k nalezení workloadů, kontrole workloadu a streamování nebo stahování logů:

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/

Sledování zatížení notebooků

Z notebooku můžete spouštět kód přímo v připojené relaci nebo spouštět distribuované trénování pomocí dekorátoru @distributed z Databricks AI Runtime SDK.

Spusť kód přímo v notebooku

Kód spuštěný přímo v připojeném notebooku automaticky nevytváří spuštění MLflow. Vyberte experiment, poté spusťte spuštění nebo povolte automatické logování:

import mlflow

mlflow.set_experiment("/Users/<username>/my-experiment")

with mlflow.start_run(run_name="baseline"):
    train()

Pro povolení autologování pomocí PyTorch Lightning použijte následující vzor:

mlflow.pytorch.autolog()

with mlflow.start_run(run_name="lightning-baseline"):
    trainer.fit(model, datamodule=datamodule)

Pro transformátory Hugging Face nakonfigurujte TrainingArguments následovně:

from transformers import TrainingArguments

args = TrainingArguments(
    output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
    report_to="mlflow",
    run_name="llama7b-sft-lr3e5",
    logging_steps=50,
)

Použijte Databricks AI Runtime SDK

Pro distribuované trénování z notebooku použijte @distributed dekorátor z Databricks AI Runtime SDK (databricks-sdk-air). SDK je dostupné pod jmenným prostorem databricks.air v GPU prostředí verze 6 a výše, nebo jako serverless_gpu v GPU prostředí verze 5 a níže.

from databricks.air import distributed

@distributed()
def train():
    # Training code
    ...

train.distributed()

Každé .distributed() volání automaticky vytváří spuštění MLflow. Výchozí experiment je /Users/{WORKSPACE_USER}/{notebook-name}. Pro výběr dalšího experimentu ho nastavte před zavoláním .distributed():

mlflow.set_experiment("/Users/<username>/my-experiment")
train.distributed()

Když voláte .distributed() v aktivním běhu, AI Runtime vytvoří vnořený potomkový běh:

with mlflow.start_run() as parent_run:
    train.distributed()

Pro pokračování v předchozím běhu nastavte MLFLOW_RUN_ID před .distributed():

import os

os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
train.distributed()

Použijte odkaz na běh ve výstupu buňky nebo v panelu notebooku Experiment k otevření běhu MLflow.

Zobrazit záznamy

  • Výstup notebooku: Standardní výstup a chyby z tréninkového kódu se objevují ve výstupu buňky notebooku.
  • MLflow logy: U úloh notebooků podporovaných úlohami, jako jsou volání .distributed(remote=True), karta Logs v MLflow zobrazuje výstup z příslušného spuštění úlohy.

Sledujte živé zdroje GPU

Panel s GPU zdroji notebooku ukazuje aktuální využití GPU, paměť a teplotu pro jedno- a víceuzlové pracovní zátěže. Použijte záložku metriky systému MLflow, když potřebujete trvalý záznam navázaný na běh.

Pro otevření panelu připojte notebook k AI Runtime a potom v pravém bočním panelu klikněte na ikonu čipu.Zdroje GPU

Panel prostředků GPU zobrazující využití, paměť a teplotu u každého grafického procesoru.

Panel načítá metriky každých 10 sekund a uchovává až 2 hodiny historických dat. Klikněte na ikonu ObnovitObnovit pro načtení nejnovějších hodnot. Po 5 minutách nečinnosti se panel pozastaví. Znovu ho otevři a pokračuj v monitorování.

Zobrazit logy v záložce MLflow Logs

Záložka Logs na stránce spuštění MLflow zobrazuje výstup pracovní zátěže AI Runtime využívající úlohu. Chcete-li ji otevřít, přejděte na stránku Run a klikněte na Logs.

U nových běhů karta Logs nahrazuje záznamové soubory dříve uložené na kartě Artefakty běhu, která je zastaralá. Běhy vytvořené dříve uchovávají své logy na záložce Artefakty .

Z karty Logy můžete:

  • Vyhledávání: Zobrazit pouze řádky, které obsahují vyhledávací výraz.
  • Filtrujte podle uzlu, úrovně a časového rozsahu: Vyberte jeden uzel víceuzlové zátěže, zobrazte pouze informace, varovné nebo chybové řádky, nebo zúžte zobrazení na časové rozmezí.
  • Sledujte běžící pracovní zátěž: Během běhu se objevují nové výstupy, jakmile přicházejí. Posunutím nahoru pozastavíte sledování.
  • Zkopírovat a stáhnout: Zkopírovat načtené řádky, nebo stáhnout každý řádek, který odpovídá aktuálním filtrům.

Uchovávání logů

Záznamy jsou dostupné na záložce Logs po dobu 60 dnů.

Řešení potíží s přístupem k logům

Záložka Logs na stránce běhu MLflow průběžně zobrazuje výstup z příslušného spuštění úlohy Azure Databricks. Přístup k experimentu MLflow neznamená přístup k úloze.

Pokud karta ukazuje, že k těmto logům nemáte přístup, požádejte uživatele s oprávněním Může spravovat nebo správce pracovního prostoru, aby vám alespoň povolil možnost Může zobrazit u úlohy. Vizte řízení přístupu k úloze.

Globální limity v Azure Databricks

Viz Omezení prostředků.