Есть два типа людей, создающих модели глубокого обучения: те, кто все делает в Docker, и те, кто должен делать все в Docker.
Почему Docker так хорош для глубокого обучения?
- Docker поддерживает воспроизводимость. О кризисе воспроизводимости в машинном обучении написано много, и эта трудность вполне реальна. Использование Docker устраняет один из основных источников изменчивости.
- Использование Docker позволяет вашему коду безболезненно работать и в будущем. Когда я клонирую репозиторий github эксперимента машинного обучения, я всегда готовлюсь к неизвестному количеству времени, которое будет возиться с библиотеками и зависимостями. «Стек» глубокого обучения постоянно меняется, и популярные библиотеки, такие как Pytorch и TensorFlow, постоянно выпускают новые версии и устраняют зависимости. Использование Docker сокращает время, необходимое для повторного запуска старых моделей, и значительно упрощает воспроизведение ваших результатов товарищами по команде.
Здесь, в Weights & Biases, мы работаем над воспроизводимостью с нулевыми накладными расходами, упрощая использование Docker.
Начиная
Выполните эту простую команду изнутри вашего проекта ML:
докер wandb
Это устанавливает образ Docker для машинного обучения с установленными стандартными пакетами, монтирует ваш код и помещает вас внутрь него. Теперь вы можете тренировать свои модели точно так же, как раньше, с дополнительными преимуществами Docker. Во время обучения модели wandb сохранит дайджест, который является постоянной записью состояния вашего образа Docker. Это означает, что вы всегда сможете восстановить именно ту среду, в которой работал ваш код.
В любое время в будущем вы можете запустить следующее, чтобы вернуться к тому состоянию, в котором ваш код и образ Docker находились во время вашего обучающего прогона:
восстановление wandb ‹username› / ‹project›: ‹run_id›
Weights & Biases предварительно заполняет вашу историю bash исходной командой.
Готовые образы
Если у вас уже есть образ Docker или вы хотите использовать один из популярных готовых образов, передайте имя образа. Например:
wandb docker floydhub / dl-docker: cpu
Эта команда загружает образ Docker Floydhub Deep Learning для ЦП.
Jupyter Hub
Чтобы проанализировать результаты или запустить запуски с Jupyter, запустите следующее:
wandb docker - jupyter
Это установит Jupyter и запустит JupyterLab на порту 8888.
Для людей, уже использующих Docker
Мы автоматически отслеживаем дайджест, чтобы обеспечить репликацию среды в будущем. Вы можете передать дайджест вручную, установив переменную среды WANDB_DOCKER. Мы также предоставляем помощника для получения дайджеста для рабочих процессов, которые запускают образы докеров вручную: wandb docker имя_образа - дайджест. Для более опытных пользователей, у которых уже есть Docker в своих рабочих процессах, мы предлагаем новую команду:
wandb-docker-run
Подобно nvidia-docker, эта команда представляет собой простую оболочку, которая вставляет переменные среды WANDB_DOCKER и WANDB_API_KEY в существующие вызовы выполнения Docker. Для пользователей, запускающих свои полезные данные в кубернетах, наш последний клиент будет автоматически заполнять дайджест, если api плоскости управления k8s предоставляется модулю.
Вы можете узнать больше о нашей поддержке Docker в нашей документации.