Логотип Зефирнет

Запускайте блокноты как пакетные задания в Amazon SageMaker Studio Lab.

Дата:

В последнее время Студия Amazon SageMaker запустили простой способ запуска блокнотов как пакетных заданий, которые могут выполняться по повторяющемуся расписанию. Лаборатория студии Amazon SageMaker также поддерживает эту функцию, позволяя вам запускать записные книжки, разработанные в SageMaker Studio Lab, в вашей учетной записи AWS. Это позволяет быстро масштабировать эксперименты по машинному обучению (МО) с большими наборами данных и более мощными экземплярами без необходимости изучать что-то новое или изменять одну строку кода.

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

Обзор решения

Studio Lab включает в себя то же расширение, что и Studio, основанное на расширении Jupyter с открытым исходным кодом для запланированные блокноты. Это расширение имеет дополнительные параметры, специфичные для AWS, такие как тип вычислений. В Studio Lab запланированная записная книжка сначала копируется в Простой сервис хранения Amazon (Amazon S3) в своей учетной записи AWS, а затем запустите в запланированное время с выбранным типом вычислений. Когда задание завершено, выходные данные записываются в корзину S3, а вычислительные ресурсы AWS полностью останавливаются, что предотвращает текущие расходы.

Предпосылки

Чтобы использовать задания для ноутбуков Studio Lab, вам необходим административный доступ к учетной записи AWS, к которой вы собираетесь подключиться (или помощь от кого-то с таким доступом). В оставшейся части этого сообщения мы предполагаем, что вы являетесь администратором AWS. Если это не так, попросите своего администратора или владельца учетной записи просмотреть эти шаги вместе с вами.

Создание роли исполнения SageMaker

Нам необходимо убедиться, что учетная запись AWS имеет Управление идентификацией и доступом AWS (IAM) Роль выполнения SageMaker. Эта роль используется ресурсами SageMaker в учетной записи и обеспечивает доступ из SageMaker к другим ресурсам в учетной записи AWS. В нашем случае задания для ноутбуков выполняются с этими разрешениями. Если ранее в этой учетной записи использовался SageMaker, возможно, роль уже существует, но у нее могут не быть всех необходимых разрешений. Итак, давайте продолжим и создадим новый.

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

  1. На консоли IAM выберите роли в навигационной панели.
  2. Выберите Создать роль.
  3. Что касается Тип доверенной сущности, наведите на Сервис AWS.
  4. Что касается Примеры использования других сервисов AWS, выберите SageMaker.
  5. Выберите SageMaker — Исполнение.
  6. Выберите Следующая.
  7. Проверьте разрешения, затем выберите Следующая.
  8. Что касается Название роливведите имя (для этого сообщения мы используем sagemaker-execution-role-notebook-jobs).
  9. Выберите Создать роль.
  10. Запишите роль ARN.

Роль ARN будет в формате arn:aws:iam::[account-number]:role/service-role/[role-name] и требуется в настройках Studio Lab.

Создать пользователя IAM

Чтобы среда Studio Lab могла получить доступ к AWS, нам нужно создать пользователя IAM в AWS и предоставить ему необходимые разрешения. Затем нам нужно создать набор ключей доступа для этого пользователя и предоставить их среде Studio Lab.

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

Обратите внимание, что администраторы и владельцы учетных записей AWS должны обеспечить максимально возможное соблюдение продуманных методов обеспечения безопасности. Например, права доступа пользователей должны всегда ограничиваться, а ключи доступа следует регулярно менять, чтобы свести к минимуму влияние компрометации учетных данных.

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

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

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

  1. На консоли IAM выберите Пользователи в навигационной панели.
  2. Выберите Добавить пользователей.
  3. Что касается , введите имя. Рекомендуется использовать имя, связанное с отдельным лицом, которое будет использовать эту учетную запись; это помогает при просмотре журналов аудита.
  4. Что касается Выберите тип доступа AWS, наведите на Ключ доступа — программный доступ.
  5. Выберите Далее: разрешения.
  6. Выберите Прикрепить существующие политики напрямую.
  7. Найдите и выберите AmazonSageMakerFullAccess.
  8. Найдите и выберите AmazonEventBridgeFullAccess.
  9. Выберите Далее: Теги.
  10. Выберите Далее: Обзор.
  11. Подтвердите свои правила, затем выберите Создать пользователя.На последней странице процесса создания пользователя должны быть показаны ключи доступа пользователя. Оставьте эту вкладку открытой, потому что мы не можем вернуться сюда, и нам нужны эти данные.
  12. Откройте новую вкладку браузера в Studio Lab.
  13. На Файл Меню, выберите Новый Launcher, а затем выберите Терминал.
  14. В командной строке введите следующий код:
    aws configure

  15. Введите следующий код:
    1. Введите значения со страницы консоли IAM для идентификатора ключа доступа и секретного ключа доступа.
    2. Что касается Default region name, войти us-west-2.
    3. Оставлять Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: (studiolab) studio-lab-user@default:~$

Поздравляем, теперь ваша среда Studio Lab должна быть настроена для доступа к учетной записи AWS. Чтобы проверить соединение, введите следующую команду:

aws sts get-caller-identity

Эта команда должна возвращать сведения о пользователе IAM, которого вы настроили для использования.

Создание задания блокнота

Задания для блокнотов создаются с использованием блокнотов Jupyter в Studio Lab. Если ваш блокнот работает в Studio Lab, он может выполняться как задание блокнота (с дополнительными ресурсами и доступом к сервисам AWS). Тем не менее, есть несколько вещей, на которые стоит обратить внимание.

