MLOps: Modellhantering, distribution, ursprung och övervakning med Azure Mašinsko učenje 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 använder MLOps-metoder (Machine Learning Operations) i Azure Mašinsko učenje för att hantera livscykeln för dina modeller. Metoder för maskininlärning kan förbättra kvaliteten och konsekvensen i dina maskininlärningslösningar.
Viktigt!
Objekt i den här artikeln som är markerade som förhandsversion finns för närvarande i offentlig förhandsversion. Förhandsversionen tillhandahålls utan ett serviceavtal. Vi rekommenderar inte förhandsversionsfunktioner 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 maskininlärningsåtgärder?
Baserat på DevOps principer och metoder ökar maskininlärningsåtgärder (MLOps) effektiviteten i arbetsflöden. Till exempel kontinuerlig integrering, leverans och distribution. Maskininlärningsåtgärder 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 Mašinsko učenje
Azure Mašinsko učenje tillhandahåller följande funktioner för maskininlärningsåtgärder:
- Skapa reproducerbara maskininlärningspipelines. Mašinsko učenje 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 maskininlärningslivscykeln 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 varna om händelser i maskininlärningslivscykeln. Till exempel slutförande av experiment, modellregistrering, modelldistribution och identifiering av dataavvikelser.
- Övervaka maskininlärningsprogram för drift- och maskininlärningsproblem. Jämför modellindata mellan träning och slutsatsdragning, utforska modellspecifika mått och tillhandahålla övervakning och aviseringar i maskininlärningsinfrastrukturen.
- Automatisera maskininlärningslivscykeln från slutpunkt till slutpunkt med Azure Mašinsko učenje och Azure Pipelines. Med hjälp av pipelines kan du ofta uppdatera modeller, testa nya modeller och kontinuerligt distribuera nya maskininlärningsmodeller tillsammans med dina andra program och tjänster.
Mer information om maskininlärningsåtgärder finns i Maskininlärningsåtgärder.
Skapa reproducerbara maskininlärningspipelines
Använd maskininlärningspipelines från Azure Mašinsko učenje för att sammanfoga alla steg som ingår i modellträningsprocessen.
En maskininlärningspipeline kan innehålla steg från förberedelse av data till extrahering av funktioner till hyperparameterjustering till modellutvärdering. Mer information finns i Azure Mašinsko učenje pipelines.
Om du använder Designer för att skapa dina maskininlärningspipelines väljer du ellipserna (...) längst upp till höger på sidan Designer och väljer sedan Klona. Genom att klona pipelinen kan du iterera din pipelinedesign utan att förlora dina gamla versioner.
Skapa återanvändbara programvarumiljöer
Med Azure Mašinsko učenje 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. Miljöer kan användas för både träning och distribution av modeller. Mer information finns i Vad är Azure Mašinsko učenje miljöer.
Registrera, paketera och distribuera modeller var som helst
Du kan registrera, paketera och distribuera modeller var som helst.
Registrera och spåra maskininlärningsmodeller
Med modellregistrering kan du lagra och versionshantera dina modeller på din arbetsyta i Azure-molnet. 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 i din Azure-Mašinsko učenje arbetsyta. Efter registreringen kan du sedan ladda ned eller distribuera den registrerade modellen och ta emot alla filer som har registrerats.
Namn och version identifierar registrerade modeller. Varje gång du registrerar en modell med ett namn som redan finns ökar versionsnumret. Du kan ange andra metadatataggar under registreringen. Dessa taggar används sedan när du söker efter en modell. Azure Mašinsko učenje 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 Mašinsko učenje.
Du kan inte ta bort en registrerad modell som används i en aktiv distribution. Mer information finns i Registrera modellen.
Viktigt!
När du använder alternativet filtrera Tags
efter på sidan Modeller i Azure Mašinsko učenje Studio bör du i stället för att använda TagName : TagValue
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 maskininlärningsmodeller till Azure och Felsöka distribution av fjärrmodeller.
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 finns i ONNX och Azure Mašinsko učenje.
Använda modeller
Tränade maskininlärningsmodeller distribueras som webbtjänster i molnet eller lokalt. Distributioner använder CPU eller GPU 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 eller enheten.
- Ett startskript. Det här skriptet accepterar begäranden, använder modellerna för att poängsätta data och returnerar ett svar.
- En Azure-Mašinsko učenje miljö som beskriver de Pip- och Conda-beroenden som modellerna och inmatningsskriptet kräver.
- Andra tillgångar, till exempel text eller data, som modellerna och inmatningsskriptet kräver.
Du anger också konfigurationen för måldistributionsplattformen. Till exempel familjetypen för virtuella datorer, tillgängligt minne och antalet 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 maskininlärningspipelines. Mer information finns i Självstudie: Skapa en Azure Mašinsko učenje pipeline för bildklassificering.
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 eller conda-beroenden.
- Distributionskonfiguration som beskriver hur och var modellen ska distribueras.
Mer information finns i Distribuera maskininlärningsmodeller till Azure.
Analys
Microsoft Power BI stöder användning av maskininlärningsmodeller för dataanalys. Mer information finns i AI med dataflöden.
Samla in de styrningsdata som krävs för maskininlärningsåtgärder
Med Azure Mašinsko učenje kan du spåra granskningsloggen från slutpunkt till slutpunkt för alla dina maskininlärningstillgångar med hjälp av metadata.
- Azure Mašinsko učenje integreras med Git för att spåra information om vilken lagringsplats, gren och incheckning din kod kom från.
- Azure Mašinsko učenje 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 Mašinsko učenje Run-historik lagrar en ögonblicksbild av koden, data och beräkningar som används för att träna en modell.
- Azure Mašinsko učenje Model Registry samlar in alla metadata som är associerade med din modell. Dessa metadata omfattar vilket experiment som 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. Till exempel modellregistrering, distribution, dataavvikelse och träningshändelser (körning).
Dricks
Viss information om modeller och datauppsättningar samlas in automatiskt. Du kan lägga till annan 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 modellklass .
Meddela, automatisera och varna om händelser i maskininlärningslivscykeln
Azure Mašinsko učenje 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 Utlösa program, processer eller CI/CD-arbetsflöden baserat på Azure Mašinsko učenje händelser.
Övervaka drift- och maskininlärningsproblem
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 Samla in data från modeller i produktion.
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 kan modellprestanda försämras på grund av ändringar i en viss sensor, ändringar av naturliga data, till exempel säsongseffekter eller funktioner som skiftar i förhållande till andra funktioner. Mer information finns i Identifiera dataavvikelse (förhandsversion) på datauppsättningar.
Det finns inget universellt svar på "Hur vet jag om jag ska träna om?" men Azure Mašinsko učenje verktyg för händelser och övervakning 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 den nya modellen 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 improviseras. Azure Mašinsko učenje 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 Använda pipelineparametrar för att träna om modeller i designern för att se hur pipelines och Azure Mašinsko učenje designer passar in i ett omträningsscenario.
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 Pipeline en träningskörning när en dataexpert kontrollerar en ändring i Git-lagringsplatsen för ett projekt. Du kan granska resultatet av körningen 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 Mašinsko učenje-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 Mašinsko učenje finns i följande resurser:
- Kontinuerlig integrering och distribution av maskininlärningsmodeller med Azure Pipelines
- Azure Mašinsko učenje MLOps-lagringsplats
- Azure Mašinsko učenje MLOpsPython-lagringsplats
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 DevOps för en pipeline för datainmatning.
Relaterat innehåll
Läs mer genom att läsa och utforska följande resurser:
- Distribuera maskininlärningsmodeller till Azure
- Självstudie: Träna och distribuera en bildklassificeringsmodell med ett exempel på Jupyter Notebook
- Exempel på maskininlärningsåtgärder
- Använda Azure Pipelines med Azure Mašinsko učenje
- Konsumera en Azure Machine Learning-modell som distribuerats som en webbtjänst
- Arkitekturdesign för artificiell intelligens
- Exempel, referensarkitekturer och metodtips