MLOps: Modellhantering, distribution och övervakning med Azure Machine Learning

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

I den här artikeln får du lära dig mer om METODER för maskininlärningsåtgärder (MLOps) i Azure Machine Learning i syfte att hantera livscykeln för dina modeller. Genom att tillämpa MLOps-metoder kan du förbättra kvaliteten och konsekvensen i dina maskininlärningslösningar.

Vad är MLOps?

MLOps baseras på DevOps principer och metoder som ökar effektiviteten i arbetsflöden. Dessa principer omfattar kontinuerlig integrering, leverans och distribution. MLOps tillämpar dessa principer på maskininlärningslivscykeln med målet att:

  • Snabbare experimentering och utveckling av modeller.
  • Snabbare distribution av modeller till produktion.
  • Kvalitetssäkring och ursprungsspårning från slutpunkt till slutpunkt.

MLOps tillhandahåller följande funktioner i maskininlärningsprocessen:

  • Skapa reproducerbara maskininlärningspipelines. Använd maskininlärningspipelines för att definiera repeterbara och återanvändbara steg för dina processer för förberedelse, träning och bedömning av data.
  • Skapa återanvändbara programvarumiljöer. Använd dessa miljöer för att träna och distribuera modeller.
  • Registrera, paketera och distribuera modeller var som helst. Spåra associerade metadata som krävs för att använda en modell.
  • Samla in styrningsdata för maskininlärningslivscykeln från slutpunkt till slutpunkt. Den loggade ursprungsinformationen kan omfatta vem som publicerar modeller och varför ändringar har gjorts. Det kan också inkludera när modeller distribuerades eller användes i produktion.
  • Meddela och varna om händelser i maskininlärningslivscykeln. Händelser inkluderar slutförande av experiment, modellregistrering, modelldistribution och identifiering av dataavvikelser.
  • Övervaka maskininlärningsprogram för drifts- och maskininlärningsrelaterade problem. Jämför modellindata mellan träning och slutsatsdragning. Utforska modellspecifika mått. Tillhandahålla övervakning och aviseringar i maskininlärningsinfrastrukturen.
  • Automatisera livscykeln för maskininlärning från slutpunkt till slutpunkt med maskininlärning och Azure-pipelines. Använd pipelines för att ofta testa och uppdatera modeller. Du kan kontinuerligt distribuera nya maskininlärningsmodeller tillsammans med dina andra program och tjänster.

Mer information om MLOps finns i Maskininlärningsåtgärder.

Skapa reproducerbara maskininlärningspipelines

Använd Azure Machine Learning-pipelines för att sammanfoga alla steg i modellträningsprocessen. En maskininlärningspipeline kan innehålla steg som omfattar förberedelse av data, extrahering av funktioner, justering av hyperparametrar och modellutvärdering.

Om du använder Azure Machine Learning-designern för att skapa en maskininlärningspipeline kan du klona pipelinen för att iterera över dess design utan att förlora dina gamla versioner. Om du vill klona en pipeline när som helst i designern går du till det övre högra hörnet för att välja ...>Klona.

Mer information om Azure Machine Learning-pipelines finns i Maskininlärningspipelines.

Skapa återanvändbara programvarumiljöer

Genom att använda Azure Machine Learning-miljöer kan du spåra och återskapa dina projekts programvaruberoenden när de utvecklas. Du kan använda miljöer för att säkerställa att byggen är reproducerbara utan manuella programvarukonfigurationer.

Miljöer beskriver pip- och conda-beroenden för dina projekt. Du kan använda miljöer för modellträning och distribution. Mer information om miljöer finns i Vad är Azure Machine Learning-miljöer?.

Registrera, paketera och distribuera modeller var som helst

I följande avsnitt beskrivs hur du registrerar, paketar och distribuerar modeller.

Registrera och spåra maskininlärningsmodeller

Med modellregistrering kan du lagra och versionshantera dina modeller i Azure-molnet på din arbetsyta. Modellregistret gör det enkelt att organisera och hålla reda på dina tränade modeller.

En registrerad modell är en logisk container för en eller flera filer som utgör din modell. Om du till exempel har en modell som lagras i flera filer kan du registrera filerna som en enda modell på din Azure Machine Learning-arbetsyta. Efter registreringen kan du ladda ned eller distribuera den registrerade modellen och ta emot alla komponentfiler.

Du kan identifiera registrerade modeller efter namn och version. När du registrerar en modell med samma namn som en befintlig modell ökar registret versionsnumret. Du kan ange metadatataggar under registreringen och använda dessa taggar när du söker efter en modell. Azure Machine Learning stöder alla modeller som kan läsas in med hjälp av Python 3.5.2 eller senare.

Dricks

Du kan också registrera modeller som tränats utanför Azure Machine Learning.

Viktigt!

  • Använd utan blanksteg när du använder alternativet FiltreraTags efter på sidan Modeller i Azure Machine Learning-studio i stället för att använda TagName : TagValueTagName=TagValue .
  • Du kan inte ta bort en registrerad modell som används i en aktiv distribution.

Mer information om hur du använder modeller i Azure Machine Learning finns i Arbeta med modeller i Azure Machine Learning.

Paketera och felsöka modeller

Innan du distribuerar en modell till produktion måste den paketeras till en Docker-avbildning. I de flesta fall sker avbildningsskapandet automatiskt i bakgrunden under distributionen. Du kan dock ange avbildningen manuellt.

Det är användbart att först distribuera till din lokala utvecklingsmiljö så att du kan felsöka och felsöka innan du distribuerar till molnet. Den här metoden kan hjälpa dig att undvika problem med distributionen till Azure Machine Learning. Mer information om hur du löser vanliga distributionsproblem finns i Felsöka onlineslutpunkter.

