Dela via


Spåra experiment och modeller med hjälp av MLflow

Spårning är processen för att spara relevant information om experiment. I den här artikeln får du lära dig hur du använder MLflow för att spåra experiment och körningar på Azure Machine Learning-arbetsytor.

Vissa metoder som är tillgängliga i MLflow-API:et kanske inte är tillgängliga när du använder Azure Machine Learning. Mer information om åtgärder som stöds och som inte stöds finns i Supportmatris för frågekörningar och experiment. Du kan också lära dig mer om MLflow-funktioner som stöds i Azure Machine Learning i artikeln MLflow och Azure Machine Learning.

Anmärkning

Förutsättningar

  • Installera MLflow SDK-paketet mlflow och Azure Machine Learning-plugin-programmet azureml-mlflow för MLflow:

    pip install mlflow azureml-mlflow
    

    Tips/Råd

    Du kan använda mlflow-skinny paketet, som är ett enkelt MLflow-paket utan SQL-lagring, server, användargränssnitt eller datavetenskapsberoenden. Vi rekommenderar det här paketet för användare som främst behöver MLflow-spårnings- och loggningsfunktionerna, men inte hela sviten med funktioner, inklusive distributioner.

  • Skapa en Azure Machine Learning-arbetsyta. Information om hur du skapar en arbetsyta finns i Skapa resurser som du behöver för att komma igång. Granska de åtkomstbehörigheter som du behöver för att utföra MLflow-åtgärder på din arbetsyta.

  • Om du vill utföra fjärrspårning eller spåra experiment som körs utanför Azure Machine Learning konfigurerar du MLflow så att det pekar på spårnings-URI:n för din Azure Machine Learning-arbetsyta. Mer information om hur du ansluter MLflow till din arbetsyta finns i Konfigurera MLflow för Azure Machine Learning.

Konfigurera experimentet

MLflow organiserar information i experiment och körningar. Körningar kallas jobb i Azure Machine Learning. Som standard kör loggen till ett automatiskt skapat experiment med namnet Standard, men du kan konfigurera vilket experiment som ska spåras.

För interaktiv träning, till exempel i en Jupyter-anteckningsbok, använder du MLflow-kommandot mlflow.set_experiment(). Följande kodfragment konfigurerar till exempel ett experiment:

experiment_name = 'hello-world-example'
mlflow.set_experiment(experiment_name)

Konfigurera körprocessen

Azure Machine Learning spårar träningsjobb i det som MLflow kallar körningar. Använd körningar för att samla in all bearbetning som jobbet utför.

När du arbetar interaktivt börjar MLflow spåra din träningsrutin så snart du loggar information som kräver en aktiv körning. Om till exempel MLflows autologgningsfunktion är aktiverad startar MLflow-spårningen när du loggar ett mått eller en parameter eller startar en träningscykel.

Det är dock vanligtvis bra att starta processen explicit, särskilt om du vill registrera den totala tiden för ditt experiment i fältet Varaktighet. Om du vill starta körningen uttryckligen använder du mlflow.start_run().

Oavsett om du startar körningen manuellt eller inte måste du stoppa körningen så att MLflow vet att experimentkörningen är klar och kan markera körningens status som Slutförd. Om du vill stoppa en körning använder du mlflow.end_run().

Följande kod startar en körning manuellt och avslutar den i slutet av notebook-filen:

mlflow.start_run()

# Your code

mlflow.end_run()

Det är bäst att starta körningar manuellt så att du inte glömmer att avsluta dem. Du kan använda context manager-paradigmet för att hjälpa dig komma ihåg att avsluta en körning.

with mlflow.start_run() as run:
    # Your code

När du startar en ny körning med hjälp mlflow.start_run()av kan det vara användbart att ange parametern run_name , som senare översätts till namnet på körningen i Azure Machine Learning-användargränssnittet. Den här metoden hjälper dig att identifiera löpningen snabbare.

with mlflow.start_run(run_name="hello-world-example") as run:
    # Your code

Aktivera automatisk MLflow-loggning

Du kan logga mått, parametrar och filer med MLflow manuellt, och du kan också förlita dig på MLflows automatiska loggningsfunktion. Varje maskininlärningsramverk som stöds av MLflow avgör vad som ska spåras automatiskt.

Om du vill aktivera automatisk loggning infogar du följande kod före träningskoden:

mlflow.autolog()

Visa mått och artefakter på din arbetsyta

Mätvärden och artefakter från loggar från MLflow spåras på din arbetsyta. Du kan visa och komma åt dem i Azure Machine Learning Studio eller komma åt dem programmatiskt med hjälp av MLflow SDK.

Så här visar du mått och artefakter i studion:

  1. På sidan Jobb på arbetsytan väljer du experimentnamnet.

  2. På sidan med experimentinformation väljer du fliken Mått .

  3. Välj loggade mått för att återge diagram till höger på sidan. Du kan anpassa diagrammen genom att använda utjämning, ändra färg eller rita flera mått i en enda graf. Du kan också ändra storlek på och ordna om layouten.

  4. När du har skapat den vy som du vill använda sparar du den för framtida användning och delar den med dina teammedlemmar med hjälp av en direktlänk.

    Skärmbild av den måttvy som visar listan över mått och diagram som skapats från måtten.

Om du vill komma åt eller fråga efter mått, parametrar och artefakter programmatiskt med hjälp av MLflow SDK använder du mlflow.get_run().

import mlflow

run = mlflow.get_run("<RUN_ID>")

metrics = run.data.metrics
params = run.data.params
tags = run.data.tags

print(metrics, params, tags)

Tips/Råd

Föregående exempel returnerar endast det sista värdet för ett visst mått. Om du vill hämta alla värden för ett visst mått använder du mlflow.get_metric_history metoden. Mer information om hur du hämtar måttvärden finns i Hämta parametrar och mått från ett genomförande.

Om du vill ladda ned artefakter som du har loggat, till exempel filer och modeller, använd mlflow.artifacts.download_artifacts().

mlflow.artifacts.download_artifacts(run_id="<RUN_ID>", artifact_path="helloworld.txt")

Mer information om hur du hämtar eller jämför information från experiment och körs i Azure Machine Learning med hjälp av MLflow finns i Fråga och jämföra experiment och körningar med MLflow.