DVC

Lev Kovalenko

DVC modules

DVC storages

  • Amazon S3
  • Microsoft Azure Blob Storage
  • Google Cloud Storage
  • SSH
  • HDFS
  • HTTP
  • Local

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

Инициализация dvc репозитория

dvc init
git commit -m "Initialize DVC"

Добавление данных

dvc add data/data.csv
git add data/data.csv.dvc data/.gitignore
git commit -m "Add raw data"

Обновление данных

dvc commit
git commit -m "Change data"

Добавление хранилища

dvc remote add -d --project gdrive gdrive://<url>
git add .dvc/config
git commit -m "Configure remote storage"

Отправка в хранилище

dvc push

Выгрузка из хранилиища

dvc pull

Переключение между версиями

git checkout <git-reversion>
dvc checkout

CI-CD

DVC live

from dvclive import Live

with Live() as live:
    live.log_param("epochs", NUM_EPOCHS)

    for epoch in range(NUM_EPOCHS):
        train_model(...)
        metrics = evaluate_model(...)
        for metric_name, value in metrics.items():
            live.log_metric(metric_name, value)
        live.next_step()

DVC api

import dvc.api
with dvc.api.open(
    'get-started/data.csv',
    repo='https://github.com/iterative/dataset-registry'
) as f:
    # ... f is a file-like object

Pros&Cons

Pros

  • Любые данные и хранилища
  • Git like инстурмент
  • Есть live-tracking обучения
  • Переиспользуемо в прод
  • Интегрируемо с разными Фреймворками
  • Не требует изменений в коде
  • Улучшение CI-CD
  • Много документации
  • Есть свои инструменты для колоборативной работы

Cons

  • Не всегда воспринимает gitignore файлы
  • Полностью зависит от репозитория
  • Немного деревянный инструмент