Если вы установили пакеты для работы записной книжки, добавьте команды для загрузки этих пакетов в ячейку в верхней части записной книжки. При использовании символа & в начале каждой строки код будет отправлен в командную строку для запуска. В следующем примере первая ячейка использует pip для установки библиотек PyTorch:

%%capture
%pip install torch
%pip install torchvision

Наш блокнот сгенерирует обученную модель PyTorch. С помощью нашего обычного кода мы сохраняем модель в файловую систему Studio Labs.

Когда мы запускаем это как задание для ноутбука, нам нужно сохранить модель где-нибудь, чтобы мы могли получить к ней доступ впоследствии. Самый простой способ сделать это — сохранить модель в Amazon S3. Мы создали корзину S3 для сохранения наших моделей и использовали другую ячейку командной строки для копирования объекта в корзину.

Мы используем Интерфейс командной строки AWS (AWS CLI), чтобы скопировать объект. Мы также могли бы использовать AWS SDK для Python (Boto3) если бы мы хотели иметь более сложный или автоматизированный контроль над именем файла. На данный момент мы обеспечим изменение имени файла при каждом запуске блокнота, чтобы модели не перезаписывались.

Теперь мы готовы создать задание блокнота.

  1. Выберите (щелкните правой кнопкой мыши) имя записной книжки, затем выберите Создать задание для ноутбука.
    Если этот пункт меню отсутствует, вам может потребоваться обновить среду Studio Lab. Для этого откройте Терминал из лаунчера и запустите следующий код:
    conda deactivate && conda env remove —name studiolab

  2. Затем перезапустите экземпляр JupyterLab, выбрав Лаборатория студии Amazon SageMaker в верхнем меню, затем выберите Перезапустите JupyterLab.В качестве альтернативы перейдите на страницу проекта, закройте и перезапустите среду выполнения.
  3. На Создать работу страница, для Тип вычисления, выберите тип вычислений, который подходит для вашей работы.

    Дополнительные сведения о различных типах вычислительной мощности, включая стоимость, см. Цены на Amazon SageMaker (выбирать Цены по запросу и перейдите в Обучение вкладка Вам также может потребоваться проверить доступность квоты для типа вычислений в вашей учетной записи AWS. Дополнительные сведения о квотах на услуги см. в следующих разделах: Сервисные квоты AWS.Для этого примера мы выбрали инстанс ml.p3.2xlarge, который предлагает 8 виртуальных ЦП, 61 ГБ памяти и графический процессор Tesla V100.

    Если на этой странице нет предупреждений, вы должны быть готовы к работе. Если есть предупреждения, проверьте, правильно ли указана роль ARN в Дополнительные опции. Эта роль должна соответствовать ARN роли исполнения SageMaker, которую мы создали ранее. ARN имеет формат arn:aws:iam::[account-number]:role/service-role/[role-name].

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

  4. Если вы хотите запускать эту записную книжку по расписанию, выберите Работайте по расписанию и укажите, как часто вы хотите запускать задание.Мы хотим, чтобы этот блокнот запускался один раз, поэтому мы выбираем Беги сейчас.
  5. Выберите Создавай.

Список заданий для ноутбуков

Ассоциация Работа с ноутбуком На странице перечислены все задания, которые выполняются в настоящее время, а также те, которые выполнялись в прошлом. Вы можете найти этот список в Launcher (выберите, Файл, Новый Launcher), тогда выбирай Работа с ноутбуком в Другие контрактные услуги .

Когда работа с блокнотом будет завершена, вы увидите, что статус изменился на Completed (использовать перезагружать вариант при необходимости). Затем вы можете выбрать значок загрузки, чтобы получить доступ к выходным файлам.

После загрузки файлов вы можете просмотреть блокнот вместе с выводом кода и журналом вывода. В нашем случае, поскольку мы добавили код для определения времени выполнения обучающей ячейки, мы можем видеть, сколько времени заняло задание обучения — 16 минут 21 секунда, что намного быстрее, чем если бы код выполнялся внутри Studio Lab (1 час). , 38 минут 55 секунд). Фактически, весь ноутбук работал за 1,231 секунду (чуть более 20 минут) при стоимости менее 1.30 доллара США.

Теперь W может увеличить количество эпох и настроить гиперпараметры, чтобы улучшить значение потерь модели, и отправить еще одно задание блокнота.

Заключение

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

Добавляя учетные данные AWS в нашу среду Studio Lab, мы можем не только получать доступ к заданиям ноутбуков, но и получать доступ к другим ресурсам из учетной записи AWS прямо из наших ноутбуков Studio Lab. Взгляните на AWS SDK для Python.

Эта дополнительная возможность Studio Lab расширяет границы типов и размеров проектов, которые вы можете реализовать. Дайте нам знать, что вы создадите с помощью этой новой возможности!


Об авторах

Майк Чемберс является защитником разработчиков в области искусственного интеллекта и машинного обучения в AWS. Последние 7 лет он помогал разработчикам изучать облачные технологии, безопасность и машинное обучение. Родом из Великобритании, Майк страстный любитель чая и конструктор Lego.

Мишель Монклова является главным менеджером по продуктам в AWS в команде SageMaker. Она коренная жительница Нью-Йорка и ветеран Силиконовой долины. Она увлечена инновациями, которые улучшают качество нашей жизни.

Spot_img

Последняя разведка

Spot_img

Чат с нами

Всем привет! Могу я чем-нибудь помочь?