Обучение модели глубокого обучения
на основе контейнеров AWS Deep Learning Containers в сервисе Amazon EC2
Контейнеры AWS Deep Learning Containers (контейнеры DL) – это образы Docker, на которые предварительно установлены платформы глубокого обучения, чтобы упростить процесс развертывания специальных сред машинного обучения. Они позволяют избежать сложного процесса создания и оптимизации сред машинного обучения.
С помощью контейнеров AWS DL разработчики и специалисты по обработке данных могут быстро добавлять контейнеризованные приложения, развернутые в сервисе Amazon Elastic Container Service for Kubernetes (Amazon EKS), в собственных средах Kubernetes, в Amazon Elastic Container Service (Amazon ECS) или Amazon EC2.
В настоящем пособии приведены инструкции по обучению модели машинного обучения TensorFlow на инстансе Amazon EC2 с использованием AWS Deep Learning Containers.
Подробнее об этом учебном пособии | |
---|---|
Время | 10 минут |
Стоимость | Менее 1 USD |
Пример использования | Machine Learning |
Продукты | Контейнеры AWS Deep Learning Containers, Amazon EC2, Amazon ECR |
Аудитория | Разработчики, специалисты по работе с данными |
Уровень | Начинающий |
Последнее обновление | 27 марта 2019 г. |
1. Регистрация в AWS
Для работы с этим учебным пособием вам понадобится аккаунт AWS. За использование AWS Deep Learning Containers в рамках этого учебного пособия дополнительная плата не взимается. Вы оплачиваете только работу инстанса Amazon c5.large, который используется в этом учебном пособии, что составит не более 1 USD при соблюдении процесса удаления ресурсов, предложенного в конце статьи.
Уже есть аккаунт? Войдите в аккаунт
2. Добавление разрешений на доступ к Amazon ECR
Образы AWS Deep Learning Container – это размещенный в Amazon Elastic Container Registry (ECR) полностью автоматизированный реестр контейнеров Docker, который упрощает для разработчиков хранение и развертывание образов контейнеров Docker, а также управление ими. На этом шаге вы предоставите существующему пользователю IAM разрешения на доступ к Amazon ECR (с помощью политики AmazonECS_FullAccess).
Если у вас нет существующего пользователя IAM, изучите дополнительные сведения в документации IAM.
а) Навигация в консоли IAM
Откройте Консоль управления AWS, оставив открытым данное пошаговое руководство. Когда стартовый экран загрузится, введите имя пользователя и пароль, чтобы начать работу. Затем введите в строке поиска слово IAM и выберите пункт IAM, чтобы открыть консоль сервиса.

б) Выбор пользователей
На панели навигации слева выберите Users.

в) Добавление разрешений
теперь вы добавите разрешения для нового пользователя IAM, которого вы только что создали, или для уже существующего пользователя IAM. Выберите Add Permissions на странице сводной информации о пользователе IAM.

г) Добавление политики полного доступа ECS
Щелкните Attach existing policies directly и выполните поиск по строке ECS_FullAccess. Выберите политику Amazon_FullAccess и откройте ее, дойдя до разделов Review и Add Permissions.

д) Добавление встроенной политики
Выберите Add inline policy на странице сводной информации о пользователе IAM.

e) Добавление политики в виде кода JSON
Выберите вкладку JSON и вставьте следующую политику:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "ecr:*",
"Effect": "Allow",
"Resource": "*"
}
]
}
Сохраните эту политику с именем ‘ECR’ и щелкните Create Policy.

3. Запуск инстанса Base AMI AWS Deep Learning
В этом учебном пособии используются контейнеры AWS Deep Learning Containers на AWS Deep Learning Base Amazon Machine Images (AMIs), которые в стандартной конфигурации уже содержат все необходимые зависимости, в том числе драйверы Nvidia, docker и nvidia-docker. Контейнеры Deep Learning Containers с этими пакетами можно выполнять на любом AMI.
а) Переход в консоль EC2
Вернитесь на стартовый экран Консоли управления AWS и введите EC2 в строке поиска, а затем выберите EC2, чтобы открыть консоль этого сервиса.

б) Запуск инстанса Amazon EC2
Снова откройте консоль Amazon EC2 и нажмите кнопку Launch Instance.

в) Выбор AWS Deep Learning Base AMI
Выберите вкладку AWS Marketplace слева, а затем выполните поиск по строке deep learning base ubuntu. Выберите Deep Learning Base AMI (Ubuntu). Также можно выбрать Deep Learning Base AMI (Amazon Linux).

г) Выбор типа инстанса
Выберите тип инстанса Amazon EC2. Amazon Elastic Compute Cloud (EC2) – это сервис AWS, который используется для создания и запуска виртуальных машин в облаке. В AWS такие виртуальные машины называются инстансами.
В этом учебном пособии мы будем использовать инстанс c5.large, но вы можете выбрать и другие типы инстансов, в том числе P3 на основе графического процессора.
Выберите Review and Launch.

д) Запуск инстанса
Изучите подробные сведения об инстансе и щелкните Launch.

