Zobrazení výsledků trénování pomocí spuštění MLflow

Tento článek popisuje, jak pomocí běhů MLflow zobrazit a analyzovat výsledky experimentu trénování modelu a jak spravovat a organizovat spuštění. Další informace o experimentech MLflow najdete v tématu Uspořádání trénovacích běhů pomocí experimentů MLflow.

Jeden běh MLflow odpovídá jedinému běhu kódu modelu. Každý běh zaznamenává informace, jako je poznámkový blok, který běh spustil, všechny modely vytvořené během, parametry modelu a metriky uložené jako páry klíč-hodnota, značky metadat běhu a všechny artefakty nebo výstupní soubory vytvořené během.

Všechna spuštění MLflow se protokolují do aktivního experimentu. Pokud jste experiment explicitně nenastavili jako aktivní, spuštění se zaprotokolují do experimentu poznámkového bloku.

Zobrazit podrobnosti o spuštění

K běhu můžete přistupovat buď ze stránky podrobností o experimentu, nebo přímo z poznámkového bloku, který běh spustil.

Na stránce s podrobnostmi o experimentu klikněte na název běhu v tabulce běhů.

Spustit experiment ze stránek s podrobnostmi experimentu

V poznámkovém bloku klikněte na název spuštění v bočním panelu s běhy experimentu.

spuštění experimentu z poznámkového bloku

Obrazovka spuštění zobrazuje ID spuštění, parametry použité pro spuštění, metriky, které jsou výsledkem spuštění, a podrobnosti o spuštění, včetně odkazu na zdrojový poznámkový blok. Artefakty uložené ze spuštění jsou k dispozici na záložce Artefakty.

Zobrazit průběh

Fragmenty kódu pro predikci

Pokud model zapíšete během spuštění, zobrazí se také na kartě Artifacts spolu s fragmenty kódu, které ilustrují, jak načíst a použít model k vytváření předpovědí pro datové rámce Spark a Pandas. V MLflow 3 jsou modely nyní samostatným prvotřídním objektem namísto toho, aby byly protokolovány jako artefakty spuštění. Další informace najdete v tématu Začínáme s MLflow 3 pro modely.

predikce fragmentů kódu

Zobrazení poznámkového bloku použitého pro spuštění

Aby jste zobrazili verzi poznámkového bloku, který vytvořil běh:

  • Na stránce podrobností experimentu klikněte na odkaz ve sloupci Zdroj.
  • Na stránce spuštění klikněte na odkaz vedle položky Zdroj.
  • V poznámkovém bloku klikněte v bočním panelu Spuštění experimentu na ikonu v poli pro dané spuštění experimentu.

Verze poznámkového bloku přidruženého ke spuštění se zobrazí v hlavním okně s panelem zvýraznění s datem a časem spuštění.

Přidání značky k běhu

Značky jsou páry klíč-hodnota, které můžete vytvořit a použít později k hledání běhů.

  1. V tabulce Podrobnosti na stránce běhu klikněte na Přidat značky vedle Tagy.

    Tlačítko Značka na stránce Podrobnosti

  2. Otevře se dialogové okno Přidat/Upravit značky. Do pole Klíč zadejte název klíče a klikněte na Přidat značku.

    Přidat značku

  3. Do pole Hodnota zadejte hodnotu pro značku.

  4. Klikněte na znaménko plus pro uložení dvojice klíč-hodnota, kterou jste právě zadali.

    znaménko plus pro uložení páru klíč-hodnota.

  5. Pokud chcete přidat další značky, opakujte kroky 2 až 4.

  6. Až budete hotovi, klikněte na Uložit značky.

Úprava nebo odstranění štítku pro spuštění

  1. V tabulce Podrobností na stránce spuštění klikněte na ikonu Tužka. Vedle existujících značek.

    tabulky značek

  2. Otevře se dialogové okno Přidat/Upravit značky.

    1. Pokud chcete odstranit značku, klikněte na symbol X na této značce.

      Odstranit značku.

    2. Pokud chcete upravit značku, vyberte klíč z rozevírací nabídky a upravte hodnotu v poli Hodnota. Kliknutím na znaménko plus uložte změnu.

      Upravit značku

  3. Až budete hotovi, klikněte na Uložit značky.

