Оптимизация и масштабирование обучения моделей машинного обучения

с помощью управляемого спотового обучения для сервиса Amazon SageMaker

Amazon SageMaker – это полностью управляемый сервис машинного обучения. С помощью сервиса Amazon SageMaker специалисты по работе с данными и разработчики могут быстро создавать и обучать модели машинного обучения, а затем развертывать их в готовой к работе размещенной среде.

Спотовые инстансы Amazon EC2 позволяют использовать свободные вычислительные ресурсы в облаке AWS со значительной скидкой по сравнению со стоимостью инстансов по требованию. Тем не менее сервис EC2 может прерывать работу спотовых инстансов, если ему нужны их ресурсы. Уведомление об этом отправляется за две минуты. Вы можете использовать спотовые инстансы для различных областей применения, связанных с обеспечением отказоустойчивости и повышением гибкости работы. Вот примеры таких областей применения: машинное обучение, аналитика, контейнеризованные рабочие нагрузки, высокопроизводительные вычисления (HPC), веб-серверы без сохранения состояния, рендеринг, CI/CD и другие рабочие нагрузки, связанные с разработкой и тестированием.

Благодаря сервису Amazon SageMaker вы можете применять спотовые инстансы EC2, чтобы выполнять задания обучения, для которых используется управляемое спотовое обучение. При управляемом спотовом обучении для выполнения заданий обучения вместо инстансов по требованию используются спотовые инстансы Amazon EC2. Вы можете указать, для каких заданий обучения следует использовать спотовые инстансы, а также условие останова. Это условие указывает время, в течение которого сервис Amazon SageMaker должен ждать задание, которое необходимо выполнить с использованием спотовых инстансов Amazon EC2. Метрики и журналы, создаваемые во время сеансов обучения, доступны в сервисе CloudWatch. В случае прерывания работы спотового инстанса сервис Amazon SageMaker повторно запустит ваши задания обучения. Вы также можете настроить задания управляемого спотового обучения таким образом, чтобы для них использовались контрольные точки. Сервис Amazon SageMaker копирует данные контрольных точек из локального расположения в сервис Amazon S3. После перезапуска задания сервис Amazon SageMaker копирует данные из сервиса Amazon S3 обратно в локальное расположение.

Подробнее об этом учебном пособии
Время 10–20 минут      
Стоимость Менее 10 USD
Пример использования Вычисления, машинное обучение
Продукты Amazon SageMaker, спотовые инстансы EC2
Уровень 300
Последнее обновление 10 апреля 2020 г.

Уже есть аккаунт? Войдите в аккаунт

Шаг 1. Получение доступа к сервису Amazon SageMaker

1.1 Откройте браузер и перейдите в консоль Amazon SageMaker. Вы также можете выполнить поиск по ключевому слову SageMaker или найти сервис Amazon SageMaker в разделе машинного обучения на главной странице консоли. Если у вас уже есть аккаунт AWS, войдите в консоль. В противном случае создайте аккаунт AWS, чтобы начать работу.

1.2 В правом верхнем углу выберите регион, в котором вы хотите выполнить обучение с помощью сервиса SageMaker.

1.3 В разделе Обзор или на расположенной слева панели в разделе Блокнот щелкните Инстансы блокнотов.

Шаг 2. Запуск инстанса блокнота

2.1 В окне инстансов блокнотов щелкните Создать инстанс блокнота.

2.2 В разделе Параметры инстанса блокнота в поле Имя инстанса блокнота введите имя, например ManagedSpotTraining.

Прокрутите содержимое экрана до раздела Разрешения и шифрование и в раскрывающемся списке «Роль IAM» выберите пункт Создать роль.

Для всех остальных параметров оставьте значения, используемые по умолчанию.

2.3 В модальном окне Создание роли IAM выберите пункт Любая корзина S3 и щелкните Создать роль.

2.4 Щелкните Создать инстанс блокнота.

Шаг 3. Открытие примера блокнота

3.1 Щелкните ссылку Открыть JupyterLab рядом с инстансом блокнота, который вы создали на шаге 2.

3.2 На расположенной слева панели щелкните значок Примеры блокнотов Amazon SageMaker, чтобы открыть список примеров блокнотов.

3.3 В разделе Общие сведения об алгоритмах Amazon найдите и щелкните пример блокнота managed_spot_training_object_detection.ipynb.

Откроется копия этого блокнота, предназначенная только для чтения.

3.4 В правом верхнем углу только что открытого примера блокнота щелкните Создать копию.

Примечание. Чтобы выполнить блокнот на шаге 4, необходимо создать копию блокнота, предназначенную только для чтения.

3.5 Нажмите кнопку Создать копию.

Шаг 4. Выполнение примера блокнота

4.1 Нажмите кнопку «Запустить выбранные ячейки и перейти дальше», чтобы пройти через каждую ячейку примера блокнота. На выбранную в данный момент ячейку указывает синяя полоса, расположенная слева от нее.

Этот блокнот – комплексный пример, позволяющий ознакомиться с алгоритмом обнаружения объектов в сервисе Amazon SageMaker. В данном примере мы продемонстрируем, как обучить модель обнаружения объектов на наборе данных Pascal VOC, используя алгоритм Single Shot multibox Detector (SSD). Блокнот настроен таким образом, чтобы для обучения этой модели на базе спотовых инстансов использовать метод управляемого спотового обучения для сервиса Amazon SageMaker.

Обнаружение объектов – это процесс определения объектов и нахождения их расположения на изображении. Обычно решение для обнаружения объектов в качестве входных данных получает изображение и создает на нем рамки, которые выделяют интересующий объект. Кроме того, решение определяет, что за объект находится в прямоугольнике.

