Begrepp – Maskininlärningsåtgärder (MLOps) för AI- och maskininlärningsarbetsflöden
I den här artikeln får du lära dig mer om maskininlärningsåtgärder (MLOps), inklusive vilka typer av metoder och verktyg som ingår, och hur det kan förenkla och påskynda dina AI- och maskininlärningsarbetsflöden i Azure Kubernetes Service (AKS).
Vad är MLOps?
Maskininlärningsåtgärder (MLOps) omfattar metoder som underlättar samarbete mellan dataforskare, IT-åtgärder och affärsintressenter, vilket säkerställer att maskininlärningsmodeller utvecklas, distribueras och underhålls effektivt. MLOps tillämpar DevOps-principer på maskininlärningsprojekt som syftar till att automatisera och effektivisera livscykeln för maskininlärning från slutpunkt till slutpunkt. Den här livscykeln omfattar modeller för träning, paketering, validering, distribution, övervakning och omträning.
MLOps kräver flera roller och verktyg för att fungera tillsammans effektivt. Dataforskare fokuserar på uppgifter som rör träning av modellen, vilket kallas den inre loopen. Maskininlärningstekniker och IT-driftteam hanterar den yttre loopen, där de tillämpar DevOps-metoder för att paketera, validera, distribuera och övervaka modeller. När modellen behöver finjusteras eller tränas om loopar processen tillbaka till den inre loopen.
MLOps-pipeline
Din MLOps-pipeline kan utnyttja olika verktyg och mikrotjänster som distribueras sekventiellt eller parallellt. Nedan visas exempel på viktiga komponenter i pipelinen som har nytta av att implementera följande metodtips för att minska kostnaderna och möjliggöra snabbare iteration:
- Ostrukturerat datalager för nya data som flödar till ditt program
- Vektordatabas för att lagra och fråga strukturerade, förbearbetade data
- Ramverk för datainmatning och indexering
- Arbetsflöden för vektorinmatning och/eller modellträning
- Verktyg för insamling och avisering av mått (spårning av modellprestanda, mängden inmatade data osv.)
- Verktyg för livscykelhantering
DevOps och MLOps
DevOps är en kombination av verktyg och metoder som gör att du kan skapa robusta och reproducerbara program. Målet med att använda DevOps är att snabbt leverera värde till dina slutanvändare. Att skapa, distribuera och övervaka robusta och reproducerbara modeller för att leverera värde till slutanvändare är det primära målet för MLOps.
Det finns tre processer som är viktiga för MLOps:
- Maskininlärningsarbetsbelastningar som en dataexpert ansvarar för, inklusive undersökande dataanalys (EDA), funktionsutveckling och modellträning och justering.
- Metoder för programvaruutveckling, inklusive planering, utveckling, testning och paketering av modellen för distribution.
- Operativa aspekter av att distribuera och underhålla modellen i produktion, inklusive att frigöra, konfigurera resurser och övervaka modellen.
DevOps-principer som gäller för MLOps
MLOps utnyttjar flera principer från DevOps för att förbättra livscykeln för maskininlärning, till exempel automatisering, kontinuerlig integrering och leverans (CI/CD), källkontroll, agil planering och infrastruktur som kod (IaC).
Automation
Genom att automatisera uppgifter kan du minska manuella fel, öka effektiviteten och säkerställa konsekvens i HELA ML-livscykeln. Automatisering kan tillämpas på olika steg, inklusive datainsamling, modellträning, distribution och övervakning. Genom automatisering kan du också tillämpa proaktiva åtgärder i AI-pipelinen för att säkerställa dataefterlevnad med organisationens principer.
Din pipeline kan till exempel automatisera:
- Modelljustering/omträning med jämna mellanrum eller när en viss mängd nya data samlas in i ditt program.
- Identifiering av prestandaförsämring för att kickstarta finjustering eller omträning på en annan delmängd av data.
- Vanlig genomsökning av säkerhetsrisker och exponering (CVE) på grundläggande containeravbildningar som hämtats från externa containerregister för att säkerställa säkra säkerhetsmetoder.
Kontinuerlig integrering (CI)
Kontinuerlig integrering omfattar skapande och verifiering av aspekter av modellutvecklingsprocessen. Målet med CI är att skapa koden och verifiera kodens kvalitet och modellen före distributionen. Detta inkluderar testning på en rad exempeldatauppsättningar för att säkerställa att modellen fungerar som förväntat och uppfyller kvalitetsstandarder.
I MLOps kan CI omfatta:
- Omstrukturera undersökande kod i Jupyter Notebooks till Python- eller R-skript.
- Validera nya indata för saknade värden eller felvärden.
- Enhetstestning och integreringstestning i pipelinen från slutpunkt till slutpunkt.
Om du vill utföra linting och enhetstestning kan du använda automatiseringsverktyg som Azure Pipelines i Azure DevOps eller GitHub Actions.
Kontinuerlig leverans (CD)
Kontinuerlig leverans omfattar de steg som krävs för att distribuera en modell i produktion på ett säkert sätt. Det första steget är att paketera och distribuera modellen i förproduktionsmiljöer, till exempel utvecklings- och testmiljöer. Portabilitet för parametrar, hyperparametrar och andra modellartefakter är en viktig aspekt att underhålla när du höjer upp koden via dessa miljöer. Den här portabiliteten är särskilt viktig när det gäller stora språkmodeller (LLM) och stabila diffusionsmodeller. När modellen har godkänt enhetstesterna och kvalitetssäkringstesterna (QA) kan du godkänna den för distribution i produktionsmiljön.
Källkontroll
Källkontroll, eller versionskontroll, är viktigt för att hantera ändringar i kod och modeller. I ett ML-system refererar detta till versionshantering av data, kodversioner och modellversioner, vilket gör det möjligt för korsfunktionella team att samarbeta effektivt och spåra ändringar över tid. Med hjälp av ett Git-baserat källkontrollsystem, till exempel Azure Repos i Azure DevOps eller en GitHub-lagringsplats, kan du programmatiskt underhålla en historik över ändringar, återgå till tidigare versioner och hantera grenar för olika experiment.
Flexibel planering
Flexibel planering innebär att isolera arbete i sprintar, vilket är korta tidsramar för att slutföra specifika uppgifter. Med den här metoden kan team snabbt anpassa sig till ändringar och leverera inkrementella förbättringar av modellen. Modellträning kan vara en pågående process, och flexibel planering kan hjälpa till att begränsa projektet och möjliggöra bättre teamanpassning.
Du kan använda verktyg som Azure Boards i Azure DevOps eller GitHub-problem för att hantera din agila planering.
Infrastruktur som kod (IaC)
Du använder infrastruktur som kod för att upprepa och automatisera infrastrukturen som behövs för att träna, distribuera och hantera dina modeller. I ett ML-system hjälper IaC till att förenkla och definiera lämpliga Azure-resurser som behövs för den specifika jobbtypen i kod, och koden underhålls på en lagringsplats. På så sätt kan du versionskontroll din infrastruktur och göra ändringar för resursoptimering, kostnadseffektivitet osv. efter behov.
Nästa steg
Läs följande artiklar om du vill veta mer om metodtips för MLOps i dina intelligenta program i AKS:
Azure Kubernetes Service