-
Notifications
You must be signed in to change notification settings - Fork 29
Для разработчиков: опыт использования GPU в облаке Paperspace
Paperspace - это одна из наиболее часто используемых для Machine Learning/Data Science облачных платформ, рекомендуемая, в частности, популярным курсом fast.ai. В отличие от AWS и Google Cloud сервис Paperspace создан специально под ML-нужды и, видимо, такая специализация позволяет удачно удовлетворять потребности именно ML-специалистов. Платформы-гиганты всё-таки предлагают обширный спектр самых разных комплексных (и дорогих) решений для крупного бизнеса, потому и подходят больше крупноми бизнесу. В проекте Лакмус облачный сервис Paperspace может быть полезен тем, кто работает с нейронной сетью, GPU-мощностями не обладает, а возможностей Google Colab для текущей задачи не хватает.
По большей части данная статья - описание персонального положительного опыта работы с Paperspace и на неоспоримую универсальную истину не претендует. Приходилось несколько раз видеть негативные отзывы на данного провайдера, связанные с трудностью убедить его выделит ресурсы, но мне с таким сталкиваться не приходилось. Возможно, потому что я логинюсь через Github-аккаунт с репозиториями и контрибьюшенами или, более вероятно, потому что я использую продукт Gradient и 1-Click Jupyter Notebooks, а в жалобах речь, судя по всему, на выделение виртуалок через Core. Gradient и 1-Click Jupyter Notebooks к использованию я и рекомендую, сравнивая его с моим опытом работы в Amazon Deep Learning AMI.
Итак, что именно понравилось в сервисе конкретно мне:
-
1-Click Notebooks действительно позволяют в несколько кликов запустить в браузере привычный полноценный интерфейс Jupyter. В виртуалках Амазона с Deep Learning AMI запуск и удалённое подключение к Jupyter стоил большего количества мышкодвижений. Мне кажется, работа с 1-Click Jupyter Notebooks во многом схожа с Google Collab, где сразу в браузере есть доступ к тетрадке в преднастроенном ML-окружении, при необходимости с поддержкой GPU. И - в ограниченном варианте - тоже бесплатно (но с регистрацией).
-
Jupyter при этом позволяет управлять машиной прямо из тетрадки в браузере. В принципе, в документации мелькало что-то и про SSH, и браузерный терминал в Jupyter можно открыть, и скрипт там запустить, но в тетрадке мне показалось более воспроизводимо и удобнее.
-
Gradient предоставляет набор контейнеров, вроде использованного мной "Tensorflow 1.14" с предустановленными библиотеками и возможностью доустановить/настроить остальное вручную. Однажды настроенное сохраняется и остаётся доступным при следующих запусках, в отличие от Google Collab, где через двенадцать часов машина recycle-ится и всё надо устанавливать заново. Конфликтов между окружениями нет за счёт контейнеризации. Amazon Deep Learning AMI для аналогичных целей просто содержат кучу подготовленных virtualenv на самые разные случаи ML-жизни, которые, разумеется, тоже донастраиваются и сохраняются между запусками. Но по факту пригождается только один-два из них, остальные мертвым грузом занимают огромное количество места на диске, а диск-то тоже стоит денег! Моя изначальная наивная мысль "75 Гб хватит на всё!" - не оправдалась, особенно вкупе с датасетами лакмуса...
-
И к бесплатному, и к платному аккаунту на Paperspace прилагается по дисковому хранилищу, 5Гб и 250Гб соответсвенно. При этом все платные инстансы используют этот платный диск совместно, и все бесплатные инстансы тоже разделяют бесплатный диск между собой. Такое разделяемое платное хранилище весьма удобно - можно выполнять вспомогательные работы на дешёвом инстансе, а на быстром дорогом GPU только непосредственно обучать модель.
Бесплатный диск с платным не объединяется никак, но всегда есть возможность переносить между ними файлы через Download/Upload в интерфейсе Jupyter. -
Цены на платные инстансы у Paperspace ниже, чем на AWS; кроме того, Амазон, судя по всему округляет время использования до часа, Paperspace - нет, и не взимает НДС в пользу Российской Федерации. (18 процентов! почти 1/5!!! за что??? за работу на социально-ориентированном проекте???). Тренировать модель в принципе можно и на бесплатных GPU-инстансах, однако 5 бесплатных гигабайт оценить модель на трёх "сезонных" датасетах по почти 2 Гб легким способом не позволяют. Возможное решение при тренировке на отдельных "сезонных" под-датасетах: держать "сезонный" датасет на бесплатном инстасе для тренировки, потом копировать снапшоты на диск в платном аккаунте с полным датасетом и evaluate.py запускать уже там.
Другой сложностью обучения на бесплатных инстансах оказалось ограничение по времени: автошатдаун после 6-ти часов, что даже меньше, чем 12 у colab. Этого не очень удобно для тренировки большого количества эпох подряд, но за счет сохранения снапшотов процесс можно разбить на части, а после пары минут выключенная машина легко запускается снова. -
А вот на платном аккаунте автошатдаун как раз очень полезная штука. С AWS меня постоянно мучал страх, как бы не забыть выключить виртуалку и влететь в затраты, здесь же, обеспечив сохранение нужных данных, можно указать когда машина выключится сама и не будет стоить денег за простой. Вариант запуска без автошатдауна выбрать тоже можно.
-
Есть что-то про Datasets, Models, Teams и т.д. что может быть полезным для MLOps, но может и нет, но точнее не знаю.
-
Как говорилось выше, старые добрые виртуалки как в Амазоне тоже есть, в продукте Core, тоже с ML-образами, как вот этот, включающий nvidia-docker: Machine-Learning-in-a-Box. Подробнее, однако, сказать нечего, может быть в Core есть проблемы.
Так что в данный момент мой выбор в пользу Paperspace, и я рекомендую взглянуть на эту платформу тем, кто тоже ищет себе доступные GPU-ресурсы.
Last update | Обновлено: 15.05.2020
The Lacmus project is distributed under the GNU license. All rights reserved. | Проект Lacmus распостраняется под лицензией GNU. Все права зищищены.