Комплексный подход к отслеживанию ваших данных — менее 5 минут!

Введение

Инженеры-программисты в основном используют Git, потому что это хороший способ управления версиями исходного кода. С другой стороны, специалисты по машинному обучению могут легко столкнуться с его ограничениями, поскольку в большинстве проектов используются не только разные версии исходного кода, но и разные версии данных и моделей. Без правильного инструмента отслеживание того, какие данные использовались для обучения какой модели, может быстро обернуться катастрофой в долгосрочной перспективе и вызвать большое разочарование.

А вот и Data Version Control, или DVCдля краткости, который я считаю одним из лучших инструментов с открытым исходным кодом, позволяющим сократить разрыв между Git и специалистами по данным, подходя к управлению версиями данных в аналогичном подходе. путь к Гит.

Цель этой статьи — дать вам практический опыт использования DVC для создания версий больших наборов данных в хранилище BLOB-объектов Microsoft Azure.

Начать

Чтобы иметь возможность успешно выполнять все действия, вам необходимо создать учетную запись Azure и войти в свой портал.

В этом разделе мы начнем с настройки хранилища BLOB-объектов Microsoft, затем DVC и, наконец, создадим взаимодействие между ними: отправка и извлечение данных из хранилища BLOB-объектов.

Настройка хранилища BLOB-объектов Azure

Настройка BLOB-объекта Azure состоит из двух основных шагов: 1)create a storage account , 2)create a container inside that storage account, на которых будут размещаться наши данные.

  1. Создайте учетную запись хранения
  • Выберите Создать ресурс и найдите Storage account, затем нажмите кнопку Создать.

  • После предоставления всей информации для каждого раздела, от Основных, Дополнительных и т. д.  до Просмотр+создание, я получаю следующий окончательный результат конфигурации для мое хранилище. Я проигнорировал раздел тегов для простоты.

  • Когда вы будете удовлетворены результатом, просто нажмите Создать, чтобы получить следующее сообщение, указывающее на успешное развертывание вашей учетной записи хранения! 🎉

2. Создать контейнер для хранения

Вы можете получить следующий полный обзор хранилища, нажав кнопку Перейти к ресурсу. После этого выполните шаги с 1 по 4, чтобы создать контейнер.

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

Примечание. Помните, что вся информация в верхнем регистре в оранжевых прямоугольниках, потому что они будут важны при попытке подключения к хранилищу BLOB-объектов с помощью DVC.

Настроить цифровой видеоконтент

Начнем с установки DVC с помощью следующей команды pip.

pip install dvc

После завершения установки DVC выполните следующую команду, чтобы сообщить DVC, что вы рассматриваете текущую папку как папку DVC.

dvc init

Предыдущая команда генерирует вывод, аналогичный приведенному ниже изображению.

Кроме того, он создает папку .dvc для отслеживания файлов, которые мы будем добавлять в удаленное хранилище.

Взаимодействие между DVC и блогом Azure

Теперь, когда мы правильно настроили хранилище DVC и BLOB-объектов, пришло время рассмотреть данные, которые мы хотели бы отслеживать.

О данных

Я реализовал следующий скрипт, который загружает файлы .csv и .pkl из моей учетной записи Github и сохраняет их в папке data, которая быть переданы в DVC позже.

Структура репозитория проекта выглядит так:

|--- AzureDVC
|       |------- .dvc 
|       |------- data 
|       |         |---- spam_detector_model.pkl
|       |         |---- spam.csv
|       |------- download_data.py

Экспорт переменных среды

Следующим шагом является настройка переменных среды учетных данных Azure, которые будут использоваться DVC для взаимодействия с Azure.

# Environment variables & Exports
CLIENT_ID="your_client_ID"
USERNAME=“your_email”
PASSWORD=“your_password”
# Start the exports
export AZURE_CLIENT_ID= CLIENT_ID
export AZURE_USERNAME= USERNAME
export AZURE_PASSWORD= PASSWORD

После этого устанавливаем константные переменные для читаемости кода.

# Constants Variables
ACCOUNT_NAME="azuredvcdemo"
CONTAINER_URL=https://azuredvcdemo.blob.core.windows.net/dvcazurecontainer
CONTAINER_NAME=dvcazurecontainer

Затем установите связь между хранилищем BLOB-объектов и DVC.

dvc remote add -d zoumanaremote CONTAINER_URL
dvc remote modify zoumanaremote url azure://CONTAINER_NAME/
dvc remote modify zoumanaremote account_name ACCOUNT_NAME

Пришло время добавить данные, которые мы хотим хранить и отслеживать в большом двоичном объекте Azure. Это делается с помощью следующей команды.

dvc add data

Инструкция создает файл data.dvc, содержащий информацию о том, как получить доступ к исходным данным, не предоставляя никакой информации об этом. Содержимое этого data.dvc выглядит следующим образом:

outs:
- md5: a966ec281923bc3c9d7d1c40fde056b3.dir
  size: 20248421
  nfiles: 2
  path: data
  • md5 — это хеш-значение исходной папки данных, отслеживаемой с помощью DVC.
  • size — это размер файлов в папке данных.
  • nfiles — количество файлов в папке данных. В данном случае у нас есть 2, файл .csv и файл .pkl.
  • path — это путь к исходной папке.

Отправьте данные в свой контейнер с помощью следующей команды.

dvc push

На портале Azure мы видим, что изменения были выполнены, что можно наблюдать по наличию того же хеш-значения md5.

Теперь данные доступны в хранилище BLOB-объектов Azure. С помощью следующей команды вы можете, наконец, перенести его в локальный репозиторий проекта, когда вам это нужно.

dvc pull

Заключение

Поздравляем! 🎉 🍾 Вы только что узнали, как использовать DVC и хранилище BLOB-объектов Azure для мониторинга больших данных. Я надеюсь, вам понравилось читать эту статью, и что она дала вам необходимые навыки. Пожалуйста, найдите ниже дополнительные ресурсы для дальнейшего обучения.

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

Не стесняйтесь подписаться на меня в Medium, Twitter и YouTube или сказать привет в LinkedIn. Всегда приятно обсудить AI, ML, Data Science, NLP и MLOps!

Пока пока 🏃🏾‍♂️

Дополнительные ресурсы

Документация по хранилищу BLOB-объектов Azure

Устранение неполадок, связанных с несоответствием авторизации и разрешений

Документация ДВК