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

GÄLLER FÖR:Azure CLI ml-tillägget v1Python SDK azureml v1

I den här artikeln får du lära dig hur du tillämpar MLOps-metoder (Machine Learning) 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.

Viktigt!

Objekt i den här artikeln som har markerats som "förhandsversion" finns 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.

Vad är MLOps?

Machine Learning Operations (MLOps) baseras på DevOps principer och metoder som ökar effektiviteten i arbetsflöden. Till exempel 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 Azure Machine Learning

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

  • Skapa reproducerbara ML-pipelines. Med Machine Learning-pipelines kan du 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 för träning och distribution av 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 ML-livscykeln från slutpunkt till slutpunkt. Den loggade ursprungsinformationen kan omfatta vem som publicerar modeller, varför ändringar har gjorts och när modeller har distribuerats eller använts i produktion.
  • Meddela och avisera om händelser i ML-livscykeln. Till exempel slutförande av experiment, modellregistrering, modelldistribution och identifiering av dataavvikelser.
  • Övervaka ML-program för driftsrelaterade och ML-relaterade problem. Jämför modellindata mellan träning och slutsatsdragning, utforska modellspecifika mått och tillhandahålla övervakning och aviseringar i ML-infrastrukturen.
  • Automatisera ML-livscykeln från slutpunkt till slutpunkt med Azure Machine Learning och Azure Pipelines. Med hjälp av pipelines kan du ofta uppdatera modeller, testa nya modeller och kontinuerligt distribuera nya ML-modeller tillsammans med dina andra program och tjänster.

Mer information om MLOps finns i Machine Learning DevOps (MLOps).

Skapa reproducerbara ML-pipelines

Använd ML-pipelines från Azure Machine Learning för att sammanfoga alla steg som ingår i modellträningsprocessen.

En ML-pipeline kan innehålla steg från förberedelse av data till extrahering av funktioner till hyperparameterjustering till modellutvärdering. Mer information finns i ML-pipelines.

Om du använder Designer för att skapa dina ML-pipelines kan du när som helst klicka på "..." längst upp till höger på sidan Designer och sedan välja Klona. Genom att klona pipelinen kan du iterera din pipelinedesign utan att förlora dina gamla versioner.

Skapa återanvändbara programvarumiljöer

Med Azure Machine Learning-miljöer kan du spåra och återskapa dina projekts programvaruberoenden när de utvecklas. Med miljöer kan du se till att byggen är reproducerbara utan manuella programvarukonfigurationer.

Miljöer beskriver pip- och Conda-beroenden för dina projekt och kan användas för både träning och distribution av modeller. Mer information finns i Vad är Azure Machine Learning-miljöer.

Registrera, paketera och distribuera modeller var som helst

Registrera och spåra ML-modeller

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.

Dricks

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 Azure Machine Learning-arbetsyta. Efter registreringen kan du sedan 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. Ytterligare metadatataggar kan anges under registreringen. Dessa taggar används sedan när du söker efter en modell. Azure Machine Learning stöder alla modeller som kan läsas in med Python 3.5.2 eller senare.

Dricks

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

Du kan inte ta bort en registrerad modell som används i en aktiv distribution. Mer information finns i avsnittet registrera modell i Distribuera modeller.

Viktigt!

När du använder alternativet Filtrera Tags efter på sidan Modeller i Azure Machine Learning Studio bör du i stället för att använda TagName : TagValue kunder använda TagName=TagValue (utan utrymme)

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 och felsökning.

Mer information finns i Distribuera modeller och felsöka distributioner.

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 ge en prestandaökning på 2 gånger.

Mer information om ONNX med Azure Machine Learning finns i artikeln Skapa och påskynda ML-modeller .

Använda modeller

Tränade maskininlärningsmodeller distribueras som webbtjänster i molnet eller lokalt. Distributioner använder CPU-, GPU- eller fältprogrammerbara gatematriser (FPGA) för slutsatsdragning. Du kan också använda modeller från Power BI.

När du använder en modell som en webbtjänst anger du följande:

  • De modeller som används för att poängsätta data som skickas till tjänsten/enheten.
  • Ett startskript. Det här skriptet accepterar begäranden, använder modeller för att poängsätta data och returnera ett svar.
  • En Azure Machine Learning-miljö som beskriver de pip- och Conda-beroenden som krävs av modeller och inmatningsskript.
  • Eventuella ytterligare tillgångar, till exempel text, data osv. som krävs av modellen eller postskriptet.

