MLflow och Azure Machine Learning
GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)
MLflow är ett ramverk med öppen källkod som är utformat för att hantera hela maskininlärningslivscykeln. Dess möjlighet att träna och hantera modeller på olika plattformar gör att du kan använda en konsekvent uppsättning verktyg oavsett var experimenten körs: lokalt på datorn, på ett fjärrberäkningsmål, på en virtuell dator eller på en Azure Machine Learning-beräkningsinstans.
Azure Machine Learning-arbetsytor är MLflow-kompatibla, vilket innebär att du kan använda Azure Machine Learning-arbetsytor 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 under huven. i stället kan arbetsytan tala språket för MLflow-API:et.
- Du kan använda Azure Machine Learning-arbetsytor som spårningsserver för valfri MLflow-kod, oavsett om den körs på 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 någon ändring.
Dricks
Till skillnad från Azure Machine Learning SDK v1 finns det inga loggningsfunktioner i SDK v2. Vi rekommenderar att du använder MLflow för loggning, så att dina träningsrutiner är molnoberoende och portabla– vilket tar bort eventuella beroenden som koden har i 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 all spårning som utförs med MLflow på arbetsytan som du arbetar med. Mer information om hur du konfigurerar experiment för att använda MLflow för att spåra experiment och träningsrutiner finns i Logga mått, parametrar och filer med MLflow. Du kan också använda MLflow för att fråga och jämföra experiment och körningar.
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. Arbetsytan tillhandahåller en centraliserad, säker och skalbar plats för lagring av träningsmått och modeller.
MLflow i Azure Machine Learning innehåller funktioner för att:
- 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.
Exempelnotebook-filer
- Utbildning och spårning av en XGBoost-klassificerare med MLflow: Visar hur du spårar experiment med hjälp av MLflow, loggmodeller och kombinerar 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 spårar experiment med hjälp av MLflow 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.
- Hyperparameteroptimering med HyperOpt och kapslade körningar i MLflow: Visar hur du använder underordnade körningar i MLflow för att utföra hyperparameteroptimering för modeller med hjälp av det populära biblioteket
Hyperopt
. 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 frågar efter experiment, körningar, mått, parametrar och artefakter från Azure Machine Learning med hjälp av MLflow.
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 med MLflow R SDK. Använd i stället Azure Machine Learning CLI eller Azure Machine Learning-studio för modellregistrering och hantering.
Om du vill veta mer om hur du använder MLflow-spårningsklienten med Azure Machine Learning kan du se exemplen i Träna R-modeller med Hjälp av 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 med MLflow Java SDK. Använd
Outputs
i stället mappen i jobb tillsammans medmlflow.save_model
metoden för att spara modeller (eller artefakter) som du vill samla in.
Mer information om hur du använder MLflow-spårningsklienten med Azure Machine Learning finns i Java-exemplet som använder MLflow-spårningsklienten med Azure Machine Learning.
Modellregister med MLflow
Azure Machine Learning stöder MLflow för modellhantering. Det här stödet är ett bekvämt sätt att stödja hela modelllivscykeln för användare som är bekanta med MLflow-klienten.
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.
Exempelnotebook-fil
- Hantera modellregister med MLflow: Visar hur du hanterar modeller i register med hjälp av MLflow.
Modelldistribution med MLflow
Du kan distribuera MLflow-modeller till Azure Machine Learning och dra nytta av den förbättrade upplevelsen när du använder MLflow-modeller. 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. Distribution stöds med MLflow SDK, Azure Machine Learning CLI, Azure Machine Learning SDK för Python eller Azure Machine Learning-studio.
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.
Exempelnotebook-filer
- Distribuera MLflow till onlineslutpunkter: Visar hur du distribuerar modeller i MLflow-format till onlineslutpunkter med MLflow SDK.
- Distribuera MLflow till onlineslutpunkter med säker distribution: Visar hur du distribuerar modeller i MLflow-format till onlineslutpunkter med hjälp av MLflow SDK med progressiv distribution av modeller. Exemplet visar också distribution av flera versioner av en modell till samma slutpunkt.
- Distribuera MLflow till webbtjänster (V1): Visar hur du distribuerar modeller i MLflow-format till webbtjänster (ACI/AKS v1) med hjälp av MLflow SDK.
- Distribuera modeller som tränats i Azure Databricks till Azure Machine Learning med MLflow: Visar hur du tränar modeller i Azure Databricks och distribuerar dem i Azure Machine Learning. Exemplet beskriver också hur du hanterar fall där du också vill spåra experimenten med MLflow-instansen i Azure Databricks.
Utbildning med MLflow-projekt (förhandsversion)
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Förhandsversionen tillhandahålls utan ett serviceavtal och rekommenderas 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-projekt (förhandsversion). 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 med MLflow Projects som använder Azure Machine Learning-arbetsytor för spårning finns i Träna maskininlärningsmodeller med MLflow-projekt och Azure Machine Learning.
Exempelnotebook-filer
- Spåra ett MLflow-projekt i Azure Machine Learning-arbetsytor.
- Träna och köra ett MLflow-projekt på Azure Machine Learning-jobb.
MLflow SDK, Azure Machine Learning v2 och Azure Machine Learning-studio funktioner
I följande tabell visas de åtgärder som är möjliga med var och en av de klientverktyg som är tillgängliga i maskininlärningslivscykeln.
Funktion | MLflow SDK | Azure Machine Learning CLI/SDK | Azure Machine Learning Studio |
---|---|---|---|
Spåra och logga mått, parametrar och modeller | ✓ | ||
Hämta mått, parametrar och modeller | ✓ | 1 | ✓ |
Skicka träningsjobb | ✔2 | ✓ | ✓ |
Skicka träningsjobb med Azure Machine Learning-datatillgångar | ✓ | ✓ | |
Skicka träningsjobb med maskininlärningspipelines | ✓ | ✓ | |
Hantera experiment och körningar | ✓ | ✓ | ✓ |
Hantera MLflow-modeller | ✔3 | ✓ | ✓ |
Hantera icke-MLflow-modeller | ✓ | ✓ | |
Distribuera MLflow-modeller till Azure Machine Learning (Online & Batch) | ✔4 | ✓ | ✓ |
Distribuera icke-MLflow-modeller till Azure Machine Learning | ✓ | ✓ |
Kommentar
- 1 Endast artefakter och modeller kan laddas ned.
- 2 Möjligt med hjälp av MLflow-projekt (förhandsversion).
- 3 Vissa åtgärder kanske inte stöds. Mer information finns i Hantera modellregister i Azure Machine Learning med MLflow .
- 4 Distribution av MLflow-modeller för batchinferens med hjälp av MLflow SDK är inte möjligt för tillfället. Som ett alternativ kan du läsa Distribuera och köra MLflow-modeller i Spark-jobb.