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

GÄLLER FÖR:Azure CLI ml-tillägg v2 (aktuellt)Python SDK azure-ai-ml v2 (aktuell)

I den här artikeln får du lära dig hur du tillämpar MLOps-metoder (Machine Learning Operations) i Azure Machine Learning i syfte att hantera livscykeln för dina modeller. Genom att använda 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. Exempel är kontinuerlig integrering, leverans och distribution. MLOps tillämpar dessa principer på maskininlärningsprocessen 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 i Machine Learning

Machine Learning tillhandahåller följande MLOps-funktioner:

  • 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. Du kan också spåra associerade metadata som krävs för att använda modellen.
  • Samla in styrningsdata för livscykeln för maskininlärning 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 har distribuerats eller använts i produktion.
  • Meddela och varna om händelser i maskininlärningslivscykeln. Exempel på händelser är 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 för din maskininlärningsinfrastruktur.
  • Automatisera livscykeln för maskininlärning från slutpunkt till slutpunkt med Machine Learning och Azure Pipelines. Med hjälp av pipelines kan du ofta uppdatera modeller. Du kan också testa nya modeller. Du kan kontinuerligt distribuera nya maskininlärningsmodeller tillsammans med dina andra program och tjänster.

Mer information om MLOps finns i Machine Learning DevOps.

Skapa reproducerbara maskininlärningspipelines

Använd maskininlärningspipelines från Machine Learning för att sammanfoga alla steg i modellträningsprocessen.

En maskininlärningspipeline kan innehålla steg från förberedelse av data till extrahering av funktioner till justering av hyperparametrar till modellutvärdering. Mer information finns i Maskininlärningspipelines.

Om du använder designern för att skapa dina maskininlärningspipelines kan du när som helst välja ikonen ... i det övre högra hörnet på designersidan. Välj sedan Klona. När du klonar pipelinen itererar du pipelinedesignen utan att förlora dina gamla versioner.

Skapa återanvändbara programvarumiljöer

Med hjälp av 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 kan återskapas utan manuella programvarukonfigurationer.

Miljöer beskriver pip- och conda-beroenden för dina projekt. Du kan använda dem för träning och distribution av modeller. Mer information finns i Vad är 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.

Tips

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 dem som en enda modell på din Machine Learning-arbetsyta. Efter registreringen kan du ladda ned eller distribuera den registrerade modellen och ta emot alla filer som har registrerats.

Registrerade modeller identifieras med namn och version. Varje gång du registrerar en modell med ett namn som redan finns ökar versionsnumret. Fler metadatataggar kan anges under registreringen. Dessa taggar används sedan när du söker efter en modell. Machine Learning stöder alla modeller som kan läsas in med hjälp av Python 3.5.2 eller senare.

Tips

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

Viktigt

  • 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 : TagValue, använder du TagName=TagValue utan blanksteg.
  • Du kan inte ta bort en registrerad modell som används i en aktiv distribution.

Mer information finns i Arbeta med modeller i Azure Machine Learning.

Paketera och felsöka modeller

Innan du distribuerar en modell till produktion paketeras den i en Docker-avbildning. I de flesta fall skapas avbildningar automatiskt i bakgrunden under distributionen. Du kan ange avbildningen manuellt.

Om du stöter på problem med distributionen kan du distribuera i din lokala utvecklingsmiljö för felsökning.

Mer information finns i Felsöka onlineslutpunkter.

Konvertera och optimera modeller

Om du konverterar din modell till Open Neural Network Exchange (ONNX) kan prestandan förbättras. I genomsnitt kan konvertering till ONNX dubbla prestanda.

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

Använda modeller

Tränade maskininlärningsmodeller distribueras som slutpunkter i molnet eller lokalt. Distributioner använder CPU, GPU för slutsatsdragning.

När du distribuerar en modell som en slutpunkt anger du följande:

  • De modeller som används för att bedöma data som skickas till tjänsten eller enheten.
  • Ett startskript. Det här skriptet accepterar begäranden, använder modellerna för att bedöma data och returnerar ett svar.
  • En Machine Learning-miljö som beskriver de pip- och conda-beroenden som krävs av modellerna och startskriptet.
  • 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 typ av VM-familj, tillgängligt minne och antal kärnor. När avbildningen skapas läggs även de komponenter som krävs av Azure Machine Learning till. Till exempel tillgångar som behövs för att köra webbtjänsten.

Batchbedömning

Batchbedömning stöds via batchslutpunkter. Mer information finns i slutpunkter.

Onlineslutpunkter

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

  • Hanterade onlineslutpunkter
  • Azure Kubernetes Service
  • Lokal utvecklingsmiljö

Om du vill distribuera modellen 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 finns i Distribuera onlineslutpunkter.

Kontrollerad distribution

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 finns i Kontrollerad distribution av maskininlärningsmodeller.

Analys

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

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

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

  • Machine Learning-datauppsättningar hjälper dig att spåra, profilera och versionsdata.
  • Med tolkningsbarhet kan du förklara dina modeller, uppfylla regelefterlevnad och förstå hur modeller kommer fram till ett resultat för specifika indata.
  • Machine Learning-jobbhistoriken lagrar en ögonblicksbild av koden, data och beräkningar som används för att träna en modell.
  • Machine Learning Model Registry samlar in alla metadata som är associerade med din modell. Metadata innehåller till exempel vilka experiment som har tränat den, var den distribueras och om dess distributioner är felfria.
  • Med integrering med Azure kan du agera på händelser i maskininlärningslivscykeln. Exempel är modellregistrering, distribution, dataavvikelse och träningshändelser (jobb).

Tips

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

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

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 finns i Använda Event Grid.

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, när en dataexpert kontrollerar en ändring i Git-lagringsplatsen för ett projekt, startar Azure Pipelines ett träningsjobb. 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. Den 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:

Nästa steg

Läs mer genom att läsa och utforska följande resurser: