Устали от того, что ваши данные машинного обучения разбросаны по всему миру? Ознакомьтесь с «Github» ML

Специалисты по данным заслуживают того, чтобы просматривать, предварительно просматривать, публиковать, разветвлять и объединять данные и модели вместе с кодом. DAGsHub Storage - это пульт DVC, для которого требуется 0 Конфигурация (работает «из коробки»), включает средства управления доступом для групп и организаций, а также удобную видимость.

Источник: DAGsHub

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

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

Одно из наиболее распространенных и стандартных решений этой проблемы - это просто отправить код в Github, а модели и данные - в Google Cloud или AWS, но это довольно дорого и по-прежнему сопряжено с множеством проблем.

Например, я ранее пробовал использовать Google Colab вместе с Google Диском. Загрузка тонны данных (в моем случае это было около 100 ГБ) в Colab занимает много времени, даже если у вас достаточно хорошая скорость интернета и довольно часто происходит сбой в процессе. И даже если вам удастся его туда загрузить, скорость чтения с Google Диска очень плохая. Вам придется сжать изображения перед их загрузкой и выполнить множество оптимизаций кода, чтобы достичь посредственной скорости чтения, что испортит ваш опыт обучения модели.

С другой стороны, наблюдается огромный рост использования DVC (Data Version Control) для управления данными. По сути, стандартом управления версиями кода является Git (и проекты на основе Git, такие как Github).

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

Как работает DAGsHub?

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

Источник: DAGsHub

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

Шаг 1:

Зарегистрируйтесь или если вы ленивы (как я), вы можете просто авторизоваться через GitHub!

Шаг 2:

Следующий шаг по сути такой же, как запуск репозитория GitHub. Если вы не знакомы с GitHub, все, что вам нужно сделать, это создать репозиторий в DAGsHub Storage, клонировать его, добавить в него данные и отправить с помощью Git.

Шаг 3:

До сих пор это были в значительной степени стандартные вещи, что приятно, поскольку Git и GitHub являются наиболее часто используемыми системами управления версиями, и это часть того, почему DAGsHub является хорошим продуктом.

С этого момента все становится интереснее. Мы начнем использовать DVC для версии и фиксации наших данных.

Первым делом нужно запустить «dvc init» для инициализации репозитория DVC, и, вероятно, неплохо было бы зафиксировать это в репозитории Github.

Затем вы можете добавить свои данные и любые выходные данные модели с помощью «dvc add data» или «dvc add output», но подождите, вы не собираетесь отправлять все свои данные в облако. Поскольку многие наборы данных огромны, вы собираетесь использовать md5-хэш своего набора данных. md5 или message-digest 5 - широко используемый алгоритм хеширования, который используется здесь для хранения состояния набора данных и любых выходных данных модели. (Примечание: DAGsHub на самом деле поддерживает интеграцию с Google Cloud и корзинами AWS для хранения ваших фактических данных, но мы рассмотрим другие, более интересные функции).

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

Последний шаг:

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

Источник: DAGsHub

Мы все бывали там, когда дела начинались запутываться, особенно с проектами машинного обучения. DAGsHub Storage представляет библиотеку Python под названием «dagshub». Эта библиотека пытается записать всю полезную информацию о ваших экспериментах с машинным обучением, чтобы облегчить вам жизнь.

Например [2]:

with dagshub.dagshub_logger() as logger:
        print('Training model...')
        train_y = train_df[CLASS_LABEL]
        model = fit_model(train_tfidf, train_y)
        print('Saving trained model...')
        joblib.dump(model, 'outputs/model.joblib')
        logger.log_hyperparams(model_class=type(model).__name__)
        logger.log_hyperparams({'model': model.get_params()})

Это только верхушка айсберга, существует еще много доступных функций, и цель этой статьи не в том, чтобы воспроизвести их руководство, а в том, чтобы показать вам основные моменты и потенциал хранилища DAGsHub. Регистратор умеет создавать дампы метрик и параметров. Например:

params.yml
model:
  alpha: 0.0001
  average: false
  class_weight: null
  early_stopping: false
  epsilon: 0.1
  eta0: 0.0
  fit_intercept: true
  l1_ratio: 0.15
  learning_rate: optimal

Это впечатляет! Я честно писал их вручную на Google Диске, когда делал проекты машинного обучения, просто чтобы отслеживать, что сработало, а что не сработало, но, очевидно, автоматизация экономит много времени и, что более важно, проста в настройке и Бесплатная автоматизация…

Моя последняя и любимая функция:

GitHub предлагает несколько вкладок в репозиториях для отслеживания проблем, уязвимостей безопасности и других важных показателей. DAGsHub Storage предоставляет вкладку «Эксперименты» для отслеживания ваших экспериментов машинного обучения. Выглядит это примерно так:

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

Встроенное хранилище DAGsHub - это удаленный HTTP-кеш для DVC. Таким же образом вы получаете удаленный URL-адрес git для своего репозитория git. Вы создаете репозиторий, и он автоматически предоставляет вам удаленный URL-адрес DVC. При отправке или извлечении данных с этого URL-адреса вы используете существующие учетные данные DAGsHub (через базовую аутентификацию HTTPS).

Источник: DAGsHub

Вы также получаете привилегию HTTP-аутентификации, как и на GitHub. Таким образом, вы можете практически клонировать свой репозиторий где угодно или поделиться этой ссылкой со своими товарищами по команде.

Последние мысли

Мы всегда видим множество инноваций в статьях по машинному обучению, но на самом деле довольно приятно видеть, что инновации делаются в практической части, такой как конвейеры машинного обучения и управление проектами. На данный момент крупнейшей вехой для ML является переход от лабораторий к продуктам, и DAGsHub, похоже, сделал большой шаг вперед к этой цели.

Кроме того, одна из лучших особенностей DAGsHub заключается в том, что он построен на основе фреймворков, которые на самом деле работают достаточно хорошо (Git), поэтому вам на самом деле не нужно испытывать боль при изучении нового фреймворка (а это боль, которую все программисты проходят).

Ссылки:

[1] DAGsHub

[2] Учебное пособие по DAGsHub