Если вы изучаете машинное обучение, только начинаете свой профессиональный путь в этой области или имеете некоторый опыт за плечами, одна из проблем, с которой вы можете столкнуться, заключается в том, как отслеживать ваши данные, эксперименты и другие артефакты. К счастью, у этой проблемы есть решение: DVC (Контроль версий данных), инструмент с открытым исходным кодом, разработанный для удобства разработчиков. С DVC вам не нужно будет вносить какие-либо изменения в свой код, кроме копирования/вставки, чтобы использовать его. Все, что вам нужно сделать, это установить и начать использовать его — это так просто.

Выводы из этого короткого блога

  • Потребность в DVC как инструменте для отслеживания и управления версиями данных, экспериментов и других артефактов в проектах машинного обучения.
  • Общие проблемы, с которыми сталкиваются разработчики машинного обучения, и способы, которыми DVC стремится их решить
  • Общий обзор того, как выглядит типичный рабочий процесс ML
  • Предпосылки для следования остальной части серии блогов включают знание команд Github, предварительную обработку данных и обучение модели.

Рабочий процесс машинного обучения

Чтобы понять контекст обсуждения рабочего процесса разработки машинного обучения, важно понимать, что разработка проекта машинного обучения — это не разовая задача. Наоборот, это повторяющийся процесс, который включает в себя перемещение между различными видами деятельности. Типичный рабочий процесс разработки машинного обучения можно условно разделить на следующие пять этапов:

  • Управление данными и анализ
  • Эксперимент
  • Разработка и тестирование решения
  • Развертывание и обслуживание
  • Мониторинг и обслуживание

Для каждого этапа требуется свой набор инструментов и методологий, и мы обсудим их в следующих блогах.

Общие проблемы, с которыми приходится сталкиваться во время совместной работы над проектом машинного обучения

Совместная работа над проектами машинного обучения может сопровождаться собственным набором проблем, в том числе:

  • Сложность обмена большими наборами данных между товарищами по команде

  • Дублирование работы из-за отсутствия видимости прогресса других членов команды

  • Медленные обновления и отсутствие информации о последнем статусе проекта

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

  • Сложность отслеживания и сравнения метрик модели

Это всего лишь несколько примеров типов проблем, с которыми вы можете столкнуться при работе над проектами машинного обучения в команде. Однако многие из этих проблем можно решить, обеспечив воспроизводимость ваших проектов для всех участников. Воспроизводимость гарантирует, что артефакты, созданные в ходе экспериментов, такие как модели и наборы данных, можно будет использовать на протяжении всего рабочего процесса разработки машинного обучения.

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

  • Контроль зависимости от среды
  • Контроль версий кода
  • Контроль над параметрами запуска
  • Автоматизированные трубопроводы
  • Контроль версии артефакта
  • Отслеживание результатов эксперимента
  • Автоматизированная CI/CD и MLOps

В этой серии блогов мы будем рассматривать эти пункты в качестве контрольного списка, чтобы помочь вам преодолеть общие проблемы совместной работы над проектами машинного обучения.

Есть ли действительно необходимость в DVC?

Как мы все знаем, Jupyter Notebooks и Google Colab — популярный выбор для экспериментов и разработки моделей машинного обучения. Однако по мере роста сложности проектов, увеличения длины кода и количества экспериментов становится все труднее поддерживать порядок. Кроме того, Jupyter Notebooks — не лучший инструмент для управления версиями кода. Для решения этих задач нам нужна система, которая может:

  • Организуйте код в повторно используемые единицы/код многократного использования
  • Используйте Git для контроля версий
  • Сделайте зависимости и требования явными

Предпосылки

Прежде чем погрузиться в эту серию блогов, важно иметь общее представление о командах Github, таких как git add, git commit, git push, git fetch, git pull, git checkout, git merge и git rebase. Кроме того, наличие основ предварительной обработки данных, обучения моделей и сохранения моделей будет полезно для понимания содержания, освещаемого в этих блогах.

Ссылки на блог

Следите за обновлениями нашей предстоящей серии блогов, в которых мы будем обсуждать важные темы ML/Data Science, такие как:

  • Рекомендации по структурированию рабочего каталога (опубликовано)


  • Пошаговое руководство по установке DVC


  • Как подключить DVC к удаленным хранилищам, таким как GCP Bucket, AWS S3 и даже Google Drive, для хранения и версии ваших данных




  • Советы и рекомендации по обмену артефактами между членами команды

Ссылки на эти информативные блоги будут доступны в ближайшее время, поэтому не забудьте вернуться и узнать больше об оптимизации вашего рабочего процесса ML/Data Science.

На этом наша дискуссия на данный момент завершена. Не забудьте подписаться на меня для получения дальнейших обновлений и информации о машинном обучении и науке о данных. Вы также можете связаться со мной на Linkedin для получения дополнительной информации и оставаться на связи.