Виконання конвеєрів 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

  • Виконуйте незалежні кроки паралельно
# Запустити A2 і його залежності вище за потоком
$ dvc repro A2
# Запустити B2 і його залежності вище за потоком
$ 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...