Konvertera och optimera modeller

Du kan konvertera din modell till Open Neural Network Exchange (ONNX) för att försöka förbättra prestandan. Vanligtvis kan konvertering till ONNX dubbla prestanda.

Mer information om ONNX med Machine Learning finns i Skapa och påskynda maskininlärningsmodeller.

Distribuera modeller

Du kan distribuera tränade maskininlärningsmodeller som slutpunkter i molnet eller lokalt. Distributioner använder CPU och GPU för slutsatsdragning.

När du distribuerar en modell som en slutpunkt måste du ange följande:

  • Den modell som används för att poängsätta data som skickas till tjänsten eller enheten.
  • Ett postskript1. Det här skriptet accepterar begäranden, använder modellerna för att poängsätta data och returnerar ett svar.
  • En miljö2 som beskriver de pip- och conda-beroenden som krävs av modellerna och inmatningsskriptet.
  • Andra tillgångar, till exempel text och data som krävs av modellerna och inmatningsskriptet.

Du anger också konfigurationen för måldistributionsplattformen. Till exempel familjetypen virtuell dator (VM), tillgängligt minne och antal kärnor. När avbildningen skapas läggs även komponenter som krävs av Azure Machine Learning, till exempel tillgångar som behövs för att köra webbtjänsten, till.

1,2 När du distribuerar en MLflow-modell behöver du inte ange ett inmatningsskript, även kallat ett bedömningsskript. Du behöver inte heller ange någon miljö för distributionen. Mer information om hur du distribuerar MLflow-modeller finns i Riktlinjer för distribution av MLflow-modeller.

Batchbedömning

Batchbedömning stöds via batchslutpunkter. Mer information om batchbedömning finns i Batch-slutpunkter.

Realtidsbedömning

Du kan använda dina modeller med en onlineslutpunkt för realtidsbedömning. Onlineslutpunkter kan använda följande beräkningsmål:

  • Hanterade onlineslutpunkter
  • Azure Kubernetes Service
  • Lokal utvecklingsmiljö

Om du vill distribuera en modell till en slutpunkt måste du ange följande:

  • Modellen eller ensemblen av modeller.
  • Beroenden som krävs för att använda modellen. Exempel är ett skript som accepterar begäranden och anropar modellen och conda-beroenden.
  • Distributionskonfiguration som beskriver hur och var modellen ska distribueras.

Mer information om distribution för bedömning i realtid finns i Distribuera onlineslutpunkter.

Kontrollerad distribution för onlineslutpunkter

När du distribuerar till en onlineslutpunkt kan du använda kontrollerad distribution för att aktivera följande scenarier:

  • Skapa flera versioner av en slutpunkt för en distribution.
  • Utför A/B-testning genom att dirigera trafik till olika distributioner inom slutpunkten.
  • Växla mellan slutpunktsdistributioner genom att uppdatera trafikprocenten i slutpunktskonfigurationen.

Mer information om distribution med hjälp av en kontrollerad distribution finns i Utföra säker distribution av nya distributioner för slutsatsdragning i realtid.

Analys

Microsoft Power BI stöder användning av maskininlärningsmodeller för dataanalys. Mer information finns i Azure Machine Learning-integrering i Power BI.

Samla in de styrningsdata som krävs för MLOps

Med Azure Machine Learning kan du spåra granskningsspåret från slutpunkt till slutpunkt för alla dina maskininlärningstillgångar med hjälp av metadata. Till exempel:

  • Azure Machine Learning-datatillgångar hjälper dig att spåra, profilera och versionsdata.
  • Med modelltolkning kan du förklara dina modeller, uppfylla regelefterlevnad och förstå hur modeller får ett resultat för en viss indata.
  • Azure Machine Learning-jobbhistorik lagrar en ögonblicksbild av koden, data och beräkningar som används för att träna en modell.
  • Azure Machine Learning-modellregistret samlar in alla metadata som är associerade med din modell. Till exempel, vilket experiment som tränade modellen, var modellen distribueras och om modellens distributioner är felfria.
  • Med integrering med Azure kan du agera på händelser, till exempel modellregistrering, distribution, dataavvikelse och träningshändelser (jobb) i maskininlärningslivscykeln.

Dricks

Även om viss information om modeller och datatillgångar samlas in automatiskt kan du lägga till mer information med hjälp av taggar. När du letar efter registrerade modeller och datatillgångar på din arbetsyta kan du använda taggar som ett filter.

Meddela, automatisera och varna om händelser i maskininlärningslivscykeln

Azure Machine Learning publicerar viktiga händelser till Azure Event Grid, som kan användas för att meddela och automatisera händelser i maskininlärningslivscykeln. Mer information om hur du konfigurerar händelsedrivna processer baserat på Azure Machine Learning-händelser finns i Anpassad CI/CD och händelsedrivna arbetsflöden.

Automatisera livscykeln för maskininlärning

Du kan använda GitHub och Azure Pipelines för att skapa en kontinuerlig integreringsprocess som tränar en modell. I ett typiskt scenario startar Azure Pipelines ett träningsjobb när en dataexpert kontrollerar en ändring i ett projekts Git-lagringsplats. Resultatet av jobbet kan sedan inspekteras för att se prestandaegenskaperna för den tränade modellen. Du kan också skapa en pipeline som distribuerar modellen som en webbtjänst.

Machine Learning-tillägget gör det enklare att arbeta med Azure Pipelines. Tillägget ger följande förbättringar av Azure Pipelines:

  • Aktiverar val av arbetsyta när du definierar en tjänstanslutning.
  • Gör att versionspipelines kan utlösas av tränade modeller som skapats i en träningspipeline.

Mer information om hur du använder Azure Pipelines med Machine Learning finns i Använda Azure Pipelines med Azure Machine Learning.