Du anger också konfigurationen för måldistributionsplattformen. Till exempel typ av VM-familj, tillgängligt minne och antal kärnor när du distribuerar till Azure Kubernetes Service.

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 ML-pipelines. Mer information finns i Batch-förutsägelser om stordata.

Realtidswebbtjänster

Du kan använda dina modeller i webbtjänster med följande beräkningsmål:

  • Azure Container Instance
  • Azure Kubernetes Service
  • Lokal utvecklingsmiljö

Om du vill distribuera modellen som en webbtjänst måste du ange följande:

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

Mer information finns i Distribuera modeller.

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 (förhandsversion).

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

Med Azure Machine Learning kan du spåra granskningsloggen från slutpunkt till slutpunkt för alla dina ML-tillgångar med hjälp av metadata.

  • Azure Machine Learning integreras med Git för att spåra information om vilken lagringsplats/gren/incheckning koden kommer från.
  • Azure 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 får ett resultat för angivna indata.
  • Azure Machine Learning Run-historik lagrar en ögonblicksbild av koden, data och beräkningar som används för att träna en modell.
  • Azure Machine Learning Model Registry samlar in alla metadata som är associerade med din modell (vilket experiment tränade den, var den distribueras, om dess distributioner är felfria).
  • Med integrering med Azure kan du agera på händelser i ML-livscykeln. Till exempel modellregistrering, distribution, dataavvikelse och träningshändelser (körning).

Dricks

Även om viss information om modeller och datauppsättningar samlas in automatiskt kan du lägga till ytterligare 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.

Att associera en datamängd med en registrerad modell är ett valfritt steg. Information om hur du refererar till en datauppsättning när du registrerar en modell finns i referensen för klassen Modell .

Meddela, automatisera och avisera om händelser i ML-livscykeln

Azure Machine Learning publicerar viktiga händelser till Azure Event Grid, som kan användas för att meddela och automatisera händelser i ML-livscykeln. Mer information finns i det här dokumentet.

Övervaka drifts- och ML-problem

Med övervakning kan du förstå vilka data som skickas till din modell och vilka förutsägelser den returnerar.

Den här informationen hjälper dig att förstå hur din modell används. Insamlade indata kan också vara användbara för att träna framtida versioner av modellen.

Mer information finns i Aktivera insamling av modelldata.

Träna om din modell på nya data

Ofta vill du verifiera din modell, uppdatera den eller till och med träna om den från grunden när du får ny information. Ibland är det en förväntad del av domänen att ta emot nya data. Andra gånger, som beskrivs i Identifiera dataavvikelse (förhandsversion) på datauppsättningar, kan modellprestanda försämras inför sådana saker som ändringar i en viss sensor, ändringar av naturliga data, till exempel säsongseffekter eller funktioner som skiftar i förhållande till andra funktioner.

Det finns inget universellt svar på "Hur gör jag för att vet om jag ska träna om?" men Azure Machine Learning-händelse- och övervakningsverktyg som tidigare diskuterats är bra utgångspunkter för automatisering. När du har bestämt dig för att träna om bör du:

  • Förbearbeta dina data med en repeterbar, automatiserad process
  • Träna din nya modell
  • Jämför utdata från din nya modell med utdata från din gamla modell
  • Använd fördefinierade kriterier för att välja om du vill ersätta din gamla modell

Ett tema i stegen ovan är att omträningen ska automatiseras, inte ad hoc. Azure Machine Learning-pipelines är ett bra svar för att skapa arbetsflöden som rör förberedelse av data, träning, validering och distribution. Läs Träna om modeller med Azure Machine Learning-designern för att se hur pipelines och Azure Machine Learning-designern passar in i ett omträningsscenario.

Automatisera ML-livscykeln

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 Pipeline en träningskörning när en Dataforskare kontrollerar en ändring i Git-lagringsplatsen för ett projekt. Resultatet av körningen 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.

Azure Machine Learning-tillägget gör det enklare att arbeta med Azure Pipelines. Det 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 Azure Machine Learning finns i följande länkar:

Du kan också använda Azure Data Factory för att skapa en pipeline för datainmatning som förbereder data för användning med träning. Mer information finns i Pipeline för datainmatning.

Nästa steg

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