Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

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

Останнім часом Студія Amazon SageMaker запустив простий спосіб запускати блокноти як пакетні завдання, які можна виконувати за регулярним розкладом. Amazon SageMaker Studio Lab також підтримує цю функцію, дозволяючи вам запускати блокноти, які ви розробляєте в SageMaker Studio Lab, у вашому обліковому записі AWS. Це дає змогу швидко масштабувати експерименти машинного навчання (ML) із більшими наборами даних і потужнішими примірниками, не вивчаючи нічого нового чи змінюючи один рядок коду.

У цій публікації ми ознайомимо вас із одноразовою передумовою для підключення середовища 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. Select SageMaker – Виконання.
  6. Вибирати МАЙБУТНІ.
  7. Перегляньте дозволи та виберіть МАЙБУТНІ.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  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. Вибирати Далі: Дозволи.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  6. Вибирати Додайте наявні політики безпосередньо.
  7. Знайдіть і виберіть AmazonSageMakerFullAccess.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  8. Знайдіть і виберіть AmazonEventBridgeFullAccess.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  9. Вибирати Далі: Теги.
  10. Вибирати Далі: Огляд.
  11. Підтвердьте свою політику, а потім виберіть Створити користувача.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Остання сторінка процесу створення користувача має показати вам ключі доступу користувача. Залиште цю вкладку відкритою, оскільки ми не можемо повернутися сюди, і нам потрібні ці деталі.
  12. Відкрийте нову вкладку браузера в Studio Lab.
  13. на філе меню, виберіть Новий запуск, Потім виберіть термінал.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
  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

Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Наш блокнот створить навчену модель PyTorch. За допомогою нашого звичайного коду ми зберігаємо модель у файловій системі в Studio Labs.

Коли ми виконуємо це завдання як блокнот, нам потрібно зберегти модель десь, де ми зможемо отримати до неї доступ пізніше. Найпростіший спосіб зробити це — зберегти модель в Amazon S3. Ми створили відро S3, щоб зберегти наші моделі, і використали іншу комірку командного рядка, щоб скопіювати об’єкт у відро.

Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми використовуємо Інтерфейс командного рядка AWS (AWS CLI), щоб скопіювати об’єкт. Ми також могли б використати AWS SDK для Python (Boto3) якщо ми хочемо мати більш складний або автоматизований контроль імені файлу. Наразі ми переконаємося, що ми змінюємо ім’я файлу кожного разу, коли запускаємо блокнот, щоб моделі не перезаписувалися.

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

  1. Виберіть (клацніть правою кнопкою миші) назву блокнота, а потім виберіть Створити завдання з блокнота.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.
    Якщо цей пункт меню відсутній, вам може знадобитися оновити середовище Studio Lab. Для цього відкрийте термінал із панелі запуску та запустіть такий код:
    conda deactivate && conda env remove —name studiolab

  2. Потім перезапустіть екземпляр JupyterLab, вибравши Amazon SageMaker Studio Lab у верхньому меню, а потім виберіть Перезапустіть JupyterLabАбо перейдіть на сторінку проекту, вимкніть і перезапустіть середовище виконання.
  3. на Створити роботу сторінка, для Тип обчисленьвиберіть тип обчислення, який підходить для вашої роботи.

    Додаткову інформацію про різні типи обчислювальної потужності, включаючи вартість, див Ціни на Amazon SageMaker (виберіть Ціни на вимогу і перейдіть до пункту Навчання вкладка. Вам також може знадобитися перевірити доступність квоти типу обчислень у вашому обліковому записі AWS. Додаткову інформацію про квоти на обслуговування див. Квоти обслуговування AWS.Для цього прикладу ми вибрали екземпляр ml.p3.2xlarge, який пропонує 8 vCPU, 61 ГБ пам’яті та графічний процесор Tesla V100.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

    Якщо на цій сторінці немає попереджень, будьте готові до роботи. Якщо є попередження, перевірте, чи вказано правильну роль ARN Додаткові опції. Ця роль має відповідати ARN ролі виконання SageMaker, яку ми створили раніше. ARN має формат arn:aws:iam::[account-number]:role/service-role/[role-name].

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

  4. Якщо ви хочете запустити цей блокнот за розкладом, виберіть Бігайте за розкладом і вкажіть, як часто ви хочете виконувати завдання.Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Ми хочемо, щоб цей блокнот запускався один раз, тому ми вибираємо Біжи зараз.
  5. Вибирати Створювати.
    Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Список завдань блокнота

Команда Зошит Роботи на сторінці перераховані всі завдання, що виконуються зараз, і ті, що виконувалися в минулому. Ви можете знайти цей список у панелі запуску (виберіть, філе, Новий запуск), потім виберіть Зошит Роботи в Інше .

Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

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

Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

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

Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

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

Висновок

У цьому дописі ми показали, як використовувати завдання блокнота Studio Lab, щоб масштабувати код, розроблений нами в Studio Lab, і запускати його з додатковими ресурсами в обліковому записі AWS.

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

Ця додаткова можливість Studio Lab знімає межі видів і розмірів проектів, які ви можете досягти. Повідомте нам, що ви створюєте за допомогою цієї нової можливості!


Про авторів

Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Майк Чемберс є захисником розробників штучного інтелекту та машинного навчання в AWS. Останні 7 років він допомагав розробникам вивчати хмару, безпеку та машинне навчання. Родом із Великобританії, Майк — пристрасний любитель чаю та конструктор Lego.

Запускайте блокноти як пакетні завдання в Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Мішель Монклова є головним менеджером із продуктів в AWS у команді SageMaker. Вона корінна жителька Нью-Йорка та ветеран Кремнієвої долини. Вона захоплена інноваціями, які покращують якість нашого життя.

Часова мітка:

Більше від AWS Машинне навчання