Настройка 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 месяцев.







