Spouštění DVC pipeline

Úvod do verzování dat s DVC

Ravi Bhadauria

Machine Learning Engineer

Rekapitulace

  • Fáze předzpracování
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
  • Trénování a vyhodnocení
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
Úvod do verzování dat s DVC

Reprodukce pipeline

  • Reprodukce pipeline pomocí 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'
  • Vygeneruje se stavový soubor dvc.lock
    • Podobně jako .dvc uchovává MD5 hashe
$ git add dvc.lock && git commit -m "first pipeline run"
Úvod do verzování dat s DVC

Využití mezipaměti

  • Využití mezipaměti pro urychlení iterací
$ dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train_and_evaluate' with command: ...
Úvod do verzování dat s DVC

Mezipaměť fází v DVC

Vývojový diagram fungování mezipaměti fází v DVC

Úvod do verzování dat s DVC

Zkušební spuštění pipeline

  • Příznak --dry vypíše příkazy bez spuštění pipeline
$ dvc repro --dry
Running stage 'preprocess':
> python3 preprocess_dataset.py

Running stage 'train_and_evaluate':
> python3 train_and_evaluate.py
Úvod do verzování dat s DVC

Další argumenty

  • Spuštění konkrétního souboru: dvc repro linear/dvc.yaml
    • Více souborů dvc.yaml v jedné složce není povoleno
  • Spuštění konkrétní fáze: dvc repro <target_stage>
    • Spustí také závislosti výše v řetězci
  • Vynucené spuštění: dvc repro -f
  • Bez ukládání výstupů do mezipaměti: dvc repro --no-commit
    • Použijte dvc commit později
Úvod do verzování dat s DVC

Paralelní spouštění fází

Schéma DAG pro paralelní spouštění fází v DVC

  • Nezávislé kroky spouštějte souběžně
# Run A2 and its upstream dependencies
$ dvc repro A2
# Run B2 and its upstream dependencies
$ dvc repro B2
  • Mezipaměť urychluje opakované spuštění
$ dvc repro train
Stage 'A2' didn't change, skipping
Stage 'B2' didn't change, skipping
Running stage 'train' with command: ...
Úvod do verzování dat s DVC

Pojďme si to procvičit!

Úvod do verzování dat s DVC

Preparing Video For Download...