Uruchamianie potoków DVC

Wprowadzenie do wersjonowania danych z DVC

Ravi Bhadauria

Machine Learning Engineer

Podsumowanie

  • Etap przetwarzania wstępnego
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
  • Trenowanie i ewaluacja
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
Wprowadzenie do wersjonowania danych z DVC

Odtwarzanie potoku

  • Odtworzenie potoku za 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'
  • Generowany jest plik stanu dvc.lock
    • Podobnie jak plik .dvc, przechowuje skróty MD5
$ git add dvc.lock && git commit -m "first pipeline run"
Wprowadzenie do wersjonowania danych z DVC

Korzystanie z pamięci podręcznej

  • Wykorzystanie pamięci podręcznej do przyspieszenia iteracji
$ dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train_and_evaluate' with command: ...
Wprowadzenie do wersjonowania danych z DVC

Pamięć podręczna etapów w DVC

Schemat blokowy działania pamięci podręcznej etapów w DVC

Wprowadzenie do wersjonowania danych z DVC

Próbne uruchomienie potoku

  • Flaga --dry – wyświetla komendy bez uruchamiania potoku
$ dvc repro --dry
Running stage 'preprocess':
> python3 preprocess_dataset.py

Running stage 'train_and_evaluate':
> python3 train_and_evaluate.py
Wprowadzenie do wersjonowania danych z DVC

Dodatkowe argumenty

  • Uruchamianie konkretnych plików: dvc repro linear/dvc.yaml
    • Wiele dvc.yaml w jednym folderze jest niedozwolone
  • Uruchamianie konkretnych etapów: dvc repro <target_stage>
    • Uruchamia również zależności upstream
  • Wymuszone uruchomienie: dvc repro -f
  • Bez zapisywania wyników w pamięci podręcznej: dvc repro --no-commit
    • Użyć później dvc commit
Wprowadzenie do wersjonowania danych z DVC

Równoległe wykonywanie etapów

Schemat DAG równoległego wykonywania etapów w DVC

  • Równoległe uruchamianie niezależnych kroków
# Run A2 and its upstream dependencies
$ dvc repro A2
# Run B2 and its upstream dependencies
$ dvc repro B2
  • Wykorzystanie pamięci podręcznej do przyspieszenia wykonania
$ dvc repro train
Stage 'A2' didn't change, skipping
Stage 'B2' didn't change, skipping
Running stage 'train' with command: ...
Wprowadzenie do wersjonowania danych z DVC

Czas na ćwiczenia!

Wprowadzenie do wersjonowania danych z DVC

Preparing Video For Download...