Введение
DVC (Data Version Control) – инструмент с открытым кодом для версионирования данных, моделей и ML-пайплайнов. Разработан как надстройка над Git, решающая его ключевое ограничение: Git плохо работает с большими бинарными файлами (датасеты объёмом GB–TB, веса нейросетей). DVC хранит в Git только небольшие файлы-указатели (.dvc-файлы) с хэшами данных, а сами файлы – в удалённом хранилище (S3, Google Cloud Storage, Azure Blob, HDFS, SSH).
История и контекст
DVC создала компания Iterative (основана Дмитрием Петровым) и выпустила в open source в 2017 году. Проект возник из необходимости решить проблему воспроизводимости ML-экспериментов: без версионирования данных эксперимент нельзя точно воспроизвести, даже если код зафиксирован в Git. DVC стал одним из первых и наиболее популярных инструментов MLOps-стека. Позже Iterative расширила экосистему: CML (Continuous Machine Learning) для CI/CD в ML и VS Code Extension для DVC.
Как это работает
Рабочий процесс DVC:
dvc init– инициализация DVC-репозитория в Git-репозитории.dvc add data/train.csv– добавление файла в DVC: создаётсяdata/train.csv.dvc(хэш + путь), оригинальный файл добавляется в.gitignore.dvc remote add origin s3://bucket/path– настройка удалённого хранилища.dvc push/dvc pull– синхронизация данных между локальной машиной и удалённым хранилищем.- DVC Pipelines – описание цепочки шагов (dvc.yaml): каждый шаг имеет зависимости, команду и выходы.
dvc reproперезапускает только изменившиеся шаги – как Makefile для ML. - dvc experiments – управление ML-экспериментами через Git-ветки с автоматическим логированием метрик.
Где применяется
- ML-команды с Git-workflow – версионирование датасетов и моделей в привычном Git-окружении.
- Воспроизводимость исследований – фиксация точного состояния данных и пайплайна для reproducible ML.
- CI/CD для ML – автоматический запуск пайплайнов при изменении данных или кода в CI-системе.
- Совместная работа – разные члены команды работают с одними данными через pull/push без дублирования.
- Аудит и compliance – точная фиксация того, на каких данных обучена конкретная версия модели.
Преимущества и ограничения
Преимущества: нативная интеграция с Git – привычный workflow для разработчиков; поддержка множества хранилищ (S3, GCS, Azure, SSH, local); бесплатный open source; легковесный (не требует серверной инфраструктуры); DVC Pipelines обеспечивают кэширование шагов.
Ограничения: требует дисциплины: нужно явно трекать все датасеты командой dvc add; при больших числах файлов (миллионы) производительность хэширования снижается; нет встроенного UI для сравнения экспериментов (нужен MLflow или CML).
Связь с другими понятиями
DVC решает проблему версионирования данных – основной компонент для Feature Store (версионирование признаков). MLflow дополняет DVC: MLflow трекает метрики и параметры экспериментов, DVC – данные и пайплайны. Датасет – основной объект версионирования в DVC. Разметка данных – предшествующий этап: размеченный датасет фиксируется в DVC. KubeFlow может использовать DVC для управления данными в рамках оркестрированных пайплайнов.