# ML-pipelines bouwen met Vertex AI Pipelines [[TOC]] Een machine-learning-project is zelden een enkele stap. Je bereidt data voor, traint een model, evalueert het en zet het live. Doe je dat elke keer met de hand, dan is het foutgevoelig en moeilijk te herhalen. Vertex AI Pipelines giet die stappen in een vast proces dat je met een druk op de knop draait. Een pipeline is in feite een recept. Het beschrijft welke stappen er zijn, in welke volgorde ze lopen en hoe de uitkomst van de ene stap de invoer van de volgende wordt. Eenmaal gebouwd, draai je hem telkens opnieuw met dezelfde betrouwbaarheid, of het nu wekelijks of bij elke nieuwe dataset is. ## Waarom pipelines lonen Het handmatig doorlopen van ML-stappen werkt zolang je experimenteert. Maar zodra een model in productie moet blijven werken, wil je het kunnen hertrainen, evalueren en uitrollen zonder telkens alles handmatig te herhalen. Een pipeline maakt dat proces betrouwbaar en herhaalbaar. Bovendien legt een pipeline vast hoe een model tot stand kwam. Elke run bewaart welke data, welke code en welke instellingen zijn gebruikt. Dat is goud waard voor controle, voor het reproduceren van resultaten en voor het uitleggen van beslissingen. :::info title="Wat is een component?" Een pipeline bestaat uit componenten: kleine herbruikbare bouwstenen die elk een stap uitvoeren. Door componenten te koppelen bouw je het hele proces, en losse componenten kun je in meerdere pipelines hergebruiken. ::: ## De stappen van een typische pipeline Een gangbare pipeline begint met het ophalen en voorbereiden van data. Daarna volgt het trainen van een model, gevolgd door een evaluatiestap die meet of het model goed genoeg is. Pas als het model de toets doorstaat, volgt deployment. Die evaluatiestap is cruciaal. Je wilt niet automatisch een slechter model uitrollen dan je vorige. Door in de pipeline een drempel in te bouwen, gaat een nieuw model alleen live als het aantoonbaar goed genoeg presteert. De volgorde van een typische pipeline ziet er zo uit: 1. Data ophalen 2. Data voorbereiden 3. Model trainen 4. Model evalueren 5. Drempel gehaald? Zo ja, ga door naar de laatste stap 6. Model deployen ## Een pipeline bouwen Je bouwt een pipeline door elke stap als component te definieren. Een component krijgt invoer, doet iets en levert uitvoer. Vervolgens koppel je de componenten in de juiste volgorde, waarbij de uitvoer van de ene stap de invoer van de volgende voedt. In de praktijk schrijf je dit met de Kubeflow Pipelines SDK (KFP, versie 2 of nieuwer). Je kunt zelf componenten maken of kant-en-klare bouwstenen gebruiken uit de Google Cloud Pipeline Components. Daarna compileer je de pipeline en start je een run op Vertex AI met de Python-client. Eenmaal gedefinieerd, draai je de pipeline op de beheerde infrastructuur van Vertex AI. Het platform regelt de uitvoering, bewaart de tussenresultaten en toont je in een overzicht hoe elke stap is verlopen. :::howto title="Zo bouw je een pipeline" 1. Definieer elke stap als een herbruikbaar component met de **KFP-SDK**, met duidelijke invoer en uitvoer. 2. Koppel de componenten in de gewenste volgorde tot een pipeline. 3. Bouw een evaluatiestap met een drempel in voordat je deployt. 4. Compileer de pipeline en test componenten eerst lokaal voordat je een run start. 5. Start de run op Vertex AI en volg elke stap in het overzicht. 6. Bekijk de bewaarde resultaten en artefacten per run. 7. Plan de pipeline in voor automatische herhaling. ::: ## Reproduceerbaarheid en herhaling Een groot voordeel van pipelines is dat ze elke run vastleggen. Je ziet welke versie van de data en de code is gebruikt en welke resultaten dat opleverde. Wil je een eerder resultaat reproduceren, dan draai je dezelfde pipeline met dezelfde invoer opnieuw. Je kunt pipelines ook automatisch laten starten: bij nieuwe data, op een vast tijdstip via een schema, of na een gebeurtenis in je systeem. Zo blijft je model actueel zonder dat iemand er telkens naar hoeft om te kijken. :::tip title="Houd componenten klein" Bouw je componenten klein en met een duidelijke taak. Een component dat te veel tegelijk doet, is moeilijk te hergebruiken en te testen. Kleine, scherp afgebakende stappen maken je pipelines flexibel en betrouwbaar. ::: ## Valkuilen Een veelgemaakte fout is geen evaluatie inbouwen. De pipeline traint en deployt dan blind, ook als het nieuwe model slechter is. Bouw altijd een meetpunt in dat een slecht model tegenhoudt voordat het live gaat. Een tweede valkuil is alles in een gigantisch component proppen. Dat lijkt sneller maar maakt de pipeline ondoorzichtig en moeilijk te onderhouden. Splits het werk in logische stappen die elk apart te begrijpen en te testen zijn. :::warn title="Nooit blind deployen" Laat een pipeline nooit automatisch een model deployen zonder evaluatiedrempel. Een onbewaakte automatische uitrol kan een verslechterd model in productie zetten zonder dat iemand het merkt, totdat gebruikers klagen. ::: ## Naar productie In productie worden pipelines de ruggengraat van je ML-werk. Ze hertrainen modellen op verse data, evalueren ze eerlijk en rollen alleen verbeteringen uit. Doordat alles is vastgelegd, kun je altijd terugkijken hoe een productiemodel tot stand kwam. Begin eenvoudig. Bouw eerst een pipeline met de kernstappen en breid die uit naarmate je proces volwassener wordt. Een werkende eenvoudige pipeline is meer waard dan een ambitieuze die nooit af komt. :::faq ### Wat is een component in een pipeline? Een herbruikbare bouwsteen die een stap uitvoert met duidelijke invoer en uitvoer. Je koppelt componenten tot een volledige pipeline. ### Met welke SDK bouw je een Vertex AI pipeline? Met de Kubeflow Pipelines SDK (KFP), versie 2 of nieuwer. Je kunt zelf componenten schrijven of kant-en-klare bouwstenen uit de Google Cloud Pipeline Components gebruiken. ### Waarom een evaluatiestap inbouwen? Om te voorkomen dat een slechter model automatisch live gaat. De drempel laat alleen modellen door die goed genoeg presteren. ### Kan een pipeline automatisch starten? Ja, op een vast tijdstip via een schema, bij nieuwe data of na een gebeurtenis, zodat je model actueel blijft zonder handwerk. ### Hoe houd ik resultaten reproduceerbaar? Pipelines leggen per run de gebruikte data, code en instellingen vast, zodat je een resultaat later exact kunt herhalen. ### Kan ik componenten lokaal testen? Ja, met lokale uitvoering van de KFP-SDK roep je componentfuncties direct aan, bijvoorbeeld in een notebook, zodat je ze controleert voordat je een dure cloud-run start. ::: Vertex AI Pipelines verandert losse, foutgevoelige ML-stappen in een betrouwbaar, herhaalbaar proces. Bouw klein, bewaak met een evaluatiedrempel en automatiseer zodra je proces staat.