Trainingsresultaten weergeven met MLflow-uitvoeringen
In dit artikel wordt beschreven hoe u MLflow-uitvoeringen gebruikt om de resultaten van een modeltrainingsexperiment weer te geven en te analyseren, en hoe u uitvoeringen beheert en ordent. Zie Trainingsuitvoeringen organiseren met MLflow-experimentenvoor meer informatie over MLflow-experimenten.
Een MLflow-uitvoering komt overeen met één uitvoering van modelcode. Elke uitvoering registreert informatie zoals het notebook dat de uitvoering heeft gestart, alle modellen die zijn gemaakt door de uitvoering, modelparameters en metrische gegevens die zijn opgeslagen als sleutel-waardeparen, tags voor uitvoermetagegevens en eventuele artefacten of uitvoerbestanden die door de uitvoering zijn gemaakt.
Alle MLflow-uitvoeringen worden geregistreerd bij het actieve experiment. Als u een experiment niet expliciet hebt ingesteld als het actieve experiment, worden uitvoeringen vastgelegd in het notebookexperiment.
Uitvoeringsdetails weergeven
U kunt toegang krijgen tot een run via de experimentdetailpagina of rechtstreeks vanuit het notebook waarin de run is gemaakt.
Op de detailpagina van het experiment , klik op de uitvoeringsnaam in de tabel met uitvoeringen.
Klik in het notebook op de uitvoeringsnaam in de zijbalk experimentuitvoeringen.
Het uitvoeringsscherm toont de uitvoerings-id, de parameters die worden gebruikt voor de uitvoering, de metrische gegevens die het resultaat zijn van de uitvoering en details over de uitvoering, inclusief een koppeling naar het bronnotebook. Artefacten die zijn opgeslagen tijdens de uitvoering, zijn beschikbaar op het tabblad Artefacten.
Codefragmenten voor voorspelling
Als u een model vanuit een uitvoering aanmeldt, wordt het model weergegeven op het tabblad Artefacten, samen met codefragmenten die illustreren hoe u het model laadt en gebruikt om voorspellingen te doen in Spark- en Pandas-dataframes.
Het notebook bekijken dat wordt gebruikt voor een run
De versie van het notebook weergeven waarmee een uitvoering is gemaakt:
- Klik op de pagina met details van het experiment op de koppeling in de kolom Bron.
- Klik op de uitvoeringspagina op de koppeling naast Bron.
- Klik in het notitieblok in de zijbalk experimentuitvoeringen op het notitieblokpictogram
in het vak voor de uitvoering van het experiment.
De versie van het notebook die is gekoppeld aan de uitvoering wordt weergegeven in het hoofdvenster, waarbij een markeringsbalk de datum en tijd van de uitvoering aangeeft.
Een tag toevoegen aan een uitvoering
Tags zijn sleutel-waardeparen die u later kunt maken en gebruiken om te zoeken naar uitvoeringen.
Klik in de tabel Details op de uitvoeringspaginaop toevoegen naast Tags.
Het dialoogvenster Tags toevoegen/bewerken wordt geopend. Voer in het veld Sleutel een naam in voor de sleutel en klik op Tag toevoegen.
Voer in het veld Waarde de waarde voor de tag in.
Klik op het plusteken om het sleutel-waardepaar op te slaan dat u zojuist hebt ingevoerd.
Als u extra tags wilt toevoegen, herhaalt u stap 2 tot en met 4.
Wanneer u klaar bent, klikt u op Tags opslaan.
Een tag voor een uitvoering bewerken of verwijderen
Klik in de tabel Details op de uitvoeringspaginaop
naast de bestaande tags.
Het dialoogvenster Tags toevoegen/bewerken wordt geopend.
Als u een tag wilt verwijderen, klikt u op de X op die tag.
Als u een tag wilt bewerken, selecteert u de sleutel in de vervolgkeuzelijst en bewerkt u de waarde in het veld Waarde. Klik op het plusteken om de wijziging op te slaan.
Wanneer u klaar bent, klikt u op Tags opslaan.
De softwareomgeving van een uitvoering reproduceren
U kunt de exacte softwareomgeving voor de run reproduceren door op Reproduce Run in de rechterbovenhoek van de run-pagina te klikken. Het volgende dialoogvenster wordt weergegeven:
Met de standaardinstellingen klikt u op Bevestigen:
- Het notebook wordt gekloond naar de locatie die wordt weergegeven in het dialoogvenster.
- Als het oorspronkelijke cluster nog steeds bestaat, wordt het gekloonde notebook gekoppeld aan het oorspronkelijke cluster en wordt het cluster gestart.
- Als het oorspronkelijke cluster niet meer bestaat, wordt er een nieuw cluster met dezelfde configuratie, inclusief geïnstalleerde bibliotheken, gemaakt en gestart. Het notebook is gekoppeld aan het nieuwe cluster.
U kunt een andere locatie voor het gekloonde notebook selecteren en de clusterconfiguratie en geïnstalleerde bibliotheken inspecteren:
- Als u een andere map wilt selecteren om het gekloonde notitieblok op te slaan, klikt u op Map bewerken.
- Als u de clusterspecificatie wilt zien, klikt u op Specificatie weergeven. Als u alleen het notebook en niet het cluster wilt klonen, schakelt u deze optie uit.
- Als het oorspronkelijke cluster niet meer bestaat, kunt u de bibliotheken zien die op het oorspronkelijke cluster zijn geïnstalleerd door te klikken op Bibliotheken weergeven. Als het oorspronkelijke cluster nog steeds bestaat, wordt deze sectie grijs weergegeven.
Naam van uitvoering wijzigen
Als u de naam van een uitvoering wilt wijzigen, klikt u op het kebabmenu in de rechterbovenhoek van de uitvoeringspagina (naast de knop Machtigingen) en selecteert u Naam wijzigen.
Selecteer kolommen om weer te geven
Als u de kolommen wilt beheren die worden weergegeven in de uitvoeringstabel op de pagina met experimentdetails, klikt u op Kolommen en selecteert u in het keuzemenu.
Filteruitvoeringen
U kunt zoeken naar uitvoeringen in de tabel op de pagina met experimentdetails op basis van parameters of metrische waarden. U kunt ook zoeken naar uitvoeringen op tag.
Als u wilt zoeken naar uitvoeringen die overeenkomen met een expressie die parameter- en metrische waarden bevat, voert u een query in het zoekveld in en drukt u op Enter. Enkele voorbeelden van querysyntaxis zijn:
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
Standaard worden metrische waarden gefilterd op basis van de laatst vastgelegde waarde. Met
MIN
ofMAX
kunt u zoeken naar uitvoeringen op basis van respectievelijk de minimum- of maximumwaarden voor metrische gegevens. Alleen uitvoeringen die na augustus 2024 zijn geregistreerd, hebben minimum- en maximumwaarden voor metrische gegevens.Als u wilt zoeken naar uitvoeringen op tag, voert u tags in de indeling in:
tags.<key>="<value>"
. Tekenreekswaarden moeten tussen aanhalingstekens worden geplaatst, zoals wordt weergegeven.tags.estimator_name="RandomForestRegressor"
tags.color="blue" AND tags.size=5
Zowel sleutels als waarden kunnen spaties bevatten. Als de sleutel spaties bevat, moet u deze in backticks plaatsen zoals wordt weergegeven.
tags.`my custom tag` = "my value"
U kunt uitvoeringen ook filteren op basis van hun status (actief of verwijderd), wanneer de uitvoering is gemaakt en welke gegevenssets zijn gebruikt. Hiervoor maakt u uw selecties uit de vervolgkeuzelijsten Aanmaakdatum, Staat, of Datasets.
Uitvoeringen downloaden
U kunt uitvoeringen als volgt downloaden vanaf de pagina Experimentdetails:
Klik op
om het kebabmenu te openen.
Als u een bestand in CSV-indeling met alle weergegeven uitvoeringen wilt downloaden (maximaal 100), selecteert u
<n>
-uitvoeringen downloaden. MLflow maakt en downloadt een bestand met één uitvoering per rij, met de volgende velden voor elke uitvoering:Start Time, Duration, Run ID, Name, Source Type, Source Name, User, Status, <parameter1>, <parameter2>, ..., <metric1>, <metric2>, ...
Als u meer dan 100 uitvoeringen wilt downloaden of uitvoeringen programmatisch wilt downloaden, selecteert u Alle uitvoeringen downloaden. Er wordt een dialoogvenster geopend met een codefragment dat u kunt kopiëren of openen in een notitieblok. Nadat u deze code in een notebookcel hebt uitgevoerd, selecteert u uit de celuitvoer Download alle rijen.
Uitvoeringen verwijderen
U kunt uitvoeringen verwijderen vanaf de pagina met experimentdetails door de volgende stappen uit te voeren:
- Selecteer in het experiment een of meer runs door op het selectievakje links van de run te klikken.
- Klik op Verwijderen.
- Als de uitvoering een bovenliggende uitvoering is, moet u beslissen of u ook onderliggende uitvoeringen wilt verwijderen. Deze optie is standaard geselecteerd.
- Klik op Verwijderen om te bevestigen. Verwijderde uitvoeringen worden 30 dagen opgeslagen. Als u verwijderde uitvoeringen wilt weergeven, selecteert u Verwijderde in de statusveld.
Uitvoeringen voor bulksgewijs verwijderen op basis van de aanmaaktijd
U kunt Python gebruiken om uitvoeringen van een experiment dat is gemaakt vóór of bij een UNIX-tijdstempel bulksgewijs te verwijderen.
Met Databricks Runtime 14.1 of hoger kunt u de mlflow.delete_runs
API aanroepen om uitvoeringen te verwijderen en het aantal verwijderde uitvoeringen te retourneren.
Hier volgen de parameters van mlflow.delete_runs
:
-
experiment_id
: De id van het experiment met de uitvoeringen die moeten worden verwijderd. -
max_timestamp_millis
: De maximale tijdstempel voor het maken in milliseconden sinds de UNIX-epoch voor het verwijderen van uitvoeringen. Alleen uitvoeringen die vóór of op deze tijdstempel zijn gemaakt, worden verwijderd. -
max_runs
:Facultatief. Een positief geheel getal dat het maximum aantal uitvoeringen aangeeft dat moet worden verwijderd. De maximaal toegestane waarde voor max_runs is 10000. Als dit niet is opgegeven,max_runs
wordt standaard ingesteld op 10000.
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
)
Met Databricks Runtime 13.3 LTS of eerder kunt u de volgende clientcode uitvoeren in een Azure Databricks Notebook.
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"]
Zie de DOCUMENTATIE van de Azure Databricks Experiments-API voor parameters en specificaties voor retourwaarden voor het verwijderen van uitvoeringen op basis van aanmaaktijd.
Hersteluitvoeringen
U kunt eerder verwijderde uitvoeringen via de gebruikersinterface als volgt herstellen:
- Selecteer in het veld State op de pagina ExperimentVerwijderde om de verwijderde uitvoeringen weer te geven.
- Selecteer een of meer runs door in het selectievakje links van de run te klikken.
- Klik op herstellen.
- Klik op Herstellen om te bevestigen. De herstelde uitvoeringen worden nu weergegeven wanneer u Actieve selecteert in het veld Status.
Herstelacties worden bulksgewijs uitgevoerd op basis van de verwijderingstijd
U kunt Python ook gebruiken om bulksgewijs uitvoeringen te herstellen van een experiment dat is verwijderd op of na een UNIX-tijdstempel.
Met Databricks Runtime 14.1 of hoger kunt u de mlflow.restore_runs
-API aanroepen om uitvoeringen te herstellen en het aantal herstelde uitvoeringen te retourneren.
Hier volgen de parameters van mlflow.restore_runs
:
-
experiment_id
: de ID van het experiment met de runs die moeten worden hersteld. -
min_timestamp_millis
: De minimale tijdstempel voor verwijdering in milliseconden sinds de UNIX-epoch voor het herstellen van uitvoeringen. Alleen uitgevoerd die zijn verwijderd op of nadat deze tijdstempel is hersteld. -
max_runs
:Facultatief. Een positief geheel getal dat het maximaal aantal uit te voeren runs aangeeft dat moet worden hersteld. De maximaal toegestane waarde voor max_runs is 10000. Als dit niet is opgegeven, wordt max_runs standaard ingesteld op 10000.
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
)
Met Databricks Runtime 13.3 LTS of eerder kunt u de volgende clientcode uitvoeren in een Azure Databricks Notebook.
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"]
Zie de documentatie van de Azure Databricks Experiments-API voor parameters en specificaties van retourwaarden voor het herstellen van uitvoeringen op basis van de verwijderingstijd.
Uitvoeringen vergelijken
U kunt uitvoeringen vergelijken vanuit één experiment of uit meerdere experimenten. De pagina Uitvoeringen vergelijken bevat informatie over de geselecteerde uitvoeringen in tabelvorm. U kunt ook visualisaties maken van uitvoeringsresultaten en tabellen met uitvoeringsinformatie, parameters en metrische gegevens. Zie MLflow-uitvoeringen vergelijken met behulp van grafieken en diagrammen.
De parameters en metrische gegevens tabellen geven de uitvoeringsparameters en metrische gegevens van alle geselecteerde uitvoeringen weer. De kolommen in deze tabellen worden geïdentificeerd door de Uitvoeringsdetails tabel direct erboven. Ter vereenvoudiging kunt u parameters en metrische gegevens verbergen die identiek zijn in alle geselecteerde runs door de knop Alleen verschillen weergeven te schakelen.
Uitvoeringen van één experiment vergelijken
- Selecteer op de pagina met details van het experimenttwee of meer uitvoeringen door in het selectievakje links van de uitvoering te klikken of alle uitvoeringen in te schakelen door het selectievakje boven aan de kolom in te schakelen.
- Klik op Vergelijken. Het scherm Uitvoeringen vergelijken
<N>
wordt weergegeven.
Uitvoeringen van meerdere experimenten vergelijken
- Selecteer op de pagina experimentende experimenten die u wilt vergelijken door in het vak links van de naam van het experiment te klikken.
- Klik op Vergelijken (n) (n is het aantal experimenten dat u hebt geselecteerd). Er wordt een scherm weergegeven met alle uitvoeringen van de experimenten die u hebt geselecteerd.
- Selecteer twee of meer uitvoeringen door in het selectievakje links van de uitvoering te klikken of selecteer alle uitvoeringen door het selectievakje boven aan de kolom in te schakelen.
- Klik op Vergelijken. Het scherm Uitvoeringen vergelijken
<N>
wordt weergegeven.
Uitvoeringen kopiëren tussen werkruimten
Als u MLflow-uitvoeringen wilt importeren of exporteren naar of vanuit uw Databricks-werkruimte, kunt u het door de community gestuurde opensource-project MLflow Export-Import gebruiken.