Как стать автором
Обновить

Проведение совместных экспериментов c DVC

Время на прочтение 4 мин
Количество просмотров 2.1K
Автор оригинала: Milecia McGregor

Вы можете использовать удаленные хранилища DVC для совместного использования экспериментов и их данных через машины.

Обзор

💡 Совместное использование экспериментов для сравнения моделей машинного обучения важно, когда вы работаете в команде.Настройка удаленных хранилищ DVC в дополнение к Git позволяет вам делиться всеми данными, кодом и гиперпараметрами. Когда вы используете DVC, вы можете объединять свои данные и изменения кода для каждого эксперимента и передавать их в удаленное хранилище

Автор: Milecia McGregor

Оригинал: Running Collaborative Experiments

Перевод статьи подготовлен совместно с Моргуновой Анной, за что ей огромное спасибо 👋 Другие материалы ML REPA и ссылки на видео митапов и конференций можно найти в открытой странице в Notion.

Интро

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

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

Сделайте форк проекта

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

Чтобы получить ветку, которую мы будем использовать в этом посте, вы можете запустить эту команду, чтобы клонировать ваш форк репозитория. Обязательно замените <your_github> на имя своего пользователя в GitHub.

$ git clone git@github.com:<your_github>/example-dvc-experiments.git -b get-started

В этом проекте уже есть DVC, настроенный для проведения экспериментов, но если вы хотите продолжить работу с проектом, над которым сейчас работаете, обязательно ознакомьтесь с инструкциями по инициализации DVC пайплайнов в документе the Getting Started

Настройка удаленных хранилищ DVC

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

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

Затем вам нужно настроить удалённое хранилище. Это может быть бакет (bucket) в AWS S3, Google Drive или один из других поддерживаемых типов хранилища.

Важно отметить, что в проекте, с которым мы работаем, удалённое хранилище уже настроено для стягивания (pull) данных. Вы можете увидеть это в .dvc/config. Вам нужно будет настроить отдельное удаленное хранилище для сохранения (push) изменений, так как текущее удаленное хранилище не позволяет pull-доступ.

В этом примере мы будем использовать папку Google Drive в качестве удаленного хранилища. Теперь, когда вы все это знаете, давайте запустим команду, чтобы настроить удаленный хранилище DVC (remote storage) .

$ dvc remote add cloud_remote gdrive://1k6aUYWphOulJlXgq4XbfKExWGyymTpEl

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

Список экспериментов

Когда вы работаете с командой над существующим проектом, вы можете захотеть увидеть эксперименты, которые уже находятся в remote. Чтобы взглянуть на эксперименты, которые мы провели в форке репозитория, вам нужно будет настроить upstream для Git репозитория :

$ git remote add upstream https://github.com/iterative/example-dvc-experiment

Теперь вы можете просмотреть все эксперименты, связанные с этим репозиторием, с помощью следующей команды.

$ dvc exp list upstream --all

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

21784fa:
        exp-c8dcf
main:
        exp-b3667
        exp-d382a

Теперь вы сможете выбрать эксперимент, который хотите воспроизвести, и начать работать с ним.

Стянуть (pull) эксперименты

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

$ dvc exp pull upstream exp-b3667

exp-b3667 мы получаем из команды dvc exp list, которую запускали ранее, и теперь у вас есть все данные и код, связанные с этим экспериментом, на вашем компьютере.

Теперь вы можете начать проводить новые эксперименты с различными моделями, гиперпараметрами или даже наборами данных.

Залить (push)эксперименты

Когда вы закончите свои новые эксперименты, вы можете отправить их на удаленный Google Drive, который мы настроили ранее. С помощью этой команды DVC обеспечивает push как в GitHub, так и отправку данных в remote хранилище.

$ dvc exp push origin exp-p4202

Эта команда отправит Git-references в ваш форк репозитория, а любые артефакты, такие как данные или модели, будут отправлены в удаленное хранилище DVC. Если вы используете чекпоинты, он также “зальет” чекпоинты эксперимента. Теперь вы можете легко поделиться своей работой с другими инженерами, чтобы быстрее получать отзывы и быстрее завершать проекты.

Вывод

Намного проще получить помощь от кого-то, когда вы можете поделиться всем необходимым с ним. Когда вы используете DVC, вы можете объединять свои данные и изменения кода для каждого эксперимента и передавать их в удаленное хранилище , чтобы кто-то еще мог их получить.

Полезные ссылки

Теги:
Хабы:
+1
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Работа

Data Scientist
66 вакансий

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн