DVC Pipelines : hoe je een reproduceerbare machine learning-pijplijn bouwt

DVC Pipelines : hoe je een reproduceerbare machine learning-pijplijn bouwt
2 min de lecture

PyImageSearch publiceert een tutorial over het bouwen van een reproduceerbare machine learning-pijplijn met DVC, een tool voor het versiebeheer van data en modellen die met Git werkt. Deze gids, geschreven door Vikram Singh, laat zien hoe je meerdere stappen aaneenschakelt, van data-preprocessing tot evaluatie, om ze met één commando opnieuw uit te voeren.

  • PyImageSearch laat zien hoe je met DVC een reproduceerbare machine learning-pijplijn bouwt.
  • De pijplijn splitst de Iris-dataset, traint een logistisch regressiemodel en evalueert het.
  • Een dvc.yaml-bestand beschrijft de stappen, en dvc.lock legt hun exacte status vast.
  • Met dvc repro voert een teamlid of CI-server de pijplijn opnieuw uit, en DVC rekent alleen wat is gewijzigd.

Het voorbeeld is gebaseerd op de Iris-dataset, een klassieker in het veld. Het ruwe bestand iris.csv wordt eerst gesplitst in een trainingsset en een testset, volgens een 80/20-verhouding die de klasseverhoudingen behoudt. Vervolgens wordt een logistisch regressiemodel getraind, gevolgd door een evaluatie die de nauwkeurigheid berekent en een classificatierapport produceert. De tutorial benadrukt dat het hele project slechts drie bibliotheken gebruikt: DVC 3.48.4, pandas 2.1.4 en scikit-learn 1.3.2.

Drie stappen verbonden door een configuratiebestand

Elke stap wordt beschreven in een dvc.yaml-bestand, dat het uit te voeren commando specificeert, de bestanden waar de stap van afhankelijk is en de resultaten die het produceert. De uitvoer van de ene stap dient als invoer voor de volgende. Zo leidt een wijziging in de dataset tot het opnieuw uitvoeren van de hele pijplijn, terwijl een wijziging alleen in het trainingsscript alleen de training en evaluatie opnieuw uitvoert.

Deze afhankelijkheden worden vastgelegd in een dvc.lock-bestand, dat de exacte status van de pijplijn tijdens uitvoering registreert. Volgens de auteur moet dit bestand met Git worden geversioneerd, zodat een ander teamlid, of een continue-integratieserver, de resultaten kan reproduceren met de commando’s dvc pull en vervolgens dvc repro. Wanneer er niets is veranderd, geeft DVC aan dat de stappen up-to-date zijn en voert het geen berekeningen uit.

Uitvoeringen inspecteren en vergelijken

De tutorial introduceert verschillende inspectiecommando’s. dvc dag toont de stappengrafiek als een diagram, dvc status geeft aan welke afhankelijkheden zijn gewijzigd, en dvc diff vergelijkt de uitvoer met de laatst opgeslagen versie. Voor het volgen van prestaties toont dvc metrics show de metrieken van de laatste uitvoering, en dvc metrics diff vergelijkt ze tussen verschillende commits.

In het gepresenteerde voorbeeld levert de evaluatie op 30 testmonsters een nauwkeurigheid van 0,9333 op. De auteur geeft aan dat dezelfde logica het mogelijk maakt om het effect van een wijziging in parameters of data te volgen, waarbij zowel vooruitgang als achteruitgang kan worden opgespoord.

De tutorial noemt tot slot enkele optionele uitbreidingen. Hyperparameters kunnen worden verplaatst naar een params.yaml-bestand, grafieken kunnen als uitvoer worden gevolgd, en nieuwe stappen, zoals feature engineering of hyperparameter tuning, kunnen aan de graaf worden toegevoegd zonder de andere stappen te wijzigen. DVC zorgt er dan voor dat alleen de relevante delen opnieuw worden berekend.