Use case: Vandewiele en Leap Technologies
In de industrie is het belangrijk om fouten in machines zo snel mogelijk te detecteren om zo de stilstand van productie te verminderen en de kwaliteit van de producten te kunnen garanderen. Voor Vandewiele, een bedrijf dat machines maakt voor de weefindustrie, is dit niet anders. Daarom hebben zij, in samenwerking met Leap Technologies, een foutdetectiemodel gecreëerd om deze fouten te detecteren en te voorspellen.
Het doel is om dit model uiteindelijk op, of zo dicht mogelijk bij, de originele machine te laten draaien. Zo hoeft niet alle data naar de Cloud gestuurd te worden, wat voor vertraging kan zorgen in de applicatie. Deze machines worden ook in productiehallen geplaatst, waar niet altijd een stabiele connectie met de Cloud gegarandeerd kan worden.
Het gemaakte machine learning model werkt goed in R&D, maar bepaalde machine-instellingen hebben invloed op de inkomende data van het model en kunnen de nauwkeurigheid van het model verminderen. Om deze reden is het belangrijk om de principes van MLOps te gebruiken.
Deze use case zal twee grote vragen beantwoorden:
- Wat is een goede, eenvoudige manier om MLOps-principes in deze situatie toe te passen?
- Welke combinatie van Edge device en Cloud wordt er in deze situatie het best gebruikt?
Opstelling van de use case
De opstelling bestaat uit twee onderdelen die met elkaar communiceren: de Cloud en het Edge device.
Het model wordt op het Edge device zelf geplaatst. Dit ontvangt bepaalde sensorwaarden als input die worden schoongemaakt voordat ze aan het model worden gegeven. Zowel de schoongemaakte data als de voorspellingen van het model worden gemonitord om drift te detecteren. Wanneer er drift wordt herkend, wordt de data doorgestuurd naar de Cloud. Daar kan het model opnieuw worden getraind. Het nieuwe model kan dan op het Edge device worden geplaatst. Op de Cloud worden ook de nieuwe versies van de data en het model bijgehouden.
Software stack
Om de MLOps-principes te integreren, wordt gebruikgemaakt van tools die hiervoor beschikbaar zijn. De keuze voor deze tools is gebaseerd op gebruiksgemak en populariteit. Daarnaast zijn al deze tools open source.
De volgende tools werden gekozen:
- Prefect: Deze Python-bibliotheek creëert een overzicht van de uitgevoerde taken en bij welke stappen er eventueel fouten optreden. In deze use case wordt het gebruikt voor de flow van het hertrainen. Prefect verdeelt de code met het gebruik van decoratorfuncties in workflows en taken. Deze kunnen dan worden gemonitord op een aparte server.
- Evidently AI: Deze tool is een van de meest gebruikte tools voor data- en machine learning modelmonitoring. Evidently AI maakt rapporten van de gemonitorde zaken, die kunnen worden opgeslagen als HTML, JSON of zelfs gewoon een Python-dictionary. Het voordeel van Evidently AI ten opzichte van andere tools is dat het een Python-library is die geen nood heeft aan een connectie met de Cloud. Zo kan het op het Edge device zelf worden gebruikt.
- MLflow: Wanneer het machine learning model opnieuw wordt getraind, is het belangrijk om de verschillende versies van dit model bij te houden. Dit kan worden gedaan met MLflow, dat model versioning eenvoudig maakt met een Python-library. De verschillende versies van de modellen worden op een aparte server bijgehouden, samen met hyperparameters en metrieken. Het is ook mogelijk om deze modellen eenvoudig met anderen te delen en klaar te maken voor deployment.
- DVC: Naast het bijhouden van de verschillende versies van de modellen is het ook belangrijk om de gebruikte data bij te houden. Hiervoor wordt DVC gebruikt. Dit is een tool die bovenop GIT kan worden gebruikt om eenvoudig dataversies bij te houden.
- GitLab: Voor het bijhouden van de code en het uitvoeren van het CI/CD-proces wordt GitLab gebruikt. Dit betekent dat GitLab automatisch bepaalde processen laat lopen wanneer trainen wordt getriggerd, zoals data versioning en testen.