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:

Exempelnotebook-filer

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 med mlflow.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

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

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

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