MLOps-modellhantering med Azure Machine Learning
GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)
Den här artikeln beskriver hur Azure Machine Learning använder maskininlärningsåtgärder (MLOps) för 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.
MLOps baseras på DevOps principer och metoder som ökar effektiviteten i arbetsflöden, till exempel kontinuerlig integrering, kontinuerlig distribution och kontinuerlig leverans. Om du tillämpar dessa principer på maskininlärningslivscykeln blir följande:
- Snabbare experimentering och modellutveckling.
- Snabbare distribution av modeller till produktion.
- Bättre kvalitetssäkring och ursprungsspårning från slutpunkt till slutpunkt.
MLOps-funktioner
MLOps tillhandahåller följande funktioner i maskininlärningsprocessen:
- Skapa reproducerbara maskininlärningspipelines för att definiera repeterbara och återanvändbara steg för 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 och spåra associerade metadata som krävs för att använda en modell.
- Logga ursprungsdata för livscykelstyrning för maskininlärning, till exempel vem som publicerade modeller, varför ändringar gjordes och när modeller distribuerades eller användes i produktion.
- Meddela och varna om livscykelhändelser för maskininlärning, till exempel slutförande av experiment, modellregistrering, modelldistribution och identifiering av dataavvikelser.
- Övervaka drifts- och maskininlärningsrelaterade problem genom att jämföra modellindata, utforska modellspecifika mått och visa övervakning och aviseringar i maskininlärningsinfrastrukturen.
- Automatisera maskininlärningslivscykeln från slutpunkt till slutpunkt med hjälp av maskininlärningspipelines och Azure Pipelines för att kontinuerligt testa, uppdatera och distribuera nya maskininlärningsmodeller.
Mer information om MLOps finns i Maskininlärningsåtgärder.
Reproducerbara maskininlärningspipelines
Använd Azure Machine Learning-pipelines för att sammanfoga alla steg i modellträningsprocessen. Pipelinesteg för maskininlärning kan omfatta förberedelse av data, extrahering av funktioner, justering av hyperparametrar och modellutvärdering.
I Azure Machine Learning-studio Designer kan du klona en pipeline 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 väljer du Klona i den översta menyraden.
Mer information om Azure Machine Learning-pipelines finns i Maskininlärningspipelines.
Återanvändbara programvarumiljöer
Azure Machine Learning-miljöer säkerställer att byggen är reproducerbara utan manuella programvarukonfigurationer. Miljöer kan spåra och återskapa pip- och conda-programvaruberoenden för dina projekt.
Du kan använda miljöer för modellträning och distribution. Mer information om miljöer finns i Azure Machine Learning-miljöer.
Modellregistrering, paketering och distribution
Azure Machine Learning kan använda MLOps var som helst för att registrera, paketera och distribuera modeller.
Registrera och spåra modeller
Modellregistreringslager och versioner av dina modeller på din Azure Machine Learning-arbetsyta i Azure-molnet. 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 din modell till exempel 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 också registrera modeller som tränas utanför Azure Machine Learning. Azure Machine Learning stöder alla modeller som kan läsas in med hjälp av Python 3.5.2 eller senare.
Du identifierar 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 för att söka efter en modell.
Viktigt!
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
Om du vill distribuera en modell till produktion måste du först paketera den i en Docker-avbildning. I de flesta fall sker skapande av avbildning automatiskt i bakgrunden under distributionen. Du kan dock ange avbildningen manuellt.
Det är användbart att distribuera till din lokala utvecklingsmiljö först 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 Azure Machine Learning finns i Skapa och påskynda maskininlärningsmodeller.
Distribuera modeller som slutpunkter
Du kan distribuera tränade maskininlärningsmodeller som slutpunkter lokalt eller i molnet. Distributioner använder processorer och GPU:er för slutsatsdragning.
Om du vill distribuera en modell som en slutpunkt måste du ange följande information:
- Den modell som används för att poängsätta data som skickas till tjänsten eller enheten.
- Ett inmatningsskript, även kallat bedömningsskript, som accepterar begäranden, använder modellerna för att poängsätta data och returnerar ett svar.
- En miljö 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 modellen och inmatningsskriptet.
Viktigt!
När du distribuerar en MLflow-modell behöver du inte ange ett postskript eller en miljö för distributionen. Mer information om hur du distribuerar MLflow-modeller finns i Riktlinjer för distribution av MLflow-modeller.
Du anger även konfigurationen av måldistributionsplattformen, till exempel familjetypen virtuell dator (VM), tillgängligt minne och antal kärnor. När Azure Machine Learning skapar avbildningen lägger den även till alla komponenter som behövs, till exempel tillgångar som behövs för att köra webbtjänsten.
Batchbedömning med batchslutpunkter
Batchbedömning stöds via batchslutpunkter. Mer information om batchbedömning finns i Batch-slutpunkter.
Realtidsbedömning med onlineslutpunkter
Du kan använda dina modeller med onlineslutpunkter för realtidsbedömning. Beräkningsmål för onlineslutpunkter kan vara lokala utvecklingsmiljöer, hanterade onlineslutpunkter eller Azure Kubernetes Service (AKS).
Om du vill distribuera en modell till en onlineslutpunkt måste du ange följande information:
- 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 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.
Metadata för livscykelstyrning för maskininlärning
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-modellregistrering samlar in alla metadata som är associerade med din modell. Till exempel, vilket experiment som tränade modellen, var modellen distribueras och om modelldistributionerna är felfria.
- Med integrering med Azure kan du agera på händelser i maskininlärningslivscykeln, till exempel modellregistrering, distribution, dataavvikelse och träningsjobbhändelser.
Viss information om modeller och datatillgångar samlas in automatiskt, men du kan 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 filter.
Kommentar
När du använder taggarna i alternativet Filtrera efter på sidan Modeller i Azure Machine Learning-studio bör du använda TagName=TagValue
utan blanksteg i stället TagName : TagValue
för .
Meddelande och aviseringar om livscykelhändelser för maskininlärning
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.
Livscykelautomatisering för maskininlärning
Du kan använda Git och Azure Pipelines för att skapa en kontinuerlig integreringsprocess som tränar en maskininlärningsmodell. I ett typiskt scenario startar Azure Pipelines träningsjobbet när en dataexpert kontrollerar en ändring till ett projekts Git-lagringsplats.
Du kan granska jobbresultatet 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 Azure Machine Learning-arbetsyta när du definierar en tjänstanslutning.
- Gör det möjligt att skapa tränade modeller i en träningspipeline för att utlösa en distribution i Azure Pipelines.
Mer information om hur du använder Azure Pipelines med Azure Machine Learning finns i Använda Azure Pipelines med Azure Machine Learning.
Analys
Microsoft Power BI stöder användning av maskininlärningsmodeller för dataanalys. Mer information finns i AI med dataflöden.