Přejmenovat spuštění

Pokud chcete přejmenovat běh, klikněte na ikonu nabídky Kebab v pravém horním rohu stránky běhu (vedle tlačítka Oprávnění) a vyberte Přejmenovat.

Přejmenujte běh na stránce běhu.

Výběr sloupců, které se mají zobrazit

Pokud chcete ovládat sloupce zobrazené v tabulce běhů na stránce podrobností experimentu, klikněte na Sloupce a vyberte z rozevírací nabídky.

Běhy filtru

V tabulce na stránce s podrobnostmi o experimentu můžete vyhledávat spuštění podle hodnot parametrů či metrik. Můžete také vyhledat běhy podle značky.

  • Pokud chcete vyhledat spuštění, která odpovídají výrazu obsahujícímu hodnoty parametrů a metrik, zadejte do vyhledávacího pole dotaz a stiskněte Enter. Mezi příklady syntaxe dotazů patří:

    metrics.r2 > 0.3

    params.elasticNetParam = 0.5

    params.elasticNetParam = 0.5 AND metrics.avg_areaUnderROC > 0.3

    MIN(metrics.rmse) <= 1

    MAX(metrics.memUsage) > 0.9

    LATEST(metrics.memUsage) = 0 AND MIN(metrics.rmse) <= 1

    Ve výchozím nastavení se hodnoty metrik filtrují na základě poslední zaprotokolované hodnoty. Pomocí MIN nebo MAX můžete vyhledávat spuštění na základě minimálních nebo maximálních hodnot metrik. Po srpnu 2024 se protokolují pouze spuštění s minimálními a maximálními hodnotami metrik.

  • Pro vyhledání běhů podle značky zadejte značky ve formátu: tags.<key>="<value>". Řetězcové hodnoty musí být uzavřeny v uvozovkách, jak je znázorněno.

    tags.estimator_name="RandomForestRegressor"

    tags.color="blue" AND tags.size=5

    Klíče i hodnoty můžou obsahovat mezery. Pokud klíč obsahuje mezery, musíte ho uzavřít do obrácených apostrofů, jak je znázorněno.

    tags.`my custom tag` = "my value"
    

Můžete také filtrovat spuštění podle jejich stavu (Aktivní nebo Odstraněno), kdy se spuštění vytvořilo a jaké datové sady se použily. Uděláte to tak, že si vyberete z rozevíracích nabídek Čas vytvoření, Stavnebo Datové sady.

Spuštění filtru

Zahájení stahování

Běhy můžete stáhnout z podrobností experimentu na stránce následujícími kroky:

  1. Kliknutím na ikonu nabídky Kebab otevřete nabídku kebabu.

    kebab menu s možnostmi stahování na stránce Experimenty.

  2. Pokud chcete stáhnout soubor ve formátu CSV obsahujícím všechny zobrazené běhy (maximálně 100), vyberte Stáhnout <n> běhy. MLflow vytvoří a stáhne soubor s jedním spuštěním na řádek, který obsahuje následující pole pro každé spuštění:

    Start Time, Duration, Run ID, Name, Source Type, Source Name, User, Status, <parameter1>, <parameter2>, ..., <metric1>, <metric2>, ...
    
  3. Pokud chcete stáhnout více než 100 běhů nebo chcete stahovat běhy programově, vyberte Stáhnout všechna spuštění. Otevře se dialogové okno s fragmentem kódu, který můžete zkopírovat nebo otevřít v poznámkovém bloku. Po spuštění tohoto kódu v buňce poznámkového bloku vyberte Stáhnout všechny řádky z výstupu buňky.

Odstranění spuštění

