Обучение модели глубокого обучения

на основе контейнеров 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, чтобы открыть консоль сервиса.

AWS Management Console

б) Выбор пользователей

На панели навигации слева выберите Users.

3b-new

в) Добавление разрешений

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

3c

г) Добавление политики полного доступа ECS

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

3d-new

д) Добавление встроенной политики

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

3e-new

e) Добавление политики в виде кода JSON

Выберите вкладку JSON и вставьте следующую политику:

{
       "Version": "2012-10-17",
       "Statement": [
              {
                     "Action": "ecr:*",
                     "Effect": "Allow",
                     "Resource": "*"
              }
       ]
}

Сохраните эту политику с именем ‘ECR’ и щелкните Create Policy.

 

3f-new

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, чтобы открыть консоль этого сервиса.

step_2

б) Запуск инстанса Amazon EC2

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

step_4a-new

в) Выбор AWS Deep Learning Base AMI

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

step_4b-new

г) Выбор типа инстанса

Выберите тип инстанса Amazon EC2. Amazon Elastic Compute Cloud (EC2) – это сервис AWS, который используется для создания и запуска виртуальных машин в облаке. В AWS такие виртуальные машины называются инстансами.

В этом учебном пособии мы будем использовать инстанс c5.large, но вы можете выбрать и другие типы инстансов, в том числе P3 на основе графического процессора.

Выберите Review and Launch.

step_4c-new

д) Запуск инстанса

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

step_4d-new

e) Создание нового файла закрытого ключа

На следующем экране вам будет предложено выбрать существующую пару ключей или создать новую. Пара ключей используется для безопасного доступа к инстансу с помощью SSH. В AWS хранится публичная составляющая пары ключей – своего рода дверной замок. Вы загружаете и используете частную составляющую пары ключей – как ключ к дверному замку.

Выберите Create a new key pair и назначьте ей имя. Теперь нажмите Download Key Pair и сохраните свой ключ в надежном расположении. В случае утери ключа вы лишитесь доступа к инстансу. Если вашим ключом завладеет посторонний, он может получить доступ к инстансу.

Если вы ранее уже создавали закрытый ключ и сохранили к нему доступ, вы можете выбрать вариант Choose an existing key pair, чтобы использовать существующую пару ключей.

step_4e-new

ж) Просмотр сведений об инстансе

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

step_4f-new

4. Подключение к инстансу

На этом шаге вы подключитесь к новому инстансу по протоколу SSH. Ниже приводятся инструкции для среды Mac / Linux. Если вы пользуетесь Windows, выполните шаг 4 этого руководства.

а) Поиск и копирование публичного DNS-имени инстанса

На вкладке Description скопируйте значение «Public DNS (IPv4)» для своего инстанса Amazon EC2.

step_5a-new

б) Открытие терминала командной строки

В терминале используйте приведенные ниже команды, чтобы перейти в каталог, где находится защитный ключ, а затем выполните подключение к инстансу с помощью 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>
step_5b-new

5. Вход в Amazon ECR

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

а) Настройка учетных данных AWS для инстанса EC2

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

step_6a-new

б) Вход в Amazon ECR

Приведенная ниже команда позволяет выполнить вход в Amazon ECR:

$(aws ecr get-login --region us-east-1 --no-include-email --registry-ids 763104351884)

Примечание. Обязательно включите в команду символ ‘$’ и скобки. Когда процесс завершится, вы увидите сообщение «Login Succeeded».

 

step_6b-new

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 для нового контейнера.

 

7a-new

б) Извлечение примера модели для обучения

Теперь мы клонируем репозиторий Keras, который содержит примеры скриптов python для обучения моделей.

git clone https://github.com/fchollet/keras.git
7b-new

в) Начало обучения

Запустите обучение канонической модели MNIST CNN с помощью следующей команды:

python keras/examples/mnist_cnn.py

Итак, вы успешно запустили обучение в контейнере AWS Deep Learning Container.

 

7c-new

7. Удаление ресурсов

На этом этапе вы удалите инстанс Amazon EC2, созданный в ходе обучения.

Важно! Удаление неиспользуемых ресурсов сокращает расходы и является рекомендованной мерой. Если не удалить ресурсы, с вашего аккаунта может взиматься дополнительная плата.

а) Выбор запущенного инстанса

В консоли Amazon EC2 выберите элемент Running Instances.

 

8a-new

б) Удаление инстанса EC2

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

8b-new

в) Подтверждение удаления

Вам будет предложено подтвердить удаление. Согласитесь: Yes, Terminate.

Примечание. Этот процесс может занять несколько секунд. После удаления инстанса его состояние в консоли EC2 изменится на terminated.

 

8c-new

Поздравляем!

Вы успешно обучили модель MNIST CNN с помощью TensorFlow в контейнере AWS Deep Learning Containers.

Вы можете применять контейнеры AWS DL для обучения и получения логических выводов на любых ресурсах с ЦПУ и графическими процессорами в сервисах Amazon EC2, Amazon ECS, Amazon EKS и (или) Kubernetes.

Используйте эти стабильные образы глубокого обучения, оптимизированные для производительности и масштабирования в AWS, чтобы создать собственную среду глубокого обучения.

Была ли полезной информация, представленная в этом учебном пособии?

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