Данный пример представляет собой измененную версию расположенного здесь блокнота.

Продолжите выполнение блокнота, используя кнопку «Запустить выбранные ячейки и перейти дальше» пока не дойдете до шага C.

4.2 После выполнения каждой ячейки в блокноте будут отображаться выходные данные, а в индикаторе [*] – счетчик шагов [N], где N – это номер выполненного шага.

Продолжайте выполнение ячеек в этом блокноте, пока не дойдете до раздела Обнаружение объектов с помощью управляемого спотового обучения.

 

4.3 Когда вы дойдете до раздела Обнаружение объектов с помощью управляемого спотового обучения, остановитесь и проверьте указанные ниже параметры конфигурации.

train_use_spot_instances = True

train_max_run=3600

train_max_wait = 3600 if train_use_spot_instances else None

Эти переменные используются при настройке задания обучения Amazon SageMaker, как описано в шаге D ниже. Они позволяют настроить задание обучения таким образом, чтобы система выделяла для него спотовые инстансы. Они также позволяют настроить действия, выполняемые после истечения времени ожидания, то есть указать, как долго сервис Amazon SageMaker должен ждать, пока спотовые инстансы станут доступными, а также максимальную общую длительность для задания обучения.

4.4 В примере блокнота используется пакет SDK Sagemaker для Python, позволяющий настроить высокоуровневые интерфейсы, которые упрощают обучение и разработку моделей в сервисе Amazon SageMaker. Один из этих интерфейсов – SageMaker.estimator. При использовании интерфейса Estimator достаточно передать в этот него (при его создании) несколько дополнительных параметров для настройки задания обучения.

train_use_spot_instances=train_use_spot_instances,

train_max_run=train_max_run,

train_max_wait=train_max_wait

Для этих параметров используются переменные, задаваемые на шаге C. С их помощью параметр train_use_spot_instances получает значение «Истина», параметр train_max_run – значение 3600 секунд и параметр train_max_wait – 3600 секунд. Дополнительные сведения об этих параметрах см. ниже.

train_use_spot_instances (логический). Указывает, нужно ли использовать управляемые спотовые инстансы SageMaker для обучения. Если этот параметр включен, необходимо также настроить аргумент thetrain_max_wait (по умолчанию он имеет значение «Ложь»).

train_max_run (целое число). Время ожидания в секундах для обучения (по умолчанию используется значение, равное 24 * 60 * 60). По истечении этого времени сервис Amazon SageMaker прерывает работу задания независимо от его текущего состояния.

train_max_wait (целое число). Время ожидания в секундах для инстансов спотового обучения (по умолчанию используется значение «Нет»). По истечении этого времени сервис Amazon SageMaker перестанет ожидать, пока спотовые инстансы станут активными (по умолчанию используется значение «Нет»).

Дополнительные сведения о пакете SDK SageMaker для Python и интерфейсе Estimator см. в документации здесь.

4.5 Продолжайте выполнение блокнота, используя кнопку «Запустить выбранные ячейки и перейти дальше», пока не дойдете до его конца.

Обратите внимание на следующую команду:

od_model.fit(inputs=data_channels, logs=True)

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

Пока выполняется задание обучения модели, вы можете узнать больше об управляемом спотовом обучении в сервисе Amazon SageMaker здесь.

На выполнение задания обучения потребуется менее 10 минут.

Шаг 5. Проверка экономии

5.1 По завершении выполнения задания обучения пакет SDK SageMaker для Python отобразит выходные данные об экономии, достигнутой благодаря использованию управляемого спотового обучения, а также метрики с указанием в секундах общего времени обучения и времени, подлежащего оплате.

Вы можете рассчитать экономию от использования управляемого спотового обучения по формуле (1 – BillableTimeInSeconds / TrainingTimeInSeconds) * 100. Например, если BillableTimeInSeconds (Время в секундах, подлежащее оплате) равно 100, а TrainingTimeInSeconds (Время обучения в секундах) –500, экономия составит 80 %.

Дополнительные сведения о том, как рассчитать экономию, см. здесь.

5.2 Вы также можете просмотреть сведения об экономии в консоли.

Вернитесь в консоль Amazon SageMaker и в расположенном слева списке разделов в разделе Обучение щелкните пункт Задания обучения.

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

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

Дополнительные сведения о том, как рассчитать экономию, см. здесь.

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

Вы обучили модель обнаружения объектов с помощью задания обучения сервиса Amazon SageMaker на спотовых инстансах EC2. Теперь вы готовы интегрировать спотовые инстансы в свои задания обучения Amazon SageMaker и приступить к оптимизации рабочих нагрузок, связанных с машинным обучением, чтобы уменьшить расходы и повысить производительность.

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

Использование управляемого спотового обучения в сервисе Amazon SageMaker

Теперь, когда вы научились использовать спотовые инстансы EC2 с сервисом Amazon SageMaker, вы готовы реализовывать управляемое спотовое обучение и следовать другим рекомендациям, чтобы оптимизировать свои рабочие нагрузки. Если вы хотите продолжить обучение, рекомендуем перейти к размещенным здесь семинарам для самостоятельного изучения.

Ознакомьтесь с документацией

Узнайте о функциях и возможностях управляемого спотового обучения Amazon SageMaker, прочитав руководство по управляемому спотовому обучению в сервисе Amazon SageMaker.

Изучите спотовые инстансы Amazon EC2

Если вам необходимы дополнительные сведения о спотовых инстансах Amazon EC2, изучите документацию, видеоролики, блоги и многое другое на странице спотовых инстансов Amazon EC2.