Зачем нужен контроль версий данных?

При разработке программного обеспечения контроль версий необходим для управления различными версиями кода, чтобы инженеры могли отслеживать изменения, а также для целей воспроизведения. GitHub — один из самых распространенных инструментов, и он хорош для текстовых файлов, в которых хранится большая часть программного кода. Управление версиями для машинного обучения (ML) похоже на разработку программного обеспечения, но в некотором смысле сложнее, потому что нам нужно хранить не только модели, но также данные и конвейер (модель + данные). Контроль версий машинного обучения особенно важен для строго регулируемых отраслей, таких как здравоохранение или страхование, поскольку воспроизводимость и соответствие модели являются требованиями для систем машинного обучения в этих отраслях.

Данные могут быть разных типов и форматов, таких как числовые, текстовые или видео, которые могут быть в гораздо больших объемах. Кроме того, прежде чем данные можно будет использовать для обучения, их необходимо очистить, отформатировать и спроектировать. Поэтому нам приходится управлять версиями данных, используемых для обучения, проверки и тестирования модели при разработке машинного обучения. Кроме того, мы также должны отслеживать, как данные сочетаются с версиями модели. Вот когда трубопроводы вступают в игру. Конвейеры содержат версии кода, версии данных и библиотеки, системные требования или конфигурацию, необходимые для воспроизведения модели.

Что такое контроль версий данных (DVC)

Управление версиями данных (DVC) — это платформа машинного обучения с открытым исходным кодом. Он также известен как Git для машинного обучения. DVC фокусируется на версиях данных, но также может отслеживать версии конвейера и эксперименты. DVC может справиться с управлением версиями и организацией больших объемов данных и хранить их хорошо организованным и доступным способом. С помощью DVC нам не нужно перестраивать предыдущую версию моделей или переделывать часть предварительной обработки данных, чтобы получить те же результаты. Мы можем поделиться моделями машинного обучения, используя облачное хранилище. Это облегчает членам команды проведение экспериментов и оптимизацию модели с общими данными.

Начать работу с DVC

Подробную инструкцию по установке смотрите в ссылке. Я установил свой с conda, чтобы использовать DVC как библиотеку Python.

$ conda install -c conda-forge mamba
$ mamba install -c conda-forge dvc

Команды DVC аналогичны Git. В этом посте я представлю некоторые важные команды, используемые для инициализации, управления и совместного использования проектов DVC.

Основные команды:

1. инициализация

Инициализация DVC зависит от Git. Нам нужно сначала инициализировать Git и перед инициализацией DVC.

# create a new folder for the project
  mkdir DVC_test
# go to the project folder
  cd DVC_test
// creating a Git repository
  git init
// initialize it by running dvc init
  dvc init

После инициализации DVC мы видим каталог с именем .dvc в папке проекта для хранения файла конфигурации, расположения кэша и других внутренних каталогов.

2. получить URL-адрес

Команда get-url используется для загрузки файла или каталога с поддерживаемого URL-адреса (например, s3://, ssh:// и других протоколов) в локальную файловую систему.

$ dvc get-url https://github.com/curran/data/blob/gh-pages/Rdatasets/csv/COUNT/fishing.csv

3. добавить

Чтобы начать отслеживать файл или каталог, используйте dvc add.

dvc add path.csv

DVC хранит информацию о добавленном файле в специальном .dvc файле с именем. Это небольшой текстовый файл с удобочитаемым форматом. Этот файл метаданных является заполнителем для исходных данных, и его можно легко изменить как исходный код с помощью Git.

После добавления файлов мы можем ввести git add — все в командной строке, чтобы добавить файлы или изменения в репозиторий и ввести статус git, чтобы увидеть изменения, которые нужно зафиксировать.

git add --all
git status 

4. статус

Мы можем использовать команду Status для отслеживания изменений в конвейерах проекта и изменений файлов либо между кешем и рабочей областью, либо между кешем и удаленным хранилищем.

5. удаленный

Удаленные устройства DVC обеспечивают место для хранения и обмена данными/моделями с командой или для создания копии в удаленном хранилище.

dvc remote add -d myremote s3://path.csv

Продолжение…