Blog gebaseerd op de Podcastserie ‘Business vooruit met IT’ van Info Support- met Joop Snijder (hoofd Research Center AI), Willem Meints (Chief AI Architect) en Bas Niesink (data Scientist)
6 x vraag en antwoord over MLOps
MLOps is afgeleid van de meer bekende DevOps werkwijze, waarbij je de afdeling development en operatie samenvoegt. Voor machine learning betekent dit dat je niet alleen modellen ontwikkelt en traint, maar deze ook monitort als ze in productie zijn. Wat is het voordeel van deze werkwijze? Wanneer is je organisatie klaar om ermee aan de slag te gaan? In deze blog vind je het antwoord op deze en meer vragen over MLOps.
Luister de aflevering
Wat is de definitie van MLOps?
Bas Niesink: ‘’De definitie van MLOps bestaat uit meerdere aspecten. Het begint vaak met een bepaald probleem dat je wilt oplossen en daar heb je data voor nodig. Vervolgens ga je data analyseren, de kwaliteit ervan verbeteren en de punten bepalen waarop je beslissingen kan gaan maken. Pas dan kun je een model gaan trainen. Vervolgens blijf je dat proces continu monitoren, ook als het model al in productie is gezet. Je houdt je bezig met vragen als: Wat moeten we bijschaven? Kunnen we het model nog steeds uitleggen?’’
Joop Snijder vult aan: “MLOps is een afgeleide van DevOps, waarbij het uitgangspunt is dat je development en operations samenvoegt. Dus in het geval van MLOps voeg je machine learning en operations samen. Je ontwikkelt en traint dus niet alleen modellen, maar je monitort ook een model dat al in productie is. Je maakt hierbij geen onderscheid meer tussen het team dat het model bouwt en het team dat het model draaiende houdt, dat is bij MLOps allemaal één.’’
In welke behoefte voorziet MLOps?
Willem Meints: ’’We hebben gemerkt dat reproduceerbaarheid heel belangrijk is, vooral als er eenmaal een model in productie is. Eén van de nare dingen aan machine learning – vind ik persoonlijk – is de random nummer generator. Die gebruiken we om het model de eerste keer te initialiseren. Maar daardoor is je model elke keer als je opnieuw begint met het trainen in één keer weer helemaal anders. Met MLOps leg je niet alleen de code vast, maar ook de configuratie waarmee je die random nummergenerator een plek geeft zodat je dit voorkomt. Dit zorgt voor een herhaalbaar proces.”
Zonder herhaalbaar proces, wordt de kans op fouten groter. Joop Snijder: “Het geautomatiseerd testen past ook in dit verhaal, als je dat handmatig gaat doen loop je uiteindelijk tegen productieproblemen aan. We zien in de praktijk dat klanten bijvoorbeeld zelf in notebooks iets in elkaar sleutelen en daar ook productie mee draaien. Als er dan iets veranderd moet worden, wordt dat in die notebooks gedaan. Dit betekent dat alles wat je op dat moment wijzigt, ook in productie is. Hierdoor leiden kleine fouten tot grote problemen. Het hele idee van de MLOps werkwijze is zoveel mogelijk automatiseren, zodat dat je zo min mogelijk fouten in productie hebt.”
MLOps zorgt niet alleen voor meer snelheid en minder fouten, maar verhoogt ook de kwaliteit van modellen. Bas Niesink: “Als je MLOps gebruikt zorg je voor reproduceerbaarheid. Doordat je het model blijft monitoren komen er fouten aan het licht die anders pas later in het proces naar voren zouden komen. Doordat MLOps het zo gemakkelijk maakt om continu een nieuwe reproduceerbare run te doen, blijf je continu verbeteren en verhoog je de kwaliteit. Een model is dus niet af als je deze in productie zet, dan gaat het proces pas van start. Ondanks dat je er van tevoren heel goed over nadenkt, merk je pas gaandeweg welke data je nodig hebt. Je kunt als mens vooraf niet tot de perfecte dataset komen, want bij het denkwerk van mensen krijg je al snel te maken met bias.’’
Wanneer moet je met MLOps beginnen?
Willem Meints: ‘’Dat is een goede vraag. Bij de bedrijven waar wij komen, zie je vaak dat ze net het eerste experiment hebben afgerond in de ontwikkelomgeving. Het model is dan vaak nog niet in productie. Ik denk dat dit een mooi moment is om te beginnen. Je kunt dan een simpel buildscript automatisch valideren en in productie uitrollen.’’
Het is niet nodig om al veel ervaring te hebben op het gebied van AI of machine learning. Joop Snijder: “Op het moment dat je een model hebt gemaakt, kun je al beginnen met MLOps. ’’ Bas Niesink vult aan: ‘’We hebben binnen Info Support het concept van een AI design week, waarin we binnen vijf werkdagen een idee valideren. Na die vijf dagen zal al dat moment kunnen zijn.’’
Het belangrijkste is dat je de waarde van het model behoudt. Als je geen MLOps gebruikt – en dus niet continu monitort – kan een model al snel zijn waarde verliezen zonder dat je het in de gaten hebt. Bijvoorbeeld omdat het model de gebruikers beïnvloedt en die verandering weer invloed heeft op het model.Joop Snijder - Hoofd Research Center AI
Is een model zonder MLOps gedoemd om te mislukken?
Joop Snijder: ‘’Het gevaar van een model zonder MLOps is het niet versioneren van alle ingrediënten die je gebruikt hebt om het model te maken. Wanneer je in productie ontdekt dat het model opnieuw getraind moet worden. Je moet niet alleen de code versioneren, maar ook de data die je hebt gebruikt om dat model te trainen. Als je dit handmatig moet doen is de foutgevoeligheid zo groot dat je waarschijnlijk een paar versies terug moet en opnieuw moet beginnen. In die zin is zo’n project, door de hoge foutgevoeligheid, inderdaad wel gedoemd om te mislukken.’’
Het is belangrijk om klein te beginnen. Willem Meints: “Ik denk dat als je begint met geautomatiseerd testen op je trainingscode en het automatisch uitrolt, je al een hele goede start hebt. Als je begint met het programmeren in het algemeen, dan is versiebeheer op je code al punt één. Maar bij AI heb je natuurlijk ook je data en die wil je ook geversioneerd hebben. Daarna kun je beginnen met automatische deployment zodat je heel snel naar productie kan gaan. Dan ben je de eerste vijf versies in ieder geval al heel goed bezig. Daarna is het belangrijk om zo snel mogelijk feedback uit productie te verzamelen.’’
De eerste fouten haal je er gemakkelijk uit, maar daarna wordt het lastiger. Willem Meints: “Je kunt zelf niet beoordelen hoe eerlijk je model is, daar moet je eerst over discussiëren met de business.’’
Is Data Science door de komst van MLOps meer op reguliere softwareontwikkeling gaan lijken?
Bas Niesink: ‘’Dat is een interessante vraag. Ik denk het wel. Voor softwareontwikkeling is DevOps de manier van werken. Daarbij zie je ook dat een team zelf een hele ontwikkelstraat doorloopt van het ontwikkelen, uitrollen en monitoren van software. Wat je bij MLOps doet, is een aantal van die concepten toepassen, maar dan op het niveau van data science. Dus je bent bezig met je data analyseren, je model testen en het in productie plaatsen, zodat mensen het kunnen gaan gebruiken. Ik zie daar wel veel raakvlakken in.”
Willem Meints: ‘’Ik denk dat je veel technieken kunt hergebruiken vanuit de software-engineering. Als ik bijvoorbeeld kijk naar automatisch testen, zoals het test framework dat je gebruikt voor het testen van Python code, is dat exact hetzelfde als voor machine learning. Het verschil is dat je bij een normale code ‘als-dan’ statements kunt checken. Dus dan kun je zeggen: Als ik A erin stop, de moet B eruit komen en als ik C erin stop, moet D eruit komen. Bij machine learning kan dat laatste niet, omdat het antwoord vager is. Dat neemt niet weg dat je nog steeds dezelfde tooling en dezelfde manier van denken kunt gebruiken om die dingen te testen.’’
Dat data science op softwareontwikkeling lijkt, was lang redelijk onbekend. Joop Snijder: ‘’Ik ben een aantal jaar geleden bij een grote conferentie geweest waar data scientists elkaar aanmoedigden om data scripts te maken en kennis uitwisselden over hoe je dat doet. Ze kwamen uit een heel andere wereld dan wij; ze hadden nog nooit een functie geprogrammeerd. Wij werken al zo lang volgens de DevOps werkwijze, dat toen wij de modellen moesten gaan integreren in het product dat wij ontwikkelden, het de normaalste zaak van de wereld was dat je dat automatisch testte en dat je daar requirements voor schreef.’’
Heb je een groot team nodig om MLOps in te zetten?
Joop Snijder: “Met een team van drie kun je al een geolied MLOps team maken. Bas Niesink is het daarmee eens: “Dat kan, mits je voldoende IT-kennis in huis hebt om je model te kunnen uitrollen en het proces te automatiseren. Maar je hebt dus geen grote groep IT-specialisten nodig om te kunnen starten. Qua rollen heb je minstens een data scientist nodig, een DevOps engineer en een data engineer.”
Grotere teams zorgen vaak voor meer communicatie en papierwerk. Willem Meints: “Ik geloof – zeker bij AI – dat het belangrijk is dat je snel moet kunnen schakelen. Daarvoor is een kleiner team toch meer geschikt.