Sledování experimentů a pozorovatelnost

Důležité

Tato funkce je ve verzi Public Preview.

AI Runtime se nativně integruje s MLflow pro sledování experimentů a zahrnuje integrované podokno prostředků GPU pro monitorování využití, paměti a teploty. Pomocí MLflow můžete protokolovat metriky a spuštění, zobrazit výstup trénování v poznámkovém bloku a uživatelském rozhraní MLflow, uložit kontrolní body modelu do svazků katalogu Unity a sledovat stav GPU při spuštění kódu.

Tip

  • AI Runtime se nativně integruje s MLflow pro sledování experimentů a logování modelů.
  • Vestavěný panel prostředků GPU zobrazuje využití, paměť a teplotu.
  • Ukládejte kontrolní body modelu do volumů ve službě Unity Catalog.

Integrace MLflow

AI Runtime se nativně integruje s MLflow pro sledování experimentů, protokolování modelů a vizualizaci metrik.

Doporučení k nastavení:

  • Upgradujte MLflow na verzi 3.7 nebo novější a postupujte podle vzorů pracovních postupů hlubokého učení.

  • Povolení automatického přihlašování pro PyTorch Lightning:

    import mlflow
    mlflow.pytorch.autolog()
    
  • Přizpůsobte si název spuštění MLflow zapouzdřením trénovacího kódu modelu ve mlflow.start_run() rámci rozhraní API. Tím získáte kontrolu nad názvem spuštění a umožníte restartování z předchozího spuštění. Název spuštění můžete přizpůsobit pomocí parametru run_name v mlflow.start_run(run_name="your-custom-name") knihovnách třetích stran, které podporují MLflow (například Hugging Face Transformers). V opačném případě je výchozí název spuštění jobTaskRun-xxxxx.

    from transformers import TrainingArguments
    args = TrainingArguments(
        report_to="mlflow",
        run_name="llama7b-sft-lr3e5",  # <-- MLflow run name
        logging_steps=50,
    )
    
  • Při použití bezserverového GPU API každé volání .distributed() automaticky vytvoří běh experimentu v MLflow. Pokud je volána v rámci aktivního běhu MLflow, místo toho se v rámci aktivního nadřazeného běhu vytvoří vnořený podřízený běh.

    import mlflow
    
    with mlflow.start_run() as outer_run:
        ...
        run_train.distributed()  # creates a nested child run under outer_run
    
  • Chcete-li přizpůsobit experiment používaný funkcí .distributed(), zavolejte mlflow.set_experiment() před voláním .distributed() nebo nastavte proměnnou prostředí MLFLOW_EXPERIMENT_NAME. Výchozí název experimentu je /Users/{WORKSPACE_USER}/{notebook-name}. Vždy používejte absolutní cesty.

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

    Alternatively:

    import os
    os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"
    
  • Pokud chcete obnovit předchozí spuštění MLflow, použijte mlflow.start_run(run_id="<previous-run-id>").

  • Chcete-li obnovit předchozí běh MLflow pomocí .distributed(), nastavte před jeho zavoláním MLFLOW_RUN_ID:

    os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
    run_train.distributed()
    
  • Nastavte parametr step v MLFlowLogger na přiměřené hodnoty dávkového zpracování. MLflow má limit 10 milionů kroků metrik, takže zaznamenávání každé jednotlivé dávky u rozsáhlých trénovacích běhů může na tento limit narazit. Viz Omezení prostředků.

Zobrazení protokolů

  • Výstup notebooku: Standardní výstup a chybový výstup z vašeho trénovacího kódu se zobrazují ve výstupu buňky notebooku.
  • Protokoly MLflow: Uživatelské rozhraní experimentu MLflow zobrazuje metriky trénování, parametry a artefakty.

Pokud nemůžete zobrazit záznamy

Záložka Logs na stránce běhu MLflow průběžně zobrazuje protokoly z běhu úlohy Databricks přidruženého k běhu MLflow, takže přístup se řídí oprávněními dané úlohy. Pokud záložka ukazuje, že nemáte přístup k těmto logům, uživatelé nemají dostatečná oprávnění.

Přístup k běhu v MLflow neznamená přístup k dané práci. Můžete mít povolení k experimentu MLflow a přesto vám budou logy odepřeny. Pro získání přístupu požádejte uživatele s oprávněními Can Manage nebo správce pracovního prostoru, aby vám alespoň na práci povolili Can View . Viz Řízení přístupu k úloze, kde najdete informace o tom, jak jsou oprávnění k úloze udělována.

Vytváření kontrolních bodů modelu

Pro distribuovaný trénink ukládejte stav modelu a optimalizátoru do svazků ve službě Unity Catalog pomocí rozhraní API Torch Distributed Checkpoint (DCP) s úložnými backendy serverless_gpu.data.UCVolumeWriter a serverless_gpu.data.UCVolumeReader. Ukládejte asynchronně, aby trénink pokračoval i během nahrávání kontrolního bodu, a kontrolní body ukládejte dostatečně často, aby se v případě přerušení omezila ztráta práce. Protože kontrolní bod modelu nezachycuje pozici datového potrubí, také nastavte kontrolní bod v datovém potrubí, aby obnovený běh pokračoval na správných datech.

Úplný postup checkpointování najdete v Zvýšení výkonu trénování a odolnosti v AI Runtime.

Monitorujte prostředky GPU

Pomocí podokna prostředků GPU můžete monitorovat stav a využití GPU během spouštění kódu v prostředí AI Runtime. Panel podporuje jednouzlové i víceuzlové úlohy.

Pokud chcete podokno otevřít, připojte notebook k AI Runtime a potom v pravém podokně klikněte na ikonu Čip.Prostředky GPU

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

V podokně se zobrazí následující metriky pro každý GPU:

  • Procento využití GPU
  • Využití paměti GPU
  • Teplota

Panel načítá metriky každých 10 sekund a uchovává až 2 hodiny historických dat. Klikněte na ikonu Aktualizovat.Aktualizovat, aby se okamžitě načetly nejnovější hodnoty. Po 5 minutách nečinnosti se podokno pozastaví; znovu ho otevřete, abyste mohli pokračovat v monitorování.

Spolupráce s více uživateli

  • Pokud chcete zajistit, aby všichni uživatelé měli přístup ke sdílenému kódu (například k pomocným modulům nebo souborům YAML prostředí), uložte je /Workspace/Shared místo složek specifických pro uživatele, jako /Workspace/Users/<your_email>/je .
  • Pro kód, který je v aktivním vývoji, použijte uživatelské složky Gitu /Workspace/Users/<your_email>/ a přeneste je do vzdálených úložišť Git. To umožňuje více uživatelům mít klon a větev specifickou pro uživatele, zatímco pro správu verzí stále používá vzdálené úložiště Git. Podívejte se na osvědčené postupy pro používání Gitu v Databricks.
  • Spolupracovníci můžou poznámkové bloky sdílet a komentovat .

Globální limity v Azure Databricks

Viz Omezení prostředků.