DVC-pipelines uitvoeren

Introductie tot dataversiebeheer met DVC

Ravi Bhadauria

Machine Learning Engineer

Samenvatting

  • Preprocessing-stage
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
  • Trainen en evalueren
stages:
  train_and_evaluate:
    cmd: python3 train_and_evaluate.py
    params:
      - train_and_evaluate
    deps:
    - processed_data.csv
    - train_and_evaluate.py
    outs:
    - plots.png
    - metrics.json
Introductie tot dataversiebeheer met DVC

Een pipeline reproduceren

  • Reproduceer de pipeline met dvc repro
$ dvc repro
Running stage 'preprocess':                                      
> python preprocess.py

Running stage 'train_and_evaluate': > python train_and_evaluate.py Updating lock file 'dvc.lock'
  • Er wordt een statusbestand dvc.lock gegenereerd
    • Vergelijkbaar met .dvc, bevat MD5-hashes
$ git add dvc.lock && git commit -m "first pipeline run"
Introductie tot dataversiebeheer met DVC

Cache-resultaten gebruiken

  • Cache-resultaten gebruiken om sneller te itereren
$ dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train_and_evaluate' with command: ...
Introductie tot dataversiebeheer met DVC

Stage-caching in DVC

Stroomschema van hoe stage-caching werkt in DVC

Introductie tot dataversiebeheer met DVC

Pipeline droogdraaien

  • Gebruik de vlag --dry om alleen commando's te tonen zonder de pipeline te draaien
$ dvc repro --dry
Running stage 'preprocess':
> python3 preprocess_dataset.py

Running stage 'train_and_evaluate':
> python3 train_and_evaluate.py
Introductie tot dataversiebeheer met DVC

Aanvullende argumenten

  • Specifieke bestanden draaien: dvc repro linear/dvc.yaml
    • Meerdere dvc.yaml-bestanden in één map zijn niet toegestaan
  • Specifieke stages draaien: dvc repro <target_stage>
    • Dit draait ook upstream afhankelijkheden
  • Pipeline/stage forceren: dvc repro -f
  • Uitvoer niet in cache opslaan: dvc repro --no-commit
    • Gebruik later dvc commit
Introductie tot dataversiebeheer met DVC

Parallelle stage-uitvoering

Schematische weergave van parallelle stage-uitvoering (DAG) in DVC

  • Onafhankelijke stappen gelijktijdig draaien
# Draai A2 en z'n upstream afhankelijkheden
$ dvc repro A2
# Draai B2 en z'n upstream afhankelijkheden
$ dvc repro B2
  • Gebruik caching om te versnellen
$ dvc repro train
Stage 'A2' didn't change, skipping
Stage 'B2' didn't change, skipping
Running stage 'train' with command: ...
Introductie tot dataversiebeheer met DVC

Laten we oefenen!

Introductie tot dataversiebeheer met DVC

Preparing Video For Download...