Налаштування DVC для версіонування даних та моделей
DVC (Data Version Control) – це Git-сумісний інструмент, який додає до стандартного контролю версій управління великими файлами: датасетами вагою сотні гігабайт, навченими моделями, артефактами експериментів. Без нього команди зберігають дані у shared папках без історії змін, втрачають зв'язок між кодом та конкретною версією датасету, не можуть відтворити експеримент тримісячної давності.
Що налаштовується
Типова установка займає 1-2 дні і включає:
- ініціалізація DVC у існуючому Git-репозиторії (
dvc init) - Налаштування remote storage: S3, GCS, Azure Blob, SSH або локальний NFS
- створення
.dvc-файлів для відстеження датасетів та моделей - налаштування
.dvcignoreза аналогією з.gitignore - Конфігурація кешу для прискорення повторних операцій
Remote storage приклад для S3:
dvc remote add -d myremote s3://mybucket/dvcstore
dvc remote modify myremote endpointurl https://...
Пайплайни та відтворюваність
DVC дозволяє описувати ML-пайплайни в dvc.yaml - кожен етап (підготовка даних, навчання, оцінка) прив'язується до конкретних залежностей та вихідних файлів. При зміні вхідних даних, DVC автоматично визначає, які етапи потрібно перезапустити.
stages:
train:
cmd: python train.py
deps:
- data/processed
- src/train.py
params:
- params.yaml:
- lr
- epochs
outs:
- models/model.pkl
metrics:
- metrics.json
Інтеграція з MLflow та CI/CD
DVC добре працює спільно з MLflow: DVC версіонує артефакти, MLflow - метрики та параметри. У CI/CD (GitHub Actions, GitLab CI) додається крок dvc pull для завантаження даних та dvc repro для відтворення пайплайну.
Типовий результат застосування: команда з 5 ML-інженерів переходить від "які дані використовувалися для цієї моделі - незрозуміло" до повної відтворюваності будь-якого експерименту за останні 6 місяців.







