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ů.
V poznámkovém bloku klikněte na název spuštění v bočním panelu s běhy experimentu.
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.
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.
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 ikonu 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í.
V tabulce Podrobnosti na stránce spustitklikněte na Přidat vedle Značky.
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.
Do pole Hodnota zadejte hodnotu pro značku.
Klikněte na znaménko plus pro uložení dvojice klíč-hodnota, kterou jste právě zadali.
Pokud chcete přidat další značky, opakujte kroky 2 až 4.
Až budete hotovi, klikněte na Uložit značky.
Úprava nebo odstranění značky pro spuštění
V tabulce Podrobnosti na stránce spustitklikněte na vedle existujících značek.
Otevře se dialogové okno Přidat/Upravit značky.
Pokud chcete odstranit značku, klikněte na symbol X na této značce.
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.
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:
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 v pravém horním rohu stránky spuštění (vedle tlačítka Oprávnění) a vyberte Přejmenovat.
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
neboMAX
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.
Stahování spuštění
Běhy můžete stáhnout z podrobností experimentu na stránce následujícími kroky:
Kliknutím na otevřete nabídku kebabu.
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>, ...
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:
- V experimentu vyberte jedno nebo více spuštění kliknutím do zaškrtávacího políčka vlevo od spuštění.
- Klepněte na tlačítko Odstranit.
- 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.
- 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:
- Na stránce Experiment v poli Stav vyberte Odstranit, aby se zobrazily odstraněné běhy.
- Kliknutím na zaškrtávací políčko vlevo od spuštění vyberte jedno nebo více spuštění.
- Klikněte na Obnovit.
- 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:
- Vyberte typ grafu (paralelní souřadnice, bodový graf nebo obrysový graf).
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.
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 .
Porovnání spuštění z jednoho experimentu
- 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.
- Klikněte na Porovnat. Zobrazí se obrazovka Porovnání
<N>
spuštění.
Porovnání spuštění z několika experimentů
- Na stránce Experimenty vyberte experimenty, které chcete porovnat, kliknutím do pole nalevo od názvu experimentu.
- 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ů.
- 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í.
- 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.