e) Создание нового файла закрытого ключа
На следующем экране вам будет предложено выбрать существующую пару ключей или создать новую. Пара ключей используется для безопасного доступа к инстансу с помощью SSH. В AWS хранится публичная составляющая пары ключей – своего рода дверной замок. Вы загружаете и используете частную составляющую пары ключей – как ключ к дверному замку.
Выберите Create a new key pair и назначьте ей имя. Теперь нажмите Download Key Pair и сохраните свой ключ в надежном расположении. В случае утери ключа вы лишитесь доступа к инстансу. Если вашим ключом завладеет посторонний, он может получить доступ к инстансу.
Если вы ранее уже создавали закрытый ключ и сохранили к нему доступ, вы можете выбрать вариант Choose an existing key pair, чтобы использовать существующую пару ключей.

ж) Просмотр сведений об инстансе
Щелкните идентификатор инстанса, чтобы просмотреть в консоли подробные сведения о новом инстансе Amazon EC2.

4. Подключение к инстансу
На этом шаге вы подключитесь к новому инстансу по протоколу SSH. Ниже приводятся инструкции для среды Mac / Linux. Если вы пользуетесь Windows, выполните шаг 4 этого руководства.
а) Поиск и копирование публичного DNS-имени инстанса
На вкладке Description скопируйте значение «Public DNS (IPv4)» для своего инстанса Amazon EC2.

б) Открытие терминала командной строки
В терминале используйте приведенные ниже команды, чтобы перейти в каталог, где находится защитный ключ, а затем выполните подключение к инстансу с помощью SSH.
cd /Users/<your_username>/Downloads/
chmod 0400 <your .pem filename>
ssh -L localhost:8888:localhost:8888 -i <your .pem filename> ubuntu@<your instance DNS>

5. Вход в Amazon ECR
Образы AWS Deep Learning Container – это размещенный в Amazon Elastic Container Registry (ECR) полностью автоматизированный реестр контейнеров Docker, который упрощает для разработчиков хранение и развертывание образов контейнеров Docker, а также управление ими. На этом шаге вы войдете в Amazon ECR и проверите наличие доступа.
а) Настройка учетных данных AWS для инстанса EC2
Вам нужно предоставить идентификатор ключа доступа AWS и секретный ключ доступа. Если у вас нет этой информации, создайте новые значения идентификатора ключа доступа и секретного ключа доступа здесь.

б) Вход в Amazon ECR
Приведенная ниже команда позволяет выполнить вход в Amazon ECR:
$(aws ecr get-login --region us-east-1 --no-include-email --registry-ids 763104351884)
Примечание. Обязательно включите в команду символ ‘$’ и скобки. Когда процесс завершится, вы увидите сообщение «Login Succeeded».

6. Запуск обучения TensorFlow с использованием контейнеров Deep Learning Containers
На этом шаге вы примените образ AWS Deep Learning Container для обучения TensorFlow на инстансах ЦПУ с помощью Python 3.6.
а) Запуск AWS Deep Learning Containers
Теперь запустите образы AWS Deep Learning Container на инстансе EC2, используя приведенную ниже команду. Эта команда автоматически извлекает образ Deep Learning Container, если он еще не существует в локальной среде.
docker run -it 763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-training:1.13-cpu-py36-ubuntu16.04
Примечание. Выполнение этого шага может потребовать несколько минут в зависимости от размера образа. Если вы используете инстанс графического процессора, укажите «nvidia-docker» вместо «docker». Когда этот шаг успешно завершится, вы увидите строку приглашения оболочки bash для нового контейнера.

б) Извлечение примера модели для обучения
Теперь мы клонируем репозиторий Keras, который содержит примеры скриптов python для обучения моделей.
git clone https://github.com/fchollet/keras.git

в) Начало обучения
Запустите обучение канонической модели MNIST CNN с помощью следующей команды:
python keras/examples/mnist_cnn.py
Итак, вы успешно запустили обучение в контейнере AWS Deep Learning Container.

7. Удаление ресурсов
На этом этапе вы удалите инстанс Amazon EC2, созданный в ходе обучения.
Важно! Удаление неиспользуемых ресурсов сокращает расходы и является рекомендованной мерой. Если не удалить ресурсы, с вашего аккаунта может взиматься дополнительная плата.
а) Выбор запущенного инстанса
В консоли Amazon EC2 выберите элемент Running Instances.

б) Удаление инстанса EC2
Выберите созданный инстанс EC2 и нажмите Actions > Instance State > Terminate.

в) Подтверждение удаления
Вам будет предложено подтвердить удаление. Согласитесь: Yes, Terminate.
Примечание. Этот процесс может занять несколько секунд. После удаления инстанса его состояние в консоли EC2 изменится на terminated.

Поздравляем!
Вы успешно обучили модель MNIST CNN с помощью TensorFlow в контейнере AWS Deep Learning Containers.
Вы можете применять контейнеры AWS DL для обучения и получения логических выводов на любых ресурсах с ЦПУ и графическими процессорами в сервисах Amazon EC2, Amazon ECS, Amazon EKS и (или) Kubernetes.
Используйте эти стабильные образы глубокого обучения, оптимизированные для производительности и масштабирования в AWS, чтобы создать собственную среду глубокого обучения.