Upptäck affärsvärdet med att tillämpa DevOps-metoder på maskininlärning

Slutförd

I den här lektionen diskuterar vi vikten av maskininlärningsåtgärder (MLOps). MLOps tillämpar metoden för DevOps (utveckling och åtgärder) för att hantera maskininlärningslivscykeln mer effektivt. Det möjliggör ett mer agilt och produktivt samarbete i AI-team bland alla intressenter. Dessa samarbeten omfattar dataforskare, AI-tekniker, apputvecklare och andra IT-team.

Det finns många tillgängliga produkter som hjälper teamen att implementera MLOps. Microsoft erbjuder Azure Machine Learning, Azure DevOps och GitHub.

MLOps-processer och verktyg hjälper dessa team att samarbeta och ge insyn genom delad, granskningsbar dokumentation. MLOps-tekniker ger möjlighet att spara och spåra ändringar i alla resurser, till exempel data, kod, modeller och andra verktyg. Dessa tekniker kan också skapa effektivitet och påskynda livscykeln med automatisering, repeterbara arbetsflöden och återanvändbara tillgångar. Alla dessa metoder gör AI-projekt mer flexibla och effektiva.

Reproducerbarhet för modeller

Under den inledande iterativa träningen och senare modellträning finns det några saker som kan göra den komplexa processen mer hanterbar. En av dem är att hålla modeller reproducerbara, vilket innebär att de enkelt kan köras på samma datauppsättning av alla teammedlemmar med samma eller liknande resultat. Reproducerbarhet uppnås genom att dokumentera processer och dela resurser.

För det första är det bra att centralt hantera tillgångar som miljöer, kod, datauppsättningar och modeller så att team kan dela och återanvända dem.

  • Modellregister: När team experimenterar med olika versioner av en modell ger ett modellregister en central plats för att spara varje version. Med ett register kan team enkelt återgå till en tidigare version om något inte fungerar, även efter att lösningen har gått i produktion. Modellregistret fungerar också som en spårningslogg för varje modells historik.
  • Kodhantering: Tekniska beslutsfattare måste avgöra vilka tekniker och processer som deras team ska använda för kodhantering. Detta omfattar vanligtvis kodlagringsplatser som GitHub där kod kan sparas, versionshanteras, delas och återanvändas. Den innehåller även verktyg för att använda och versionskod.
  • Datauppsättningshantering: Vi rekommenderar också att du sparar träningsdatauppsättningar centralt. På så sätt kan team återanvända dem, dela dem med kollegor eller övervaka hur de ändras över tid för att hantera drift.

A screenshot of a graph showing MLOps practices: data scientists and IT work together on model reproducibility, validation, deployment, and retraining.

  • Delade miljöer: Skapa modellmiljöer som kan delas mellan enskilda användare. Detta förenklar överlämningen mellan stegen i modellskapandeprocessen och gör det möjligt för team att samarbeta om vissa steg.

För det andra rekommenderar vi att du automatiserar uppgifter med maskininlärningspipelines. En pipeline är ett arbetsflöde med fullständiga databehandlingsuppgifter som kan köras oberoende av varandra. I maskininlärning kan en pipeline automatisera förberedelse av data, träningskonfiguration, träningsprocesser eller modellverifiering. Pipelines sparar kostnader och tid för dataexperter varje gång de behöver iterera en del av maskininlärningslivscykeln.

Modellverifiering

Innan en modell distribueras är det viktigt att verifiera dess prestandamått. Du kan ha flera mått som används för att ange den "bästa" modellen. Det är viktigt att arbeta med dataexperter för att förstå vilka mått som är viktiga och utvärdera dem före distributionen. Det finns verktyg för att utvärdera modellmått, till exempel en förlustfunktion eller en förvirringsmatris.

Mått jämför vanligtvis vad modellen har förutsagt med vad den borde ha förutsett (det sanna värdet eller grundsanningen). Övergripande är fokus att maximera sanna positiva och sanna negativa resultat, det vill ex. modellen som lyckas förutsäga sanna värden. Det är lika viktigt att undvika falska positiva identifieringar och falska negativa identifieringar, d.v.s. felaktiga förutsägelser och missade förutsägelser.

Det är viktigt att validera prestandamått mot affärsanvändningsfallet. Du kanske till exempel har utformat en modell för att förutsäga patientens hälsa. Som vårdgivare som hanterar livs- och dödssituationer föredrar du sannolikt att ha falska positiva diagnoser snarare än en otroligt hög noggrannhet som missar diagnoser.

Om modellen är en nyare version av en befintlig modell måste du se om den presterar bättre än den tidigare för nyckelmått.

A screenshot of a graph showing a confusion matrix with predicted and true labels. Alignment of true and predicted values indicates high accuracy.

Modelldistribution

Det finns flera alternativ för att distribuera modellen till produktion. Dataforskare och AI-tekniker måste samarbeta för att ta reda på det bästa alternativet för varje fall.

  • Moln: Ett alternativ är att distribuera modeller med hjälp av molnet, vilket ofta använder ett API (Application Programming Interface). Det finns skalbara verktyg för att automatisera och förenkla den här processen, till exempel Kubernetes eller Azure Container Instances.
  • Lokalt: Modeller kan också distribueras direkt på plats på organisationens egna servrar.
  • Edge: Det går också att distribuera modeller på gränsenheter, till exempel kameror, drönare och maskiner. Det här alternativet kan vara användbart i IoT-scenarier.

Oavsett var du distribuerar modellen är arbetsflödet liknande. Först registrerar du modellen i modellregistret. Sedan förbereder du dig för att distribuera modellen genom att ange tillgångar, användning och beräkningsmål. Slutligen distribuerar du den till önskad plats, testar den och fortsätter att övervaka modellspecifika mått under hela livscykeln.

Omträning av modeller

Även om detta är slutet på utvecklingsprocessen är detta bara början på underhållscykeln. Modeller måste övervakas och tränas om regelbundet för att åtgärda prestandaproblem och dra nytta av nyare träningsdata. För att konfigurera dig för framgång vill du skapa en omträningsloop – eller en systematisk och iterativ process för att kontinuerligt förfina och säkerställa modellens noggrannhet.

Den här processen kan verka alltför komplicerad. Tänk på att det kan förenklas avsevärt med hjälp av fördefinierade modeller. MLOps-verktyg som Azure Machine Learning behöver inte nödvändigtvis fyllas med anpassade modeller, de accepterar också fördefinierade modeller. I den meningen är Azure AI Services ett bra alternativ, eftersom det ger snabbare resultat med mindre datavetenskapskunskaper som krävs.

I nästa lektion ska vi diskutera möjligheterna med Azure AI Services.