Správa trénovacího kódu pomocí spuštění MLflow
Tento článek popisuje spuštění MLflow pro správu trénování strojového učení. Obsahuje také pokyny ke správě a porovnání spuštění napříč experimenty.
Spuštění MLflow odpovídá jedinému spuštění kódu modelu. Každé spuštění zaznamenává následující informace:
- Zdroj: Název poznámkového bloku, který spustil spuštění nebo název projektu a vstupní bod spuštění.
- Verze: Hodnota hash potvrzení Gitu, pokud je poznámkový blok uložený ve složce Git Databricks nebo spuštěný z projektu MLflow. V opačném případě revize poznámkového bloku.
- Počáteční a koncový čas: Počáteční a koncový čas spuštění
- Parametry: Parametry modelu uložené jako páry klíč-hodnota Klíče i hodnoty jsou řetězce.
- Metriky: Metriky vyhodnocení modelu uložené jako páry klíč-hodnota Hodnota je číselná. Každou metriku je možné aktualizovat v průběhu běhu (například ke sledování toho, jak se funkce ztráty modelu konverguje) a záznamy MLflow a umožňuje vizualizovat historii metriky.
- Značky: Spusťte metadata uložená jako páry klíč-hodnota. Značky můžete aktualizovat během a po dokončení spuštění. Klíče i hodnoty jsou řetězce.
- Artefakty: Výstupní soubory v libovolném formátu Můžete například zaznamenávat obrázky, modely (například model pickled scikit-learn) a datové soubory (například soubor Parquet) jako artefakt.
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í.
Zobrazení spuštění
Ke spuštění můžete přistupovat buď z nadřazené stránky experimentu, nebo přímo z poznámkového bloku, který spuštění vytvořil.
Na stránce experimentu klikněte v tabulce spuštění na počáteční čas spuštění.
V poznámkovém bloku klikněte na bočním panelu Spuštění experimentu na datum a čas spuštění.
Na obrazovce spuštění se zobrazí parametry použité pro spuštění, metriky, které jsou výsledkem spuštění, a všechny značky nebo poznámky. Pokud chcete pro toto spuštění zobrazit poznámky, parametry, metriky nebo značky , klikněte vlevo od popisku.
K artefaktům uloženým ze spuštění na této obrazovce se dostanete také.
Fragmenty kódu pro predikci
Pokud protokolujete model ze spuštění, zobrazí se model v části Artefakty na této stránce. Pokud chcete zobrazit fragmenty kódu, které ilustrují načtení a použití modelu k vytváření předpovědí v datových rámcích Spark a pandas, klikněte na název modelu.
Zobrazení poznámkového bloku nebo projektu Gitu použitého ke spuštění
Zobrazení verze poznámkového bloku, který vytvořil spuštění:
- Na stránce 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í.
Pokud se spuštění spustilo vzdáleně z projektu Git, kliknutím na odkaz v poli Potvrzení Gitu otevřete konkrétní verzi projektu použitého ve spuštění. Odkaz v poli Zdroj otevře hlavní větev projektu Git použitého při 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í.
Na stránce spuštění klikněte, pokud ještě není otevřený. Zobrazí se tabulka značek.
Klikněte do polí Název a Hodnota a zadejte klíč a hodnotu značky.
Klikněte na tlačítko Přidat.
Úprava nebo odstranění značky pro spuštění
Pokud chcete upravit nebo odstranit existující značku, použijte ikony ve sloupci Akce .
Reprodukujte softwarové prostředí spuštění.
Přesné softwarové prostředí pro spuštění můžete reprodukovat kliknutím na příkaz Reprodukovat spustit. 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 chcete zobrazit knihovny nainstalované v původním clusteru, klikněte na Zobrazit knihovny. Pokud vás nezajímá instalace stejných knihoven jako v původním clusteru, zrušte zaškrtnutí této možnosti.
Správa spuštění
Přejmenovat spuštění
Chcete-li přejmenovat spuštění, klikněte v pravém horním rohu stránky spuštění a vyberte Přejmenovat.
Spuštění filtru
Spuštění můžete vyhledat 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 dotaz do vyhledávacího pole a klikněte na Hledat. 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) a na základě toho, jestli je k běhu přidružená verze modelu. Uděláte to tak, že provedete výběr z rozevíracích nabídek Stav a Čas vytvoření .
Stahování spuštění
Vyberte jedno nebo více spuštění.
Klikněte na Stáhnout CSV. Soubor CSV obsahující následující pole ke stažení:
Run ID,Name,Source Type,Source Name,User,Status,<parameter1>,<parameter2>,...,<metric1>,<metric2>,...
Odstranění spuštění
Spuštění můžete odstranit pomocí uživatelského rozhraní Databricks Mosaic AI pomocí následujících kroků:
- 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 pomocí uživatelského rozhraní Databricks Mosaic AI.
- Na stránce Experiment vyberte Možnost Odstraněno v poli Stát, aby se zobrazila odstraněná spuštění.
- 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. Pokud chcete zobrazit obnovená spuštění, vyberte v poli Stát 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 experimentu vyberte dvě nebo více spuštění tak, že kliknete na zaškrtávací políčko vlevo od spuštění nebo zaškrtnete všechna spuštění zaškrtnutím políčka v horní části sloupce.
- 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.