Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
stepna 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-experimentnebo/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 .
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 Zdroje GPU
Panel načítá metriky každých 10 sekund a uchovává až 2 hodiny historických dat. Klikněte na Obnovit 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ů.