Záznamy můžete odstranit ze stránky s podrobnostmi experimentu pomocí následujícího postupu:

  1. Při experimentu vyberte jeden nebo více běhů kliknutím na zaškrtávací políčko vlevo od běhu.
  2. Klepněte na tlačítko Odstranit.
  3. Pokud je spuštěním nadřazené spuštění, rozhodněte se, jestli chcete odstranit také následná spuštění. Ve výchozím nastavení je tato možnost vybrána.
  4. Kliknutím na Odstranit potvrďte. Odstraněná spuštění se ukládají po dobu 30 dnů. Chcete-li zobrazit odstraněná spuštění, vyberte v poli Stav možnost Odstraněno.

Hromadné odstranění záznamů podle času jejich vytvoření.

Python můžete použít k hromadnému odstranění spuštění experimentu, který byl vytvořen před nebo v časovém razítku systému UNIX. Pomocí Databricks Runtime 14.1 nebo novější můžete volat mlflow.delete_runs rozhraní API k odstranění běhů a návratu počtu odstraněných běhů.

Následují parametry mlflow.delete_runs:

  • experiment_id: ID experimentu, který obsahuje běhy, které je třeba odstranit.
  • max_timestamp_millis: Maximální časové razítko vytvoření v milisekundách od UNIXové epochy pro smazání běhů. Odstraní se pouze spuštění vytvořená před nebo v tomto časovém razítku.
  • max_runs:Volitelný. Kladné celé číslo označující maximální počet spuštění, která se mají odstranit. Maximální povolená hodnota pro max_runs je 1 0000. Pokud není zadáno, max_runs výchozí hodnota je 1 0000.
import mlflow

