Köra DVC-pipelines

Introduktion till dataversionshantering med DVC

Ravi Bhadauria

Machine Learning Engineer

Sammanfattning

  • Förbehandlingssteg
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
  • Träning och utvärdering
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
Introduktion till dataversionshantering med DVC

Återskapa en pipeline

  • Återskapa pipelinen med 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'
  • En tillståndsfil dvc.lock genereras
    • Liknar .dvc-filen – sparar MD5-hashar
$ git add dvc.lock && git commit -m "first pipeline run"
Introduktion till dataversionshantering med DVC

Använda cachade resultat

  • Använd cachade resultat för snabbare iteration
$ dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train_and_evaluate' with command: ...
Introduktion till dataversionshantering med DVC

Stegets cachelagring i DVC

Flödesschema över hur stegets cachelagring fungerar i DVC

Introduktion till dataversionshantering med DVC

Provköra en pipeline

  • Använd flaggan --dry för att bara skriva ut kommandon utan att köra pipelinen
$ dvc repro --dry
Running stage 'preprocess':
> python3 preprocess_dataset.py

Running stage 'train_and_evaluate':
> python3 train_and_evaluate.py
Introduktion till dataversionshantering med DVC

Ytterligare argument

  • Köra specifika filer: dvc repro linear/dvc.yaml
    • Flera dvc.yaml i samma mapp är inte tillåtet
  • Köra specifika steg: dvc repro <target_stage>
    • Kör även uppströmsberoenden
  • Tvinga körning av pipeline/steg: dvc repro -f
  • Spara inte utdata i cache: dvc repro --no-commit
    • Använd dvc commit senare
Introduktion till dataversionshantering med DVC

Parallell stegkörning

Schematisk bild över parallell stegkörning som DAG i DVC

  • Kör oberoende steg parallellt
# Run A2 and its upstream dependencies
$ dvc repro A2
# Run B2 and its upstream dependencies
$ dvc repro B2
  • Använd cachelagring för snabbare körning
$ dvc repro train
Stage 'A2' didn't change, skipping
Stage 'B2' didn't change, skipping
Running stage 'train' with command: ...
Introduktion till dataversionshantering med DVC

Nu kör vi en övning!

Introduktion till dataversionshantering med DVC

Preparing Video For Download...