MLflow och Azure Machine Learning
GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)
Den här artikeln beskriver funktionerna i MLflow, ett ramverk med öppen källkod som är utformat för att hantera hela maskininlärningslivscykeln. MLflow använder en konsekvent uppsättning verktyg för att träna och hantera modeller på olika plattformar. Du kan använda MLflow oavsett om experimenten körs lokalt eller på ett fjärrberäkningsmål, en virtuell dator eller en Azure Machine Learning-beräkningsinstans.
Azure Machine Learning-arbetsytor är MLflow-kompatibla, vilket innebär att du kan använda en Azure Machine Learning-arbetsyta på samma sätt som du använder en MLflow-server. Den här kompatibiliteten har följande fördelar:
- Azure Machine Learning är inte värd för MLflow-serverinstanser, men kan använda MLflow-API:erna direkt.
- Du kan använda en Azure Machine Learning-arbetsyta som spårningsserver för valfri MLflow-kod, oavsett om den körs i Azure Machine Learning eller inte. Du behöver bara konfigurera MLflow så att det pekar på den arbetsyta där spårningen ska ske.
- Du kan köra alla träningsrutiner som använder MLflow i Azure Machine Learning utan att göra några ändringar.
Dricks
Till skillnad från Azure Machine Learning SDK v1 finns det inga loggningsfunktioner i Azure Machine Learning v2 SDK. Du kan använda MLflow-loggning för att säkerställa att dina träningsrutiner är molnoberoende, portabla och inte har något beroende av Azure Machine Learning.
Spårning med MLflow
Azure Machine Learning använder MLflow-spårning för att logga mått och lagra artefakter för dina experiment. När du är ansluten till Azure Machine Learning materialiseras alla MLflow-spårningar på arbetsytan som du arbetar i.
Information om hur du konfigurerar MLflow-spårning för experiment och träningsrutiner finns i Logga mått, parametrar och filer med MLflow. Du kan också köra frågor mot och jämföra experiment och körningar med MLflow.
MLflow i Azure Machine Learning är ett sätt att centralisera spårning. Du kan ansluta MLflow till Azure Machine Learning-arbetsytor även när du arbetar lokalt eller i ett annat moln. Azure Machine Learning-arbetsytan ger en centraliserad, säker och skalbar plats för lagring av träningsmått och modeller.
MLflow i Azure Machine Learning kan:
- Spåra maskininlärningsexperiment och modeller som körs lokalt eller i molnet.
- Spåra Maskininlärningsexperiment i Azure Databricks.
- Spåra Maskininlärningsexperiment i Azure Synapse Analytics.
Spårning med MLflow i R
MLflow-stöd i R har följande begränsningar:
- MLflow-spårning är begränsad till att spåra experimentmått, parametrar och modeller i Azure Machine Learning-jobb.
- Interaktiv utbildning på RStudio, Posit (tidigare RStudio Workbench) eller Jupyter Notebooks med R-kernels stöds inte.
- Modellhantering och registrering stöds inte. Använd Azure Machine Learning CLI eller Azure Machine Learning-studio för modellregistrering och hantering.
Exempel på hur du använder MLflow-spårningsklienten med R-modeller i Azure Machine Learning finns i Träna R-modeller med Azure Machine Learning CLI (v2).
Spårning med MLflow i Java
MLflow-stöd i Java har följande begränsningar:
- MLflow-spårning är begränsad till att spåra experimentmått och parametrar i Azure Machine Learning-jobb.
- Artefakter och modeller kan inte spåras. Använd
mlflow.save_model
i stället metoden medoutputs
mappen i jobb för att spara modeller eller artefakter som du vill samla in.
Ett Java-exempel som använder MLflow-spårningsklienten med Azure Machine Learning-spårningsservern finns i azuremlflow-java.
Exempel på notebook-filer för MLflow-spårning
- Träning och spårning av en XGBoost-klassificerare med MLflow visar hur du använder MLflow för att spåra experiment, logga modeller och kombinera flera smaker i pipelines.
- Utbildning och spårning av en XGBoost-klassificerare med MLflow med hjälp av autentisering med tjänstens huvudnamn visar hur du använder MLflow för att spåra experiment från en beräkning som körs utanför Azure Machine Learning. Exemplet visar hur du autentiserar mot Azure Machine Learning-tjänster med hjälp av tjänstens huvudnamn.
- Optimering av hyperparametrar med HyperOpt och kapslade körningar i MLflow visar hur du använder underordnade körningar för att utföra hyperparameteroptimering för modeller med hjälp av det populära HyperOpt-biblioteket. Exemplet visar hur du överför mått, parametrar och artefakter från underordnade körningar till överordnade körningar.
- Loggningsmodeller med MLflow visar hur du använder begreppet modeller i stället för artefakter med MLflow. Exemplet visar också hur du skapar anpassade modeller.
- Hantera körningar och experiment med MLflow visar hur du använder MLflow för att fråga experiment, körningar, mått, parametrar och artefakter från Azure Machine Learning.
Modellregistrering med MLflow
Azure Machine Learning stöder MLflow för modellhantering. Det här stödet är ett bekvämt sätt för användare som är bekanta med MLflow-klienten att hantera hela modelllivscykeln. Mer information om hur du hanterar modeller med hjälp av MLflow-API:et i Azure Machine Learning finns i Hantera modellregister i Azure Machine Learning med MLflow.
Exempel på notebook-fil för MLflow-modellregistrering
Modellhantering med MLflow visar hur du hanterar modeller i register.
Modelldistribution med MLflow
Du kan distribuera MLflow-modeller till Azure Machine Learning för att dra nytta av en förbättrad upplevelse. Azure Machine Learning stöder distribution av MLflow-modeller till både realtids- och batchslutpunkter utan att behöva ange en miljö eller ett bedömningsskript.
MLflow SDK, Azure Machine Learning CLI, Azure Machine Learning SDK för Python och Azure Machine Learning-studio alla stöder MLflow-modelldistribution. Mer information om hur du distribuerar MLflow-modeller till Azure Machine Learning för både realtids- och batchinferens finns i Riktlinjer för distribution av MLflow-modeller.
Exempel på notebook-filer för MLflow-modelldistribution
- Distribuera MLflow till onlineslutpunkter visar hur du distribuerar MLflow-modeller till onlineslutpunkter med MLflow SDK.
- Progressiv distribution av MLflow-distributioner visar hur du distribuerar MLflow-modeller till onlineslutpunkter med MLflow SDK med progressiv modelldistribution. Exemplet visar också distribution av flera versioner av en modell till samma slutpunkt.
- Distribuera MLflow-modeller till äldre webbtjänster visar hur du distribuerar MLflow-modeller till äldre webbtjänster (Azure Container Instances eller Azure Kubernetes Service v1) med hjälp av MLflow SDK.
- Träna modeller i Azure Databricks och distribuera dem på Azure Machine Learning visar hur du tränar modeller i Azure Databricks och distribuerar dem i Azure Machine Learning. Exemplet omfattar även spårningsexperiment med MLflow-instansen i Azure Databricks.
Utbildning med MLflow Projects (förhandsversion)
Varning
Stöd för MLproject
filer (MLflow Projects) i Azure Machine Learning dras tillbaka helt i september 2026. MLflow stöds fortfarande fullt ut och är fortfarande det rekommenderade sättet att spåra maskininlärningsarbetsbelastningar i Azure Machine Learning.
När du fortsätter att använda MLflow rekommenderar vi att du övergår från MLproject
filer till Azure Machine Learning-jobb med antingen Azure CLI eller Azure Machine Learning SDK för Python (v2). Mer information om Azure Machine Learning-jobb finns i Spåra ML-experiment och modeller med MLflow.
Viktigt!
Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade.
Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Du kan skicka träningsjobb till Azure Machine Learning med hjälp av MLflow Projects. Du kan skicka jobb lokalt med Azure Machine Learning-spårning eller migrera dina jobb till molnet via Azure Machine Learning-beräkning.
Information om hur du skickar träningsjobb som använder MLflow Projects till Azure Machine Learning-arbetsytor för spårning finns i Träna med MLflow Projects i Azure Machine Learning (förhandsversion).
Exempel på notebook-filer för MLflow-projekt
- Träna med MLflow Projects på lokal beräkning.
- Träna med MLflow Projects på Azure Machine Learning-beräkning.
Funktioner för MLflow- och Azure Machine Learning-klientverktyg
I följande tabell visas livscykelåtgärder för maskininlärning som är möjliga med MLflow SDK och Azure Machine Learning-klientverktygen.
Funktion | MLflow SDK | Azure Machine Learning CLI/SDK v2 | Azure Machine Learning Studio |
---|---|---|---|
Spåra och logga mått, parametrar och modeller | ✓ | ||
Hämta mått, parametrar och modeller | ✓ | Endast artefakter och modeller kan laddas ned. | ✓ |
Skicka träningsjobb | Möjligt med hjälp av MLflow Projects (förhandsversion). | ✓ | ✓ |
Skicka träningsjobb med Azure Machine Learning-datatillgångar | ✓ | ✓ | |
Skicka träningsjobb med maskininlärningspipelines | ✓ | ✓ | |
Hantera experiment och körningar | ✓ | ✓ | ✓ |
Hantera MLflow-modeller | Vissa åtgärder kanske inte stöds.1 | ✓ | ✓ |
Hantera icke-MLflow-modeller | ✓ | ✓ | |
Distribuera MLflow-modeller till Azure Machine Learning (online och batch) | Distribution av MLflow-modeller för batchinferens stöds inte för närvarande.2 | ✓ | ✓ |
Distribuera icke-MLflow-modeller till Azure Machine Learning | ✓ | ✓ |
1 Mer information finns i Hantera modellregister i Azure Machine Learning med MLflow.
2 Ett alternativ finns i Distribuera och köra MLflow-modeller i Spark-jobb.