Tegenwoordig worden te veel machinelearningmodellen niet in productie uitgerold en blijven ze hangen in de datalabs. Net als in elk opkomend vakgebied moeten de best practices, tools, technieken en rollen die moderne datateams moeten adopteren, nog verder rijpen en standaardiseren. Dit zorgt voor frustraties bij bedrijven die op schaal waarde uit machine learning willen halen, en bij data scientists die verder willen dan experimenteren in een notebook. MLOps (Machine Learning Operations) is de afgelopen jaren ontstaan met als doel de uitroluitdagingen van datateams op te lossen.
De hint zit in de naam: zoals DevOps snelle, Agile applicatieontwikkeling vormgaf rond bedrijfsbehoeften, zo wil MLOps hetzelfde doen door de kloof te overbruggen tussen complexiteit en de uitrol van machinelearningmodellen.
Hoe pakt MLOps deze uitdagingen precies aan? In dit artikel willen we enkele concepten rond MLOps als opkomende discipline verduidelijken en kernvragen beantwoorden zoals
- Wat is MLOps en wat zijn de belangrijkste onderdelen van een succesvolle MLOps-praktijk?
- Hoe verschilt MLOps van DevOps?
- Hoe herijkt MLOps de machinelearning-workflow?
- Hoe kun je vandaag nog met MLOps aan de slag?
Wat is MLOps?
Alessya Visnjic, CEO van WhyLabs, een MLOps-startup gericht op modelmonitoring, beschreef MLOps treffend als een “set van tools, praktijken, technieken, cultuur en mindset die zorgen voor betrouwbare en schaalbare uitrol van machinelearningsystemen”.
In perspectief geplaatst bouwt MLOps voort op het bestaande vakgebied DevOps: de moderne praktijk van efficiënt schrijven, uitrollen en draaien van bedrijfsapplicaties. Het is een cross-functioneel, collaboratief en iteratief proces dat data science operationaliseert. MLOps behandelt machine learning als een engineeringdiscipline, waarbij modellen worden gezien als herbruikbare softwareartefacten die vervolgens via een herhaalbaar proces kunnen worden uitgerold.
MLOps omvat ook continue monitoring en hertraining van modellen in productie om te borgen dat ze optimaal presteren terwijl data in de tijd verandert, een fenomeen dat ook wel datadrift wordt genoemd.
Kortom, MLOps stelt datateams in staat de waarde die ze leveren op te schalen door:
- Snellere uitrol van meer modellen via geautomatiseerde processen
- Productiviteit te optimaliseren via samenwerking en hergebruik van modellen
- Risico en kosten te verlagen op modellen die nooit productie halen
- Continu te monitoren en te updaten naarmate datadrift optreedt
Teruggrijpend op Visnjic’ definitie van MLOps, vereist het bovenstaande zowel innovatie in tooling voor moderne datateams als een mindset-shift voor veel data scientists van vandaag.
Waarom is MLOps belangrijk?
We bespraken al hoe MLOps de uitroluitdagingen voor veel datateams wil oplossen. Maar wat maakt machine learning zo uniek dat het nieuwe, gespecialiseerde operationsfuncties zoals MLOps vereist?
Machinelearningtoepassingen zijn fundamenteel anders dan traditionele software. Hieronder enkele belangrijke uitdagingen waar organisaties tegenaan lopen bij het uitrollen van machinelearningsystemen naar productie.
- Eigenaarschap en samenwerking: Traditioneel creëren en ontwikkelen data scientists machinelearningmodellen, en nemen IT-teams de taak op zich om ze uit te rollen en te beheren. De samenwerking tussen deze twee teams is echter niet zo efficiënt als zou kunnen en leidt vaak tot wrijving. Zo worden datasceinceteams steeds vaker door verschillende bedrijfsonderdelen gevraagd om een groeiend aantal problemen op te lossen. Gezien de complexe aard van moderne IT-systemen besteden data scientists weinig aandacht aan de productieomgeving en bestaande IT-systemen—want dat is de verantwoordelijkheid van het IT-team. Omgekeerd focussen IT-teams vaak niet op de interne werking van de oplossingen die data scientists produceren—wat leidt tot verkeerde verwachtingen over de uitrolbaarheid van veel van deze modellen. Deze dynamiek zorgt voor wrijving en antipatronen die ten koste van alles vermeden moeten worden—waarbij datateams vervallen in het denkpatroon "laten we een model bouwen, het naar IT sturen en zij nemen het over".
- Data is bepalend voor software op basis van machine learning: Data is de levensader van machinelearningsystemen. In tegenstelling tot traditionele software, waar software-engineers een goed ontworpen proces maken dat een set inputs omzet in een set outputs, vertrouwen machinelearningsystemen op statistische methoden die rommelige, real-world data als input nemen en voorspellingen als output geven. Dit betekent dat het gedrag van machinelearningsystemen kan veranderen door wijzigingen in data. Bovendien betekent dit dat de prestaties van machinelearningmodellen evalueren observatie en analyse vereist. Tot slot betekent dit dat de machinelearning-workflow rommelig en experimenteel van aard is, en zich van nature leent voor een ander type skillset dan traditionele software-engineering.
- Complexiteit van uitrol: Machinelearningmodellen en -systemen worden steeds complexer. In tegenstelling tot traditionele software omvat het uitrollen van machinelearningmodellen het orkestreren van allerlei onderling verbonden stappen uit uiteenlopende tools. Denk aan dataverzameling, -opslag, -transformatie, feature engineering en meer. Bovendien vormen reproduceerbaarheid en versiebeheer grote uitdagingen voor datateams. Gezien het experimentele karakter van machine learning bouwen datasceinceteams veel versies van een model met verschillende versies van dezelfde dataset. Traditioneel versiebeheer moet dus robuuster worden.
MLOps vs DevOps—wat is het verschil?
In de vorige sectie hebben we uiteengezet waarom machine learning een gespecialiseerde operationsfunctie nodig heeft. Maar hoe verschilt MLOps in de praktijk van DevOps?
DevOps is een samentrekking van Development (Dev) en Operations (Ops). Het combineert twee essentiële functies van de IT-afdeling: applicatieontwikkeling en systeemengineering. DevOps probeert ontwikkelcycli te verkorten—en de output van software-engineeringteams te versnellen. Dat doet het door automatisering, vernieuwde processen en werkmethoden voor developmentteams te introduceren. Breder gezien brengt DevOps twee principes in het softwareontwikkelproces:
- Continuous Integration (CI)—het proces van frequente, kleine iteraties in versiebeheerde repositories. Dit verlicht uitrolproblemen omdat code vaak naar productie wordt gebracht.
- Continuous Delivery (CD)—het proces van het automatiseren van de stappen die nodig zijn om applicaties en software naar productieomgevingen te leveren.
Gezien het unieke karakter van machine learning, zijn dit enkele praktische manieren waarop MLOps verschilt van DevOps:
- Continuous Integration wordt uitgebreid van het testen en valideren van code naar ook het testen en valideren van modellen en data
- Continuous Delivery wordt uitgebreid van het automatiseren van stappen om applicaties naar productie te brengen naar het automatisch leveren van datapijplijnen die een machinelearningvoorspelling triggeren
- Continuous Training wordt geïntroduceerd—uniek voor machine learning—waarbij modellen automatisch worden hertraind voor uitrol
- Continuous Monitoring wordt geïntroduceerd—dat productiegegevens monitort op kwaliteitsbreuken, modelprestaties en businessmetrics die aan het model zijn gekoppeld
De MLOps-workflow
De data science-workflow heruitvinden voor MLOps
Gezien de extra complexiteit van het uitrollen van machinelearningmodellen naar productie—hoe kunnen datateams MLOps opnemen in hun data science-workflows? In deze sectie introduceren we een vereenvoudigde stapsgewijze aanpak in een MLOps-proces:
- Bouwen: Zodra modellen zijn gemaakt, worden ze doorgaans geplaatst in een auditbare repository onder versiebeheer om hergebruik binnen het bedrijf te ondersteunen.
- Evaluatie: De kwaliteit van de modelvoorspellingen wordt in deze fase gekwantificeerd door de prestaties van het nieuw getrainde model te meten op een nieuwe en onafhankelijke dataset.
- Productiegereed maken: Exporteer, rol uit en integreer het model of de pijplijn in productiesystemen en -applicaties.
- Testen: continu testen is belangrijk voor ML-gebaseerde applicaties, met de focus op het automatisch hertrainen en serven van modellen.
- Uitrol: Continue monitoring is vereist om optimale prestaties te waarborgen. Het model kan worden hertraind of vervangen door een nieuw model naarmate data verandert.
- Monitoring en observability: Veel bedrijven ondervinden uitdagingen bij het overzetten van machinelearningmodellen naar productieomgevingen.
Datarollen heruitvinden voor MLOps
In kleinere data science-teams kan één persoon meerdere rollen vervullen en verschillende petten dragen. In grotere, meer procesmatige datateams vind je echter uiteenlopende rollen en vaardigheden die verschillende onderdelen van de MLOps-workflow beheersen. Deze rollen zijn als volgt te zien:
- Data Scientist: Vaak gezien als de hoofdspeler in elk MLOps-team, zijn data scientists experts die de data van het bedrijf inzetten om waarde te genereren. Hun rol is deze data te begrijpen, te structureren en te interpreteren om inzichten te leveren in de vorm van voorspellende modellen. Ze creëren, testen en evalueren machinelearningmodellen. In sommige bedrijven rollen ze de modellen ook uit en monitoren ze de prestaties zodra die in productie staan.
- Data Engineer: Data engineers zijn verantwoordelijk voor het creëren en onderhouden van de omgeving die bijna elke andere functie in het datateam in staat stelt te opereren. Ze ontwikkelen, bouwen, onderhouden en testen architecturen, zoals databases en verwerkende systemen. Simpel gezegd faciliteren ze de stroom van data van extractie, via transformatie, naar levering.
- Software Engineer: In een MLOps-proces zijn software-engineers verantwoordelijk voor het integreren van machinelearningmodellen in de applicaties en systemen van het bedrijf. Ze zorgen er ook voor dat machinelearningmodellen naadloos samenwerken met niet-ML-gebaseerde applicaties binnen het bedrijf.
- Machine Learning Engineer: De machine learning engineer staat op het kruispunt van data science en data engineering. De rol van de machine learning engineer is het optimaliseren en in productie brengen van de door de data scientist ontwikkelde modellen binnen de infrastructuur die de data engineer heeft voorbereid.
Aan de slag met MLOps
Zoals in dit artikel besproken, is MLOps nog steeds een pril vakgebied, waarbij veel tools, best practices en methodologieën vandaag de dag nog ontstaan. Deze sectie is gewijd aan verschillende manieren om met MLOps te beginnen, met tools om mee te experimenteren en leermaterialen waar je direct mee aan de slag kunt.
Tools om te overwegen voor MLOps
-
Kubeflow: Kubeflow is een suite van tools voor het draaien van machinelearning-workflows op Kubernetes-clusters. Het doel van Kubeflow is om de beste open-source machinelearningoplossingen op een eenvoudige, draagbare en schaalbare manier op een Kubernetes-cluster te laten draaien. Oorspronkelijk was Kubeflow de open-source implementatie van TensorFlow Extended (TFX), een end-to-end platform voor het uitrollen van machinelearningpijplijnen in productie. Kubeflow maakte het zo eenvoudiger om TensorFlow-jobs op Kubernetes uit te voerenMLFlow: MLflow is een tool voor het industrialiseren van het end-to-end ontwikkelproces van machinelearningprojecten. De ambitie is om de ontwikkeling van machinelearningprojecten in bedrijven te vereenvoudigen door het monitoren, reproduceren, beheren en uitrollen van modellen te vergemakkelijken.
-
Data Version Control (DVC): DVC (Data Version Control) is een Python-pakket dat het beheer van je data science-projecten eenvoudiger maakt. Deze tool is een uitbreiding op Git voor machine learning, zoals aangegeven door hoofdbijdrager Dmitry Petrov in deze presentatie. DVC is zowel vergelijkbaar met als complementair aan Git.
-
Pachyderm: Pachyderm is, net als DVC, een versiebeheertool voor machine learning en data science. Bovendien is het gebaseerd op Docker en Kubernetes, wat helpt om machinelearningprojecten op elk cloudplatform te draaien en uit te rollen. Daarnaast zorgt Pachyderm ervoor dat alle data die in een machinelearningmodel wordt ingevoerd, versieerbaar en traceerbaar is.
Leermaterialen voor MLOps
Machine Learning Fundamentals
- Machine Learning For Absolute Beginners: A Plain English Introduction (Second Edition) door Oliver Theobald. Zoals de titel aangeeft, biedt dit boek beginners een complete introductie tot machine learning. En met beginners bedoelen we echte nieuwkomers. Je hebt geen basiskennis van wiskunde of programmeerervaring nodig. Dit is een basisintroductie tot machine learning voor iedereen die in dit onderwerp geïnteresseerd is. De gebruikte taal is vrij eenvoudig om lezers niet te laten verdrinken in onbegrijpelijk jargon. De verschillende algoritmen worden begeleid door duidelijke en makkelijk te volgen uitleg en visuele voorbeelden. Dit boek presenteert ook enkele eenvoudige programmeerbegrippen om machine learning beter te kunnen plaatsen.
- Machine Learning For Dummies door John Paul Mueller en Luca Massaron. Voor beginners is de "for dummies"-reeks ook een goed startpunt. Dit boek introduceert de basisconcepten en -theorieën van machine learning en legt uit hoe je die in de echte wereld toepast. Het introduceert de essentiële programmeertalen en tools en laat zien hoe je een relatief esoterisch concept omzet in een praktisch hulpmiddel. Het bespreekt de programmeertalen Python en R, die worden gebruikt om machines patronen te laten herkennen en resultaten te analyseren.
- Fundamentals of Machine Learning for Predictive Data Analytics: Algorithms, Worked Examples, and Case Studies door John D. Kelleher, Brian Mac Namee en Aoife D'Arcy. Dit boek behandelt alle fundamentele noties van machine learning en presenteert zowel het theoretische aspect als de praktische toepassingen. Het biedt concrete voorbeelden en casestudy's om de kennis beter over te brengen. Het is aan te raden om basiskennis van analytics te hebben om deze fundamentele noties beter te begrijpen. Dit boek presenteert de verschillende benaderingen van machine learning en illustreert elk leerconcept met algoritmen en modellen, plus concrete voorbeelden om deze concepten in de praktijk te brengen.
- Machine Learning for Hackers door Drew Conway en John Myles White. De term "hackers" verwijst hier naar programmeurs die code schrijven voor specifieke doelen en praktische projecten. Dit boek is bedoeld voor lezers zonder wiskundige achtergrond, maar die wel kunnen programmeren en met talen overweg kunnen. Machine learning is typisch gebaseerd op wiskundige concepten, omdat het algoritmen gebruikt om data te analyseren, maar veel ervaren coders hebben doorgaans geen sterk ontwikkelde wiskundige vaardigheden. In plaats van in te gaan op wiskundige theorieën, presenteert dit boek toepassingen uit de echte wereld op basis van praktische studies. Het behandelt klassieke ML-problemen en legt uit hoe je die oplost met de R-programmeertaal. Of het nu gaat om het vergelijken van senatoren op basis van de stemmen die ze kregen, het maken van een aanbevelingssysteem voor mensen om te volgen op Twitter, of het opsporen van spam op basis van de inhoud, de mogelijkheden van machine learning zijn eindeloos.
- DataCamp’s Machine Learning Scientist met Python of R Data Scientist Track. Of je nu R- of Python-gebruiker bent, deze twee tracks behandelen alle ins en outs van machine learning. Elke track bevat tientallen interactieve cursussen, van de basis van ML tot meer gevorderde onderwerpen zoals deep learning en feature engineering.
Data Engineering Fundamentals
- Andreas Kretz' Data Engineering Cookbook. Er is veel verwarring over hoe je data engineer wordt. Dit is een eBook van Andreas Kretz met uitgebreide casestudy's, code, podcasts, interviews, casestudy's en meer. Ik zie het als een compleet pakket voor iedereen die data engineer wil worden. En de kers op de taart? Dit ebook is gratis!!! Ja, je kunt er meteen mee aan de slag.
- DW 2.0 - The Architecture for the Next Generation of Data Warehousing door de vader van datawarehousing WH Inmon. Dit boek beschrijft de toekomst van datawarehousing die technologisch vandaag al mogelijk is, zowel architectonisch als technologisch. Het is zorgvuldig gestructureerd en behandelt de meeste onderwerpen rond data-architectuur en de onderliggende uitdagingen. Hoe je het bestaande systeem kunt benutten en er een datawarehouse omheen kunt bouwen, en best practices om de investering op een zeer praktische manier te onderbouwen.
- Agile data warehouse design: collaborative dimensional modeling, from blackboard to star schema door Laurent Corr. Dit is een geweldig boek. Lawrence Corr biedt een uitgebreide stapsgewijze gids voor het vastleggen van BI- en datawarehousingvereisten en deze om te zetten in high-performance modellen met een techniek die model storming heet. Daarnaast vind je het concept BEAM, een agile benadering van dimensioneel modelleren om de communicatie tussen datawarehousedesigners en BI-stakeholders te verbeteren.
- DataCamp’s Data Engineering with Python Career Track. Deze track biedt tientallen cursussen die de ins en outs behandelen van het bouwen van effectieve data-architecturen, het stroomlijnen van data-ingestie, het bouwen van pijplijnen en meer.
Duik in MLOps
- MLOps Fundamentals Skill Track. Deze skill track behandelt de volledige levenscyclus van een machinelearningapplicatie, van het verzamelen van businessvereisten tot de ontwerp-, ontwikkel-, uitrol-, operationele en onderhoudsfase
- MLOps: Operationalizing Data Science, door David Sweenor, Dev Kannabiran, Thomas Hill, Steven Hillion, Dan Rope en Michael O'Connell. Deze 6 experts in data-analyse bieden een vierstappenaanpak voor het creëren van machinelearninggebaseerde applicaties die de productiefase halen.
- Building Machine Learning Powered Applications door Emmanuel Ameisen. In dit boek leert Emmanuel Ameisen je hoe je een machinelearninggedreven applicatie bouwt van initieel idee tot uitgerold product.
- Building Machine Learning Pipelines door Hannes Hapke, Catherine Nelson. In dit boek laten Hannes Hapke en Catherine Nelson stap voor stap zien hoe je een machinelearningpijplijn automatiseert met het TensorFlow-ecosysteem.
- Practical MLOps door Noah Gift, Alfredo Deza. Door het verschil tussen DevOps en MLOps te belichten, laat dit boek zien waar MLOps over gaat en hoe het zorgt voor het operationaliseren van je machinelearningmodellen. Dit boek presenteert tools en methoden om MLOps-projecten te implementeren in AWS, Microsoft Azure en Google Cloud. Zorg er ook voor dat je Noah’s live training over Practical MLOps op DataCamp bekijkt.
- Introducing MLOps door Mark Treveil & Dataiku Team. De auteurs van dit boek bieden een diepgaand begrip van de kernconcepten van MLOps, zodat data scienceteams machinelearningmodellen kunnen operationaliseren om bedrijfsverandering te stimuleren en modellen in de tijd te verbeteren.
- Google Cloud biedt artikelen, blogs en papers die je meenemen door de best practices en processen om efficiënte machinelearningmodellen te bouwen. In het geselecteerde artikel leer je MLOps-processen en hoe je overstapt van handmatige naar geautomatiseerde processen.
- Nvidia’s blog bevat artikelen die je meenemen door de MLOps-levenscyclus en enkele succesverhalen uit het veld laten zien.
- Ml-ops.org is gemaakt door Dr. Larysa Visengeriyeva, Anja Kammer, Isabel Bär, Alexander Kniesz en Michael Plöd. Deze website wil alle noodzakelijke informatie over MLOps bijeenbrengen en elke stap van het end-to-end proces tonen.
We hopen dat deze set bronnen je op weg helpt in je MLOps-leerreis. Voor meer artikelen en bronnen over MLOps kun je ook de volgende artikelen bekijken:
