Существует множество общедоступных образов Docker, таких как TensorFlow, PyTorch, Jupyter Docker Stacks или AWS Deep Learning Containers, которые можно использовать для обучения моделей глубокого обучения.

С Spotty вы можете запускать контейнеры Docker на AWS с помощью всего одной команды. Spotty управляет всеми необходимыми ресурсами AWS, включая тома, снимки состояния и ключи SSH, синхронизирует локальный проект с экземпляром и использует tmux для отключения удаленных процессов от их терминалов.

Все, что вам нужно, - это один файл конфигурации с именем spotty.yaml в корневом каталоге вашего проекта.

Установка

Требования:

Используйте pip для установки или обновления Spotty:

pip install -U spotty

Конфигурационный файл

Файл конфигурации описывает параметры экземпляра EC2 и параметры контейнера Docker, который будет использоваться в качестве среды для вашего проекта. Вот пример:

С конфигурацией выше Spotty будет запускать экземпляр On-Demand p2.xlarge в регионе us-east-2 (Огайо). Не стесняйтесь изменять эту конфигурацию: например, вы можете изменить параметр image на pytorch/pytorch:latest, чтобы запустить контейнер PyTorch.

Если вы хотите запустить спотовый экземпляр вместо экземпляра по требованию, удалите параметр onDemandInstance. Чтобы найти регион с самой низкой ценой для выбранного типа инстанса, используйте команду spotty aws spot-prices -i <INSTANCE_TYPE>.

Подробнее о настройке читайте в документации.

Запуск контейнера

Если у вас есть spotty.yaml файл в каталоге проекта, вы можете запустить контейнер, используя следующую команду:

spotty start

Эта команда запустит экземпляр EC2, синхронизирует ваш локальный проект с экземпляром и запустит контейнер.

Используйте команду spotty ssh для подключения к контейнеру.

Не забудьте позже остановить экземпляр с помощью команды spotty stop!

Контейнеры глубокого обучения AWS

Контейнеры глубокого обучения AWS - это образы Docker с предварительно установленными фреймворками глубокого обучения, оптимизированными для максимальной производительности:

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

Образы Docker доступны в Amazon ECR. Здесь вы можете найти список URL-адресов изображений, которые можно использовать в файле конфигурации Spotty.

Для запуска контейнеров AWS DL у инстанса должен быть доступ к Amazon ECR:

  1. Используйте параметр managedPolicyArns, чтобы присоединить политику arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryFullAccess к роли экземпляра.
  2. Используйте параметр commands для входа в Amazon ECR перед запуском контейнера: $(aws ecr get-login --no-include-email --region us-east-2 --registry-ids 763104351884).

Убедитесь, что регион в названии изображения и регион в команде входа в систему соответствуют параметру region.

Заключение

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

Если вам понравился этот пост, отметьте проект на GitHub и поделитесь им со своими друзьями.