Выполнение пайплайнов DVC

Введение в версионирование данных с DVC

Ravi Bhadauria

Machine Learning Engineer

Повторение

  • Этап предобработки
stages:
  preprocess:
    cmd: python3 preprocess.py
    params:
      - preprocess
    deps:
    - preprocess.py
    - raw_data.csv
    outs:
    - processed_data.csv
  • Обучение и оценка
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
Введение в версионирование данных с DVC

Воспроизведение пайплайна

  • Воспроизведите пайплайн с помощью 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'
  • Генерируется файл состояния dvc.lock
    • Аналогично файлу .dvc, хранит MD5-хэши
$ git add dvc.lock && git commit -m "first pipeline run"
Введение в версионирование данных с DVC

Использование кэша

  • Использование кэша для ускорения итераций
$ dvc repro
Stage 'preprocess' didn't change, skipping
Running stage 'train_and_evaluate' with command: ...
Введение в версионирование данных с DVC

Кэширование этапов в DVC

Схема работы кэширования этапов в DVC

Введение в версионирование данных с DVC

Пробный запуск пайплайна

  • Флаг --dry выводит команды без запуска пайплайна
$ dvc repro --dry
Running stage 'preprocess':
> python3 preprocess_dataset.py

Running stage 'train_and_evaluate':
> python3 train_and_evaluate.py
Введение в версионирование данных с DVC

Дополнительные аргументы

  • Запуск конкретного файла: dvc repro linear/dvc.yaml
    • Несколько файлов dvc.yaml в одной папке не допускаются
  • Запуск конкретного этапа: dvc repro <target_stage>
    • При этом также запускаются зависимые этапы выше по цепочке
  • Принудительный запуск пайплайна/этапа: dvc repro -f
  • Без сохранения результатов в кэш: dvc repro --no-commit
    • Используйте dvc commit позднее
Введение в версионирование данных с DVC

Параллельное выполнение этапов

Схема параллельного выполнения этапов DAG в DVC

  • Запускайте независимые шаги параллельно
# Run A2 and its upstream dependencies
$ dvc repro A2
# Run B2 and its upstream dependencies
$ dvc repro B2
  • Используйте кэш для ускорения выполнения
$ dvc repro train
Stage 'A2' didn't change, skipping
Stage 'B2' didn't change, skipping
Running stage 'train' with command: ...
Введение в версионирование данных с DVC

Давайте потренируемся!

Введение в версионирование данных с DVC

Preparing Video For Download...