# Replace <experiment_id>, <max_timestamp_ms>, and <max_runs> with your values.
runs_deleted = mlflow.delete_runs(
  experiment_id=<experiment_id>,
  max_timestamp_millis=<max_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_deleted = mlflow.delete_runs(
  experiment_id="4183847697906956",
  max_timestamp_millis=1711990504000,
  max_runs=10
)

Pomocí Databricks Runtime 13.3 LTS nebo starší můžete v poznámkovém bloku Azure Databricks spustit následující klientský kód.

from typing import Optional

def delete_runs(experiment_id: str,
                max_timestamp_millis: int,
                max_runs: Optional[int] = None) -> int:
    """
    Bulk delete runs in an experiment that were created prior to or at the specified timestamp.
    Deletes at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to delete.
    :param max_timestamp_millis: The maximum creation timestamp in milliseconds
                                 since the UNIX epoch for deleting runs. Only runs
                                 created prior to or at this timestamp are deleted.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to delete. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs deleted.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request

    json_body = {"experiment_id": experiment_id, "max_timestamp_millis": max_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/delete-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_deleted"]

Informace o parametrech a specifikacích návratových hodnot pro odstraňování spuštění na základě času vytvořenínajdete v dokumentaci k rozhraní API služby Azure Databricks Experiments.

Obnovení běhů

Dříve odstraněná spuštění můžete obnovit z uživatelského rozhraní následujícím způsobem:

  1. Na stránce Experiment v poli Stav vyberte Odstraněné, aby se zobrazila odstraněná spuštění.
  2. Chcete-li vybrat jeden nebo více běhů, klikněte na zaškrtávací políčko vlevo od běhu.
  3. Klikněte na Obnovit.
  4. Klikněte na Obnovit pro potvrzení. Obnovené spuštění se teď zobrazí, když v poli Stav vyberete Aktivní.

Hromadná obnova se provádí na základě času odstranění.

Python můžete použít také k hromadnému obnovení spuštění experimentu, který byl odstraněn v časovém razítku systému UNIX nebo po ní. Pomocí Databricks Runtime 14.1 nebo novějšího můžete volat rozhraní API mlflow.restore_runs k obnovení spuštění a získání počtu obnovených spuštění.

Následují parametry mlflow.restore_runs:

  • experiment_id: ID experimentu obsahujícího spuštění k obnovení.
  • min_timestamp_millis: Minimální časové razítko smazání v milisekundách od epochy UNIX pro obnovu úloh. Pouze spuštění smazaná v čase nebo po tomto časovém razítku jsou obnovena.
  • max_runs:Volitelný. Kladné celé číslo, které označuje maximální počet spuštění k obnovení. Maximální povolená hodnota pro max_runs je 1 0000. Pokud není zadáno, je výchozí hodnotou max_runs 10 000.
import mlflow

# Replace <experiment_id>, <min_timestamp_ms>, and <max_runs> with your values.
runs_restored = mlflow.restore_runs(
  experiment_id=<experiment_id>,
  min_timestamp_millis=<min_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_restored = mlflow.restore_runs(
  experiment_id="4183847697906956",
  min_timestamp_millis=1711990504000,
  max_runs=10
)

Pomocí Databricks Runtime 13.3 LTS nebo starší můžete v poznámkovém bloku Azure Databricks spustit následující klientský kód.

from typing import Optional

def restore_runs(experiment_id: str,
                 min_timestamp_millis: int,
                 max_runs: Optional[int] = None) -> int:
    """
    Bulk restore runs in an experiment that were deleted at or after the specified timestamp.
    Restores at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to restore.
    :param min_timestamp_millis: The minimum deletion timestamp in milliseconds
                                 since the UNIX epoch for restoring runs. Only runs
                                 deleted at or after this timestamp are restored.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to restore. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs restored.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request
    json_body = {"experiment_id": experiment_id, "min_timestamp_millis": min_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/restore-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_restored"]

Informace o parametrech a specifikacích návratových hodnot pro obnovení na základě času odstraněnínajdete v dokumentaci k rozhraní API služby Azure Databricks Experiments.

Porovnat průběhy

Běhy z jednoho experimentu nebo z několika experimentů můžete porovnat. Stránka Porovnání spuštění obsahuje informace o vybraných spuštěních v tabulkovém formátu. Můžete také vytvářet vizualizace výsledků spuštění a tabulek informací o spuštění, parametrů spuštění a metrik. Podívejte se na Porovnání běhů a modelů MLflow pomocí grafů a tabulek.

Tabulky Parametry a Metriky zobrazují parametry a metriky všech vybraných běhů. Sloupce v těchto tabulkách jsou identifikované podrobnostmi Spuštění tabulce bezprostředně nad ní. Pro zjednodušení můžete skrýt parametry a metriky, které jsou ve všech vybraných spuštěních stejné, přepnutím tlačítka Zobrazit pouze rozdíly.

porovnání výkonu stránkovacích tabulek

Porovnání běhů z jednoho experimentu

  1. Na stránce s podrobnostmi o experimentu vyberte dvě nebo více spuštění kliknutím na zaškrtávací políčko vlevo od běhu nebo zaškrtnutím políčka v horní části sloupce vyberte všechny běhy.
  2. Klikněte na Porovnat. Zobrazí se obrazovka Porovnání <N> běhů.

Porovnejte běhy z několika experimentů

  1. Na stránce experimentyvyberte experimenty, které chcete porovnat, kliknutím do pole nalevo od názvu experimentu.
  2. Klikněte na Porovnat (n) (n je počet experimentů, které jste vybrali). Objeví se obrazovka zobrazující všechny provedené běhy z vybraných experimentů.
  3. Vyberte dvě nebo více spuštění kliknutím na zaškrtávací políčko vlevo od spuštění, nebo vyberte všechna spuštění zaškrtnutím políčka v horní části sloupce.
  4. Klikněte na Porovnat. Zobrazí se obrazovka Porovnání <N> běhů.

Porovnejte běhy pomocí systémových tabulek

Metadata MLflow pro experimenty a spuštění jsou dostupná také v systémových tabulkách, kde můžete využít Databricks SQL a všechny nástroje Lakehouse, které Databricks nabízí k analýze dat experimentu. Další podrobnosti najdete v referenčních informacích k systémovým tabulkám MLflow.

Kopírování probíhá mezi pracovními prostory

K importu nebo exportu MLflow do pracovního prostoru Databricks nebo z něj můžete použít projektem open source MLflow Export-Import řízený komunitou.