Cursus
MLOps, of Machine Learning Operations, is een essentieel onderdeel van de machinelearning-workflow en ontwikkelt zich tot een vakgebied op zichzelf. Het combineert machine learning met best practices uit de software-engineering om ervoor te zorgen dat modellen de stap kunnen maken van experiment naar productie, terwijl het ook de technische schuld binnen datateams vermindert.
Om op schaal succesvol te zijn met machine learning, is het cruciaal om het MLOps-volwassenheidsniveau van je organisatie in ogenschouw te nemen. Vaak zijn er barrières bij het uitrollen van modellen, zoals infrastructuur, organisatiecultuur of het onvermogen om het model te hertrainen wanneer het afwijkt. Dit kan leiden tot veel minder waarde uit machine learning dan verwacht (of erger nog: mogelijk schade voor stakeholders die met je modellen in aanraking komen). Dit kan op zijn beurt leiden tot wantrouwen in het vermogen van het datateam om met machine learning waarde te leveren. Om het volledige potentieel van machine learning en AI te benutten, is een doordachte aanpak van MLOps nodig.
MLOps stelt data scientists ook in staat zich te richten op wat echt telt: data verzamelen en opschonen, modellen ontwikkelen en de juiste technieken toepassen. Dat komt doordat MLOps de automatisering in elke fase van de machinelearning-levenscyclus aanzienlijk vergroot.
Dit artikel gaat ervan uit dat je basiskennis hebt van MLOps en het belang ervan begrijpt; voor meer informatie over MLOps, bekijk onze artikelen Aan de slag met MLOps en MLOps Best Practices.
Waarom werken met volwassenheidsniveaus?
MLOps draait niet alleen om tools adopteren of werkwijzen aanpassen. Implementatie vereist een holistische benadering van het gebruik van tools en technologie om silo’s binnen technische teams af te breken en automatisering te vergroten. Dit kan betekenen dat je de organisatie herstructureert of mensen verplaatst, maar de oplossing is voor elk bedrijf anders en uniek.
Als je MLOps bekijkt door de lens van volwassenheid, oftewel een meting van hoever je bedrijf is in het MLOps-implementatieproces, helpt dat vast te stellen waar een organisatie staat en wat ze kan doen om de volwassenheid te verhogen, evenals wat deze toename zal opleveren. Het betekent ook dat MLOps-volwassenheid kan meeschalen met een organisatie. Kleine bedrijven met weinig modellen hoeven niet op hetzelfde volwassenheidsniveau te zitten als grote, complexe organisaties. Maar zelfs kleine organisaties waarvan de kernpropositie machine learning vereist, hebben een relatief volwassen MLOps-praktijk nodig.
Het is ook goed om te benadrukken dat opschalen binnen het volwassenheidsmodel niet lineair verloopt. Je organisatie kan elementen hebben van een MLOps-praktijk met hoge volwassenheid, maar lage volwassenheid in andere gebieden. In de onderstaande sectie lichten we Microsofts MLOps-volwassenheidsmodel toe, dat een holistisch overzicht biedt van hoe MLOps zich binnen een organisatie ontwikkelt.
Microsofts MLOps-volwassenheidsmodel
Het Microsoft MLOps-volwassenheidsmodel definieert drie brede dimensies om de MLOps-volwassenheid te beoordelen:
- Mensen: De verschillende rollen binnen een datateam, en hoe ze met elkaar samenwerken
- Machinelearning-levenscyclus: Hoe de machinelearning-levenscyclus wordt beheerd, van dataverzameling tot modelcreatie en release.
- Toepassing: Hoe machinelearning-modellen worden getest, geïmplementeerd, uitgerold en hertraind.
Bovendien definieert het Microsoft MLOps-volwassenheidsmodel vijf volwassenheidsstadia voor een MLOps-praktijk, als volgt:
- Geen MLOps: Losstaande blackbox-systemen met gesiloode datateams en handmatige training, uitrol en test van modellen.
- DevOps maar geen MLOps: Het datateam traint modellen terwijl een apart team ze uitrolt. De feedbackloop over modelprestaties is ondoorzichtig met beperkte reproduceerbaarheid.
- Geautomatiseerde training: Modellen zijn reproduceerbaar en releases zijn minder handmatig. Training is automatisch en pipelines worden breed ingezet.
- Geautomatiseerde uitrol: Uitrol is geautomatiseerd en herleidbaar tot de oorspronkelijke data. Modellen kunnen na uitrol A/B-getest worden en tests zijn geautomatiseerd.
- Volledige MLOps: Het systeem is volledig geautomatiseerd van data-inname tot modeluitrol en -tests, met gemonitorde, gecentraliseerde analytics over modelprestaties. Deze systemen zijn vaak maatwerk.
Onderstaande sectie behandelt elk volwassenheidsniveau, met een samenvattende tabel met de belangrijkste punten.
Geen MLOps
In deze fase is er zeer weinig automatisering en is het datateam afgeschermd van de bredere organisatie en ook intern gesegmenteerd. De adoptie van tools is laag en sommige functies zoals data engineering bestaan mogelijk niet of worden uitgevoerd door data scientists. Op dit volwassenheidsniveau is het uitrollen van zelfs één model moeilijk en tijdrovend en vereist het hertrainen van modellen het volledig opnieuw draaien van analyses en trainingsjobs. Er is geen tracking van het model na uitrol, waardoor het verkennen van het effect mogelijk niet haalbaar is.
|
Mensen |
Data scientists |
Niet in contact met het bredere team, werken zelfstandig. |
|
Data engineers |
Bestaan mogelijk niet. |
|
|
Software engineers |
Ontvangen modellen van data scientists en staan los van het datateam. |
|
|
ML-levenscyclus |
Datavoorbereiding |
Hoewel databases kunnen bestaan, wordt data handmatig verzameld voor modeltraining. |
|
Modeltraining |
Experimenten worden niet getrackt en er zijn geen data- en machinelearning-pipelines ingericht. |
|
|
Modeluitrol |
Modellen worden meestal handmatig opgeleverd met inputs en outputs. Er is geen versiebeheer en het scoring-script wordt handmatig gemaakt; uitrol wordt doorgaans door data scientists afgehandeld. |
|
|
Toepassing |
Integratie |
Volledig handmatig testen en releasen elke keer dat een model klaar is voor uitrol, sterk afhankelijk van data scientists. |
DevOps maar geen MLOps
Met de integratie van DevOps-best practices is het datateam nog steeds gesegmenteerd, hoewel er mogelijk dedicated data engineers zijn. Cloudtechnologie kan zijn geadopteerd, maar wordt niet ten volle benut. In deze fase wordt het verzamelen van data uit databases en de voorbereiding voor machine learning geautomatiseerd in herbruikbare pipelines. Er kunnen ook integratietests zijn wanneer modellen worden uitgerold. Data scientists dragen veel petten en zijn na uitrol sterk betrokken bij het testen van modellen.
|
Mensen |
Data scientists |
Niet in contact met het bredere team, werken zelfstandig. |
|
Data engineers |
Niet in contact met het bredere team, werken zelfstandig. |
|
|
Software engineers |
Ontvangen modellen van data scientists en staan los van het datateam. |
|
|
ML-levenscyclus |
Datavoorbereiding |
Geautomatiseerde datapipelines zijn beschikbaar en kunnen draaien op beheerde cloudresources. |
|
Modeltraining |
Experimenten zijn niet reproduceerbaar en worden niet allemaal consequent getrackt. |
|
|
Modeluitrol |
Modellen worden meestal handmatig opgeleverd met inputs en outputs. Er is versiebeheer en het scoring-script wordt nog steeds handmatig gemaakt; uitrol wordt meestal door data scientists of engineers gedaan. |
|
|
Toepassing |
Integratie |
Releases zijn geautomatiseerd en er zijn basisintegratietests ingericht, maar ze zijn sterk afhankelijk van de expertise van data scientists. |
Geautomatiseerde training
In deze fase neemt de samenwerking binnen het datateam aanzienlijk toe. Data scientists werken nu met engineers om hun modeltrainingscode om te zetten in herhaalbare scripts die geautomatiseerde datapipelines gebruiken. Experimenten worden getrackt en versiebeheer is veel breder ingevoerd. Uitrol is meer geautomatiseerd, waarbij modelbestanden nog steeds aan software-engineers worden overgedragen.
|
Mensen |
Data scientists |
Data scientists werken met data engineers om experimenteercode om te zetten in herhaalbare scripts. |
|
Data engineers |
||
|
Software engineers |
Ontvangen modellen van data scientists en staan los van het datateam. |
|
|
ML-levenscyclus |
Datavoorbereiding |
Geautomatiseerde datapipelines die draaien op beheerde cloudresources. |
|
Modeltraining |
Experimenten worden getrackt en trainingscode en modellen staan onder versiebeheer. |
|
|
Modeluitrol |
Modellen worden nog steeds handmatig uitgerold; het scoring-script staat onder versiebeheer en de release wordt nu beheerd door software-engineeringteams. |
|
|
Toepassing |
Integratie |
Releases zijn geautomatiseerd en er zijn basisintegratietests ingericht, maar ze zijn sterk afhankelijk van de expertise van data scientists. |
Geautomatiseerde modeluitrol
Software-engineers werken nu veel nauwer samen met data engineers om de modellen, evenals hun trainings- en dataverzamelingspijplijnen, uit te rollen. Experimenten worden volledig getrackt en er zijn geautomatiseerde unit- en integratietests voor elke modelrelease en de applicatie zelf. Er kan ook CI/CD aanwezig zijn in sommige gebieden.
|
Mensen |
Data scientists |
Data scientists werken met data engineers om experimenteercode om te zetten in herhaalbare scripts. |
|
Data engineers |
||
|
Software engineers |
Werken met data engineers om modelintegratie in applicaties te automatiseren. |
|
|
ML-levenscyclus |
Datavoorbereiding |
Geautomatiseerde datapipelines die draaien op beheerde cloudresources. |
|
Modeltraining |
Experimenten worden getrackt en trainingscode en modellen staan onder versiebeheer. |
|
|
Modeluitrol |
Modellen worden nu automatisch uitgerold, het scoring-script staat onder versiebeheer en de release wordt nu beheerd door een continuous delivery (CI/CD)-pipeline |
|
|
Toepassing |
Integratie |
Integratie in applicatiecode is minder afhankelijk van data scientists, en er zijn unit- en integratietests voor elke modelrelease |
Volledige MLOps met geautomatiseerd hertrainen
In de laatste volwassenheidsfase werken data engineers, data scientists en software-engineers nauw samen om zoveel mogelijk automatisering in het ontwikkel- en uitrolproces te realiseren. Bovendien zijn experimenten en modeltraining en -hertraining geautomatiseerd op basis van productiemetrics, worden modellen automatisch gereleased en beheerd door een CI/CD-pipeline, en worden modellen getest in applicatiecode.
|
Mensen |
Data scientists |
Data scientists werken met data engineers om experimenten om te zetten in herhaalbare scripts en werken met software-engineers om processen te automatiseren. Data engineers en software-engineers werken samen om modelintegratie in een applicatie te automatiseren en prestatiemetrics na uitrol te verzamelen. |
|
Data engineers |
||
|
Software engineers |
||
|
ML-levenscyclus |
Datavoorbereiding |
Geautomatiseerde datapipelines die draaien op beheerde cloudresources. |
|
Modeltraining |
Experimenten worden getrackt en trainingscode en modellen staan onder versiebeheer; modellen worden na uitrol automatisch hertraind op basis van prestatiemetrics. |
|
|
Modeluitrol |
Modellen worden nu automatisch uitgerold, het scoring-script staat onder versiebeheer en de release wordt nu beheerd door een continuous delivery (CI/CD)-pipeline |
|
|
Toepassing |
Integratie |
Integratie in applicatiecode is minder afhankelijk van data scientists, en er zijn unit- en integratietests voor elke modelrelease |
Verschillen tussen populaire MLOps-modellen
Een opvallend verschil tussen dit MLOps-volwassenheidsmodel en dat van Google is de implementatie van CI/CD-concepten. Google suggereert dat deze doorgaans op het laatste volwassenheidsniveau vallen, terwijl Microsoft hertrainen als laatste fase ziet.
In de praktijk is hertrainen een van de belangrijkste drijfveren voor het adopteren van MLOps en kan het eerder dan in de laatste fase worden geïntegreerd. Er zijn echter randvoorwaarden voor modelhertraining, zoals sterke automatisering en infrastructuur, evenals hoogwaardige data- en modeltrainingspijplijnen. CI/CD-concepten zullen tot in de laatste fasen van MLOps-volwassenheid verder worden verbeterd.
Zeer volwassen organisaties zoals Google en Microsoft hebben doorgaans maatwerksoftware die draait op hun eigen cloudoplossingen en specifieke tools tot hun volle potentieel benut. Software-engineers zeggen vaak dat technologie bij deze bedrijven ‘gewoon werkt’, met frictieloze modeluitrol en efficiënte toegang tot data. Dat is nodig omdat deze bedrijven honderden modellen in productie hebben voor het brede scala aan producten dat ze aanbieden.
Hoe je je MLOps-volwassenheid vergroot
MLOps is nog steeds een van de meest kritieke gebieden binnen data science, aangezien veel organisaties worstelen met het in productie brengen van modellen. MLOps-volwassenheidsmodellen bieden een uitstekend raamwerk om te begrijpen waar datateams momenteel staan in hun machinelearning-vaardigheden en hoe ze zich verder kunnen ontwikkelen.
Wil je meer leren over MLOps, bekijk dan deze resources:
- [DataFramed Podcast] Machine learning operationaliseren met MLOps
- [Webinar] Een praktische gids voor MLOps
