Megosztás a következőn keresztül:


Kísérletkövetés és megfigyelhetőség

Fontos

Az egycsomópontos feladatokhoz készült AI-futtatókörnyezet nyilvános előzetes verzióban érhető el. A több GPU-s számítási feladatok elosztott betanítási API-ja a bétaverzióban marad.

Ez a cikk bemutatja az MLflow használatát, a GPU állapotának monitorozását, a naplók megtekintését és a modell ellenőrzőpontjainak kezelését az AI-futtatókörnyezetben.

MLflow-integráció

Az AI Runtime natív módon integrálható az MLflow-jal a kísérletkövetés, a modellnaplózás és a metrikavizualizáció érdekében.

Telepítési javaslatok:

  • Frissítse az MLflow-t a 3.7-es vagy újabb verzióra, és kövesse a mélytanulási munkafolyamat-mintákat.

  • Automatikus naplózás engedélyezése a PyTorch Lightninghoz:

    import mlflow
    mlflow.pytorch.autolog()
    
  • Az MLflow-futtatás nevének testreszabásához foglalja bele a modell betanítási kódját az mlflow.start_run() API hatókörébe. Ezzel szabályozhatja a futtatás nevét, és lehetővé teszi az előző futtatásból való újraindítást. A futtatás nevét testreszabhatja a run_name paraméterrel az mlflow.start_run(run_name="your-custom-name") vagy az MLflow-t támogató külső könyvtárakban (például a Hugging Face Transformersben). Ellenkező esetben az alapértelmezett futtatási név a következő jobTaskRun-xxxxx: .

    from transformers import TrainingArguments
    args = TrainingArguments(
        report_to="mlflow",
        run_name="llama7b-sft-lr3e5",  # <-- MLflow run name
        logging_steps=50,
    )
    
  • A kiszolgáló nélküli GPU API automatikusan elindít egy MLflow-kísérletet alapértelmezett névvel /Users/{WORKSPACE_USER}/{get_notebook_name()}. A felhasználók felülírhatják a környezeti változóval MLFLOW_EXPERIMENT_NAME. Mindig használjon abszolút elérési utakat a MLFLOW_EXPERIMENT_NAME környezeti változóhoz:

    import os
    os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"
    
  • Folytassa a korábbi betanítást a MLFLOW_RUN_ID korábbi futtatás során beállított értékekkel.

    mlflow.start_run(run_id="<previous-run-id>")
    
  • Állítsa be a step paramétert MLFlowLogger ésszerű kötegszámokra. Az MLflow korlátja 10 millió metrikus lépés – nagy edzési futtatások során minden egyes köteg naplózása elérheti ezt a korlátot. Lásd: Erőforráskorlátok.

Naplók megtekintése

  • Jegyzetfüzet kimenet – A tanítási kód szokásos kimenete és hibaüzenetei megjelennek a jegyzetfüzet cella kimenetében.
  • Illesztőprogram-naplók – Elérhető a számítási panelen az indítási problémák, a környezetbeállítási problémák és a futásidejű hibák hibakereséséhez.
  • MLflow-naplók – A betanítási metrikák, paraméterek és összetevők az MLflow-kísérlet felhasználói felületén tekinthetők meg.

Modell ellenőrzési pont

Mentse a modell ellenőrzőpontjait a Unity Catalog-kötetekre, amelyek ugyanazt a szabályozást biztosítják, mint a többi Unity Catalog-objektum. A Databricks jegyzetfüzet köteteiben lévő fájlokra az alábbi elérési útvonal formátum használatával hivatkozhat:

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

Az ellenőrzőpontokat ugyanúgy mentheti kötetekre, mint a helyi tárolóba.

Az alábbi példa bemutatja, hogyan írhat PyTorch ellenőrzőpontot a Unity Katalógus köteteibe:

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)

Ez a módszer az elosztott ellenőrzőpontok esetében is működik. Az alábbi példa az elosztott modell ellenőrzőpont-használatát mutatja be a Torch Distributed Checkpoint API-val:

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")

Többfelhasználós együttműködés

  • Annak érdekében, hogy minden felhasználó hozzáférhessen a megosztott kódhoz (például segédmodulokhoz vagy környezeti YAML-fájlokhoz), tárolja őket /Workspace/Shared a felhasználóspecifikus mappák helyett, például /Workspace/Users/<your_email>/.
  • Aktív fejlesztés alatt lévő kód esetén használja a Git-mappákat felhasználóspecifikus mappákban /Workspace/Users/<your_email>/ , és küldje el a távoli Git-adattárakba. Ez lehetővé teszi, hogy több felhasználó rendelkezik felhasználóspecifikus klónral és áglal, miközben a verziókövetéshez továbbra is távoli Git-adattárat használ. Ajánlott eljárások a Git databricksen való használatához.
  • A közreműködők megoszthatják és megjegyzéseket fűzhetnek a jegyzetfüzetekhez.

Globális korlátok a Databricksben

Lásd: Erőforráskorlátok.