Sdílet prostřednictvím


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.

Spuštění MLflow odpovídá jedinému spuštění kódu modelu. Každé spuštění zaznamenává informace, jako je poznámkový blok, který spuštění spustil, všechny modely vytvořené spuštěním, parametry modelu a metriky uložené jako páry klíč-hodnota, značky pro metadata spuštění a všechny artefakty nebo výstupní soubory vytvořené spuštěním.

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

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 spuštění 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 běhu zobrazuje parametry použité pro běh, metriky, které jsou výsledkem běhu, a podrobnosti o běhu, včetně odkazu na zdrojový notebook. Artefakty uložené ze spuštění jsou k dispozici na záložce Artefakty.

Zobrazení spuštění

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.

predikce fragmentů kódu

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

Zobrazení verze poznámkového bloku, který vytvořil spuštění:

  • 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 na bočním panelu Spuštění experimentu na Notebook Version Iconikonu poznámkového bloku v poli pro 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 ke spuštění

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

  1. V tabulce Podrobnosti na stránce spustitklikněte na Přidat vedle Značky.

    tabulka značek

  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í značky pro spuštění

  1. V tabulce Podrobnosti na stránce spustitklikněte na Ikona tužky. vedle existujících značek.

    tabulka 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 tlačítko Uložit značky.

Reprodukujte softwarové prostředí spuštění.

Přesné softwarové prostředí pro spuštění můžete reprodukovat kliknutím na Reprodukovat spuštění v pravém horním rohu stránky spuštění. Zobrazí se následující dialogové okno:

Dialogové okno Reprodukovat spuštění

Při použití výchozího nastavení klepněte na tlačítko Potvrdit:

  • Poznámkový blok se naklonuje do umístění zobrazeného v dialogovém okně.
  • Pokud původní cluster stále existuje, klonovaný poznámkový blok se připojí k původnímu clusteru a cluster se spustí.
  • Pokud původní cluster již neexistuje, vytvoří se a spustí nový cluster se stejnou konfigurací, včetně nainstalovaných knihoven. Poznámkový blok je připojený k novému clusteru.

Pro klonovaný poznámkový blok můžete vybrat jiné umístění a zkontrolovat konfiguraci clusteru a nainstalované knihovny:

  • Pokud chcete vybrat jinou složku pro uložení naklonovaného poznámkového bloku, klikněte na Upravit složku.
  • Pokud chcete zobrazit specifikaci clusteru, klikněte na Zobrazit specifikaci. Pokud chcete klonovat jenom poznámkový blok, ne cluster, zrušte zaškrtnutí této možnosti.
  • Pokud původní cluster již neexistuje, zobrazí se knihovny nainstalované v původním clusteru kliknutím na Zobrazit knihovny. Pokud původní cluster stále existuje, bude tato část zašedlá.

Přejmenovat spuštění

Chcete-li přejmenovat spuštění, klikněte na nabídku kebab kebab menu v pravém horním rohu stránky spuštění (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 průběhů na stránce podrobností experimentu, klikněte na Sloupce a vyberte z rozbalovacího seznamu.

Spuštění filtru

V tabulce na stránce podrobností experimentu můžete vyhledávat spuštění na základě hodnot parametrů nebo metrik. Můžete také vyhledat spuštění 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. Použití MIN nebo MAX umožňuje hledat 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.

  • Pokud chcete vyhledat spuštění 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 backtick, 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

Stahování spuštění

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

  1. Kliknutím na nabídku 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í 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 spuštění nebo chcete stahovat spuštění prostřednictvím kódu programu, 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. V experimentu vyberte jedno nebo více spuštění kliknutím do zaškrtávacího políčka vlevo od spuštění.
  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ů. Pokud chcete zobrazit odstraněná spuštění, vyberte v poli Stát možnost Odstraněno .

Hromadné odstranění se spouští na základě času 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í spuštění a vrácení počtu odstraněných spuštění.

Následují mlflow.delete_runs parametry:

  • experiment_id: ID experimentu obsahujícího spuštění, která se mají odstranit.
  • max_timestamp_millis: Maximální časové razítko vytváření v milisekundách od epochy UNIX pro odstranění spuštění. 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"]

V dokumentaci k rozhraní API služby Azure Databricks Experiments najdete parametry a specifikace návratových hodnot pro odstranění spuštění na základě času vytvoření.

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 Odstranit, aby se zobrazily odstraněné běhy.
  2. Kliknutím na zaškrtávací políčko vlevo od spuštění vyberte jedno nebo více spuštění.
  3. Klikněte na Obnovit.
  4. Kliknutím na Obnovit potvrďte. Obnovená spuštění se teď zobrazí, když v poli Stav vyberete Aktivní.

Hromadné obnovení se spouští 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 mlflow.restore_runs rozhraní API k obnovení spuštění a vrátit počet obnovených spuštění.

Následují mlflow.restore_runs parametry:

  • experiment_id: ID experimentu obsahujícího spuštění k obnovení.
  • min_timestamp_millis: Minimální časové razítko odstranění v milisekundách od epochy UNIX pro obnovení spuštění. Spustí se pouze po obnovení tohoto časového razítka nebo po tomto časovém razítku.
  • 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, max_runs výchozí hodnota 1 0000.
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 návratových specifikacích pro obnovení spuštění na základě času odstranění najdete v dokumentaci k rozhraní API služby Azure Databricks Experiments.

Porovnání spuštění

Můžete porovnat spuštění z jednoho experimentu nebo z několika experimentů. Stránka Porovnání spuštění obsahuje informace o vybraných spuštěních v grafických a tabulkových formátech. Můžete také vytvářet vizualizace výsledků spuštění a tabulek informací o spuštění, parametrů spuštění a metrik.

Vytvoření vizualizace:

  1. Vyberte typ grafu (paralelní souřadnice, bodový graf nebo obrysový graf).
    1. Pro graf paralelních souřadnic vyberte parametry a metriky, které se mají vykreslit. Odtud můžete identifikovat vztahy mezi vybranými parametry a metrikami, což vám pomůže lépe definovat prostor pro ladění hyperparametrů pro vaše modely.

      porovnání vizualizace stránky spuštění

    2. U bodového grafu nebo obrysového grafu vyberte parametr nebo metriku, které se mají zobrazit na každé ose.

Tabulky Parametry a metriky zobrazují parametry spuštění a metriky ze všech vybraných spuštění. Sloupce v těchto tabulkách jsou identifikované tabulkou Podrobností o spuštění bezprostředně nad ní. Pro zjednodušení můžete skrýt parametry a metriky, které jsou identické ve všech vybraných spuštěních přepnutím Tlačítko Zobrazit pouze rozdíl.

compare runs page tables

Porovnání spuštění z jednoho experimentu

  1. Na stránce s podrobnostmi o experimentu vyberte dva nebo více běhů 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> spuštění.

Porovnání spuštění z několika experimentů

  1. Na stránce Experimenty vyberte 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). Zobrazí se obrazovka zobrazující všechna spuštění 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 zaškrtnutím políčka v horní části sloupce zaškrtněte všechna spuštění.
  4. Klikněte na Porovnat. Zobrazí se obrazovka Porovnání <N> spuštění.

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

K importu nebo exportu MLflow do nebo z pracovního prostoru Databricks můžete použít opensourcový opensourcový projekt MLflow Export-Import řízené komunitou.