Machine Learning-driftens mognadsmodell

Azure Machine Learning

Syftet med den här mognadsmodellen är att förtydliga principerna och metoderna för Machine Learning Operations (MLOps). Mognadsmodellen visar den kontinuerliga förbättringen av skapandet och driften av en maskininlärningsprogrammiljö på produktionsnivå. Du kan använda det som mått för att fastställa de progressiva krav som krävs för att mäta mognaden för en produktionsmiljö för maskininlärning och dess associerade processer.

Mognadsmodell

MLOps-mognadsmodellen hjälper till att klargöra principerna och metoderna för Utvecklingsåtgärder (DevOps) som krävs för att köra en lyckad MLOps-miljö. Den är avsedd att identifiera luckor i en befintlig organisations försök att implementera en sådan miljö. Det är också ett sätt att visa dig hur du ökar din MLOps-kapacitet i steg i stället för att överbelasta dig med kraven i en fullt mogen miljö. Använd det som en guide för att:

  • Beräkna omfånget för arbetet för nya åtaganden.

  • Upprätta realistiska framgångskriterier.

  • Identifiera slutprodukt som du lämnar över när åtagandet avslutas.

Precis som med de flesta mognadsmodeller utvärderar MLOps-mognadsmodellen kvalitativt människor/kultur, processer/strukturer och objekt/teknik. När mognadsnivån ökar ökar sannolikheten för att incidenter eller fel leder till förbättringar i kvaliteten på utveckling och produktionsprocesser.

MLOps-mognadsmodellen omfattar fem nivåer av teknisk kapacitet:

Nivå beskrivning Höjdpunkter Teknik
0 Inga MLOps
  • Svårt att hantera hela livscykeln för maskininlärningsmodellen
  • Teamen är olika och lanseringar är smärtsamma
  • De flesta system finns som "svarta rutor", lite feedback under/efter distributionen
  • Manuella versioner och distributioner
  • Manuell testning av modell och program
  • Ingen centraliserad spårning av modellprestanda
  • Träning av modell är manuell
1 DevOps men inga MLOps
  • Versioner är mindre smärtsamma än inga MLOps, men förlitar sig på Data Team för varje ny modell
  • Fortfarande begränsad feedback om hur bra en modell presterar i produktion
  • Svårt att spåra/återskapa resultat
  • Automatiserade versioner
  • Automatiserade tester för programkod
2 Automatiserad utbildning
  • Träningsmiljön är fullständigt hanterad och spårbar
  • Lätt att återskapa modell
  • Utgåvor är manuella, men låg friktion
  • Automatiserad modellträning
  • Centraliserad spårning av modellträningsprestanda
  • Modellhantering
3 Automatiserad modelldistribution
  • Utgåvor är låg friktion och automatisk
  • Fullständig spårning från distribution tillbaka till ursprungliga data
  • Hela miljön hanteras: träna > testproduktion >
  • Integrerad A/B-testning av modellprestanda för distribution
  • Automatiserade tester för all kod
  • Centraliserad spårning av modellträningsprestanda
4 Fullständiga automatiserade MLOps-åtgärder
  • Fullständigt system automatiserat och enkelt övervakat
  • Produktionssystem ger information om hur man kan förbättra och i vissa fall automatiskt förbättra med nya modeller
  • Närmar sig ett system med noll stilleståndstid
  • Automatiserad modellträning och testning
  • Utförliga, centraliserade mått från distribuerad modell

Tabellerna som följer identifierar de detaljerade egenskaperna för den processmognaden. Modellen fortsätter att utvecklas. Den här versionen uppdaterades senast i januari 2020.

Nivå 0: Inga MLOps

Personer Skapa modell Modellversion Programintegrering
  • Dataforskare: siloed, inte i regelbunden kommunikation med det större teamet
  • Datatekniker (om det finns): siloed, inte i regelbunden kommunikation med det större teamet
  • Programvarutekniker: siloed, ta emot modellen via fjärranslutning från de andra teammedlemmarna
  • Data som samlas in manuellt
  • Beräkning hanteras sannolikt inte
  • Experiment spåras inte förutsägbart
  • Slutresultatet kan vara en enskild modellfil som lämnas ut manuellt med indata/utdata
  • Manuell process
  • Bedömningsskriptet kan skapas manuellt efter experiment, inte versionsstyrt
  • Frisläpp enbart av dataexpert eller datatekniker
  • Starkt beroende av dataexpertis för att implementera
  • Manuella versioner varje gång

Nivå 1: DevOps inga MLOps

Personer Skapa modell Modellversion Programintegrering
  • Dataforskare: siloed, inte i regelbunden kommunikation med det större teamet
  • Datatekniker (om det finns): siloed, inte i regelbunden kommunikation med det större teamet
  • Programvarutekniker: siloed, ta emot modellen via fjärranslutning från de andra teammedlemmarna
  • Datapipelinen samlar in data automatiskt
  • Beräkning hanteras eller hanteras inte
  • Experiment spåras inte förutsägbart
  • Slutresultatet kan vara en enskild modellfil som lämnas ut manuellt med indata/utdata
  • Manuell process
  • Bedömningsskriptet kan skapas manuellt efter experiment, sannolikt versionskontrollerat
  • Överlämnas till programvarutekniker
  • Grundläggande integreringstester finns för modellen
  • Starkt beroende av dataexpertis för att implementera modell
  • Automatiserade versioner
  • Programkoden har enhetstester

Nivå 2: Automatiserad utbildning

Personer Skapa modell Modellversion Programintegrering
  • Dataforskare: Arbeta direkt med datatekniker för att konvertera experimentkod till repeterbara skript/jobb
  • Datatekniker: Arbeta med dataforskare
  • Programvarutekniker: siloed, ta emot modellen via fjärranslutning från de andra teammedlemmarna
  • Datapipelinen samlar in data automatiskt
  • Beräkningshanterad
  • Experimentresultat spåras
  • Både träningskod och resulterande modeller är versionsstyrda
  • Manuell version
  • Bedömningsskriptet är versionsstyrt med tester
  • Versionshanterat av programvaruutvecklingsteamet
  • Grundläggande integreringstester finns för modellen
  • Starkt beroende av dataexpertis för att implementera modell
  • Programkoden har enhetstester

Nivå 3: Automatiserad modelldistribution

Personer Skapa modell Modellversion Programintegrering
  • Dataforskare: Arbeta direkt med datatekniker för att konvertera experimentkod till repeterbara skript/jobb
  • Datatekniker: Arbeta med dataforskare och programvarutekniker för att hantera indata/utdata
  • Programvarutekniker: Arbeta med datatekniker för att automatisera modellintegrering i programkod
  • Datapipelinen samlar in data automatiskt
  • Beräkningshanterad
  • Experimentresultat spåras
  • Både träningskod och resulterande modeller är versionsstyrda
  • Automatisk lansering
  • Bedömningsskriptet är versionsstyrt med tester
  • Versionshanterad av ci/CD-pipeline (continuous delivery)
  • Enhets- och integreringstester för varje modellversion
  • Mindre beroende av dataexpertis för att implementera modell
  • Programkoden har enhets-/integrationstester

Nivå 4: Fullständig MLOps automatiserad omträning

Personer Skapa modell Modellversion Programintegrering
  • Dataforskare: Arbeta direkt med datatekniker för att konvertera experimentkod till repeterbara skript/jobb. Arbeta med programvarutekniker för att identifiera markörer för datatekniker
  • Datatekniker: Arbeta med dataforskare och programvarutekniker för att hantera indata/utdata
  • Programvarutekniker: Arbeta med datatekniker för att automatisera modellintegrering i programkod. Implementera insamling av mått efter distribution
  • Datapipelinen samlar in data automatiskt
  • Omträning utlöses automatiskt baserat på produktionsmått
  • Beräkningshanterad
  • Experimentresultat spåras
  • Både träningskod och resulterande modeller är versionsstyrda
  • Automatisk utgåva
  • Bedömningsskriptet är versionskontrollerat med tester
  • Versionshanterad av kontinuerlig integrering och CI/CD-pipeline
  • Enhets- och integrationstester för varje modellversion
  • Mindre beroende av dataexpertis för att implementera modell
  • Programkoden har enhets-/integrationstester

Nästa steg