Трубопроводи Amazon SageMaker це повністю керований сервіс AWS для створення та оркестрування робочих процесів машинного навчання (ML). SageMaker Pipelines пропонує розробникам додатків ML можливість організовувати різні етапи робочого процесу ML, включаючи завантаження даних, перетворення даних, навчання, налаштування та розгортання. Ви можете використовувати SageMaker Pipelines для оркестрування завдань машинного навчання в SageMaker і його інтеграція з більшою екосистемою AWS також дозволяє використовувати такі ресурси, як AWS Lambda функції, Amazon EMR робочі місця тощо. Це дає змогу створювати налаштований і відтворюваний конвеєр для конкретних вимог у ваших робочих процесах машинного навчання.
У цій публікації ми надаємо деякі найкращі практики, щоб максимізувати цінність SageMaker Pipelines і зробити процес розробки бездоганним. Ми також обговорюємо деякі загальні сценарії та шаблони проектування під час створення конвеєрів SageMaker і надаємо приклади їх вирішення.
Найкращі практики для SageMaker Pipelines
У цьому розділі ми обговорюємо деякі найкращі практики, яких можна дотримуватися під час проектування робочих процесів за допомогою конвеєрів SageMaker. Їх застосування може покращити процес розробки та оптимізувати операційне керування SageMaker Pipelines.
Використовуйте Pipeline Session для відкладеного завантаження конвеєра
Конвеєрна сесія дозволяє відкладену ініціалізацію ресурсів конвеєра (завдання не запускаються до моменту виконання конвеєра). The PipelineSession
контекст успадковує Сесія SageMaker і реалізує зручні методи для взаємодії з іншими об’єктами та ресурсами SageMaker, такими як навчальні завдання, кінцеві точки, вхідні набори даних у Служба простого зберігання Amazon (Amazon S3) і так далі. Визначаючи конвеєри SageMaker, слід використовувати PipelineSession
протягом звичайної сесії SageMaker:
Запускайте конвеєри в локальному режимі для економічно ефективних і швидких ітерацій під час розробки
Ви можете запустити трубопроводу в локальному режимі використання LocalPipelineSession
контекст. У цьому режимі конвеєр і завдання виконуються локально, використовуючи ресурси на локальній машині, замість ресурсів, керованих SageMaker. Локальний режим забезпечує економічно ефективний спосіб ітерації коду конвеєра з меншою підмножиною даних. Після локального тестування конвеєра його можна масштабувати для запуску за допомогою PipelineSession контексті.
Керуйте конвеєром SageMaker через версії
Версійність артефактів і визначень конвеєрів є загальною вимогою життєвого циклу розробки. Ви можете створити кілька версій конвеєра, назвавши об’єкти конвеєра унікальним префіксом або суфіксом, найпоширенішим з яких є позначка часу, як показано в наступному коді:
Організуйте та відстежуйте конвеєрні роботи SageMaker за допомогою інтеграції з SageMaker Experiments
SageMaker Pipelines можна легко інтегрувати Експерименти SageMaker для організації та відстеження прогонів трубопроводів. Це досягається специфікацією PipelineExperimentConfig на момент створення a об'єкт трубопроводу. За допомогою цього об’єкта конфігурації можна вказати назву експерименту та назву випробування. Деталі виконання конвеєра SageMaker організовуються відповідно до вказаного експерименту та випробування. Якщо ви явно не вказуєте назву експерименту, для назви експерименту використовується назва конвеєра. Подібним чином, якщо ви явно не вкажете ім’я пробної версії, для назви пробної групи або назви групи запуску використовується ідентифікатор конвеєрного циклу. Перегляньте наступний код:
Безпечно запускайте конвеєри SageMaker у приватному VPC
Щоб убезпечити робочі навантаження ML, найкращою практикою є розгортання завдань, організованих SageMaker Pipelines, у безпечній мережевій конфігурації в межах приватного VPC, приватних підмереж і груп безпеки. Щоб забезпечити та забезпечити використання цього безпечного середовища, ви можете реалізувати наступне Управління ідентифікацією та доступом AWS (IAM) політика для Роль виконання SageMaker (це роль, яку виконує конвеєр під час його роботи). Ви також можете додати політику для запуску завдань, організованих SageMaker Pipelines, у режимі ізоляції мережі.
Для прикладу впровадження конвеєра з цими засобами контролю безпеки див Організація завдань, реєстрація моделі та безперервне розгортання за допомогою Amazon SageMaker у безпечному середовищі.
Відстежуйте вартість конвеєрів за допомогою тегів
Використання самих конвеєрів SageMaker безкоштовне; ви платите за обчислювальні ресурси та ресурси зберігання, які ви використовуєте в рамках окремих етапів конвеєра, таких як обробка, навчання та пакетний аналіз. Щоб агрегувати витрати на прогін трубопроводу, ви можете включити теги на кожному кроці конвеєра, який створює ресурс. Потім на ці теги можна посилатися в провіднику витрат, щоб відфільтрувати та агрегувати загальну вартість роботи конвеєра, як показано в наступному прикладі:
У провіднику витрат тепер можна отримати вартість, відфільтровану за тегом:
Шаблони проектування для деяких типових сценаріїв
У цьому розділі ми обговорюємо шаблони проектування для деяких типових випадків використання конвеєрів SageMaker.
Запустіть легку функцію Python за допомогою кроку Lambda
Функції Python повсюдно присутні в робочих процесах ML; вони використовуються в попередній обробці, постобробці, оцінці тощо. Lambda — це безсерверний обчислювальний сервіс, який дозволяє запускати код без підготовки та керування серверами. За допомогою Lambda ви можете запускати код на бажаній мові, яка включає Python. Ви можете використовувати це для запуску спеціального коду Python як частини вашого конвеєра. Крок Лямбда дозволяє запускати функції Lambda як частину конвеєра SageMaker. Почніть із наступного коду:
Створіть лямбда-функцію за допомогою Помічник лямбда SageMaker Python SDK:
Виклик кроку Лямбда:
Передача даних між кроками
Вхідними даними для кроку конвеєра є або доступне розташування даних, або дані, згенеровані одним із попередніх кроків конвеєра. Ви можете надати цю інформацію як a ProcessingInput
параметр. Давайте розглянемо кілька сценаріїв використання ProcessingInput.
Сценарій 1: передати вихідні дані (примітивні типи даних) лямбда-кроку до етапу обробки
Примітивні типи даних відносяться до скалярних типів даних, таких як рядок, ціле число, логічний і плаваючий.
Наступний фрагмент коду визначає функцію Lambda, яка повертає словник змінних із простими типами даних. Ваш код функції Lambda поверне JSON пар ключ-значення під час виклику з кроку Lambda в конвеєрі SageMaker.
У визначенні конвеєра ви можете визначити параметри конвеєра SageMaker, які належать до певного типу даних, і встановити змінну на вивід функції Lambda:
Сценарій 2: передайте вихідні дані (непримітивні типи даних) лямбда-кроку на етап обробки
Непримітивні типи даних стосуються нескалярних типів даних (наприклад, NamedTuple
). У вас може виникнути сценарій, коли вам доведеться повернути непримітивний тип даних із функції лямбда. Для цього вам потрібно перетворити ваш непримітивний тип даних на рядок:
Потім ви можете використовувати цей рядок як вхідні дані для наступного кроку в конвеєрі. Щоб використати названий кортеж у коді, використовуйте eval()
щоб розібрати вираз Python у рядку:
Сценарій 3: передайте вихідні дані кроку через файл властивостей
Ви також можете зберігати вихідні дані кроку обробки в a файл властивостей JSON для подальшого споживання в a ConditionStep
або інший ProcessingStep
. Ви можете використовувати Функція JSONGet запитувати a файл властивостей. Дивіться наступний код:
Припустімо, що вміст файлу властивостей такий:
У цьому випадку його можна запитати для певного значення та використовувати на наступних кроках за допомогою функції JsonGet:
Параметризуйте змінну у визначенні конвеєра
Часто бажано параметризувати змінні, щоб їх можна було використовувати під час виконання, наприклад, для створення S3 URI. Ви можете параметризувати рядок так, щоб він оцінювався під час виконання за допомогою Join
функція. У наступному фрагменті коду показано, як визначити змінну за допомогою Join
і використовуйте її, щоб установити місце виведення на етапі обробки:
Запустіть паралельний код над iterable
Деякі робочі процеси ML виконують код у паралельних циклах for над статичним набором елементів (an ітерабельний). Це може бути один і той самий код, який виконується на різних даних, або інший фрагмент коду, який потрібно запускати для кожного елемента. Наприклад, якщо у вас дуже велика кількість рядків у файлі і ви хочете пришвидшити час обробки, ви можете покластися на попередній шаблон. Якщо ви хочете виконати різні перетворення для певних підгруп у даних, вам, можливо, доведеться запустити окремий фрагмент коду для кожної підгрупи в даних. Наступні два сценарії ілюструють, як ви можете розробити конвеєри SageMaker для цієї мети.
Сценарій 1: реалізуйте логіку обробки різних частин даних
Ви можете запустити завдання обробки з кількома екземплярами (встановивши instance_count
до значення, більшого за 1). Це розподіляє вхідні дані з Amazon S3 на всі екземпляри обробки. Потім ви можете використовувати сценарій (process.py) для роботи з певною частиною даних на основі номера екземпляра та відповідного елемента в списку елементів. Логіку програмування в process.py можна записати таким чином, щоб інший модуль або фрагмент коду запускався залежно від списку елементів, які він обробляє. У наступному прикладі визначено процесор, який можна використовувати в ProcessingStep:
Сценарій 2. Виконайте послідовність кроків
Якщо у вас є послідовність кроків, які потрібно виконати паралельно, ви можете визначити кожну послідовність як незалежний конвеєр SageMaker. Потім запуск цих конвеєрів SageMaker можна запустити з функції Lambda, яка є частиною LambdaStep
у батьківському конвеєрі. Наступний фрагмент коду ілюструє сценарій, у якому запускаються два різні конвеєри SageMaker:
Висновок
У цій публікації ми обговорили деякі найкращі методи ефективного використання та обслуговування конвеєрів SageMaker. Ми також надали певні шаблони, які ви можете прийняти під час проектування робочих процесів за допомогою конвеєрів SageMaker, незалежно від того, створюєте ви нові конвеєри чи переміщуєте робочі процеси ML з інших інструментів оркестровки. Щоб розпочати роботу з SageMaker Pipelines для оркестровки робочого процесу ML, див зразки коду на GitHub та Трубопроводи для створення моделей Amazon SageMaker.
Про авторів
Pinak Panigrahi працює з клієнтами над створенням рішень на основі машинного навчання для вирішення стратегічних бізнес-завдань на AWS. Коли він не займається машинним навчанням, його можна знайти в поході, читанні книги або перегляді спортивних змагань.
Мінакшісундарам Тандавараян працює в AWS спеціалістом зі штучного інтелекту та машинного навчання. Він має пристрасть до проектування, створення та просування орієнтованих на людину даних і аналітики. Meena зосереджується на розробці стійких систем, які забезпечують вимірні конкурентні переваги для стратегічних клієнтів AWS. Міна — спеціаліст, який мислить у сфері дизайну та прагне підштовхнути бізнес до нових способів роботи через інновації, інкубацію та демократизацію.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- ChartPrime. Розвивайте свою торгову гру за допомогою ChartPrime. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/best-practices-and-design-patterns-for-building-machine-learning-workflows-with-amazon-sagemaker-pipelines/
- : має
- :є
- : ні
- :де
- $UP
- 1
- 100
- 11
- 13
- 15%
- 150
- 16
- 17
- 19
- 20
- 22
- 28
- 7
- 8
- 9
- a
- здатність
- доступ
- доступною
- досягнутий
- дію
- додавати
- адресація
- прийняти
- Прийняття
- Переваги
- після
- сукупність
- ВСІ
- дозволяє
- Також
- Amazon
- Amazon SageMaker
- Трубопроводи Amazon SageMaker
- Amazon Web Services
- an
- аналітика
- та
- Інший
- API
- додаток
- відповідний
- ЕСТЬ
- AS
- припустити
- передбачається
- At
- авторство
- доступний
- AWS
- заснований
- BE
- буття
- КРАЩЕ
- передового досвіду
- між
- книга
- будувати
- Створюємо
- бізнес
- by
- CAN
- випадок
- випадків
- певний
- клієнт
- код
- Колекції
- загальний
- конкурентоспроможний
- обчислення
- стан
- конфігурація
- будувати
- споживання
- зміст
- контекст
- безперервний
- управління
- Зручний
- конвертувати
- Відповідний
- Коштувати
- рентабельним
- витрати
- створювати
- створює
- створення
- виготовлений на замовлення
- Клієнти
- налаштувати
- дані
- набори даних
- розшифровувати
- визначати
- Визначає
- визначаючи
- визначення
- Визначення
- доставляти
- демократизація
- Залежно
- розгортання
- розгортання
- дизайн
- шаблони дизайну
- проектування
- деталі
- розробників
- розвивається
- розробка
- різний
- розміри
- обговорювати
- обговорювалися
- do
- Не знаю
- управляти
- керований
- під час
- кожен
- легко
- ефект
- ефективний
- або
- елемент
- дозволяє
- кінець
- примусове виконання
- забезпечувати
- юридичні особи
- Навколишнє середовище
- оцінюється
- оцінка
- Event
- Кожен
- приклад
- Приклади
- виконання
- досвід
- Досліди
- експеримент
- дослідник
- вираз
- витяг
- кілька
- філе
- фільтрувати
- Поплавок
- потім
- після
- для
- Колишній
- знайдений
- Безкоштовна
- від
- повністю
- функція
- Функції
- генерується
- отримати
- великий
- Group
- Групи
- Мати
- he
- Похід
- Як
- How To
- HTML
- HTTP
- HTTPS
- ID
- Особистість
- if
- ілюструє
- здійснювати
- реалізація
- implements
- імпорт
- удосконалювати
- in
- включати
- includes
- У тому числі
- ІНКУБАЦІЯ
- незалежний
- індивідуальний
- інформація
- інновація
- вхід
- екземпляр
- замість
- інтегрований
- Інтеграція
- взаємодіючих
- в
- викликали
- ізоляція
- IT
- пунктів
- ітерації
- ЙОГО
- сам
- робота
- Джобс
- json
- ключ
- мова
- великий
- більше
- вивчення
- дозволяє
- Життєвий цикл
- легкий
- як
- список
- погрузка
- місцевий
- локально
- розташування
- логіка
- подивитися
- машина
- навчання за допомогою машини
- обслуговування
- зробити
- вдалося
- управління
- управління
- Максимізувати
- Може..
- методика
- може бути
- мігруючи
- ML
- режим
- модель
- Модулі
- щомісячно
- більше
- найбільш
- множинний
- ім'я
- Названий
- іменування
- Необхідність
- потреби
- мережу
- Нові
- зараз
- номер
- об'єкт
- об'єкти
- отримувати
- of
- Пропозиції
- часто
- on
- ONE
- оперативний
- or
- організував
- оркестровка
- Організований
- організація
- Інше
- вихід
- над
- пар
- Паралельні
- параметр
- параметри
- частина
- проходити
- пристрасть
- Викрійки
- моделі
- Платити
- для
- Виконувати
- частина
- трубопровід
- місце
- plato
- Інформація про дані Платона
- PlatoData
- політика
- частина
- пошта
- практика
- практики
- переважним
- попередній
- примітивний
- приватний
- проблеми
- процес
- процеси
- обробка
- процесор
- Програмування
- сприяти
- властивості
- власність
- забезпечувати
- за умови
- забезпечує
- мета
- Python
- Швидко
- читання
- послатися
- Реєстрація
- регулярний
- покладатися
- вимога
- Вимога
- ресурс
- ресурси
- відповідь
- повертати
- повернення
- Умови повернення
- Роль
- прогін
- пробіжки
- s
- мудрець
- Трубопроводи SageMaker
- то ж
- сценарій
- сценарії
- сценарій
- безшовні
- розділ
- безпечний
- безпеку
- побачити
- Послідовність
- Без сервера
- Сервери
- обслуговування
- Послуги
- Сесія
- комплект
- установка
- Повинен
- показаний
- Шоу
- Аналогічно
- простий
- менше
- уривок
- So
- Рішення
- ВИРІШИТИ
- деякі
- спеціаліст
- конкретний
- зазначений
- швидкість
- Спін
- SPORTS
- старт
- почалася
- Заява
- Крок
- заходи
- зберігання
- зберігати
- Стратегічний
- стратегічний бізнес
- раціоналізувати
- рядок
- прагне
- структура
- підмережі
- наступні
- такі
- сталого
- Systems
- TAG
- взяття
- перевірений
- ніж
- Що
- Команда
- Їх
- потім
- Там.
- Ці
- вони
- мислитель
- це
- через
- час
- відмітка часу
- до
- інструменти
- Усього:
- трек
- поїзд
- Навчання
- Перетворення
- перетворень
- суд
- викликати
- спрацьовує
- правда
- два
- тип
- Типи
- при
- створеного
- до
- Використання
- використання
- використовуваний
- використовує
- використання
- значення
- Цінності
- змінна
- версія
- версії
- дуже
- хотіти
- спостереження
- шлях..
- способи
- we
- Web
- веб-сервіси
- були
- коли
- Чи
- в той час як
- волі
- з
- в
- без
- Work
- робочий
- Робочі процеси
- робочий
- працює
- світ
- письмовий
- Ти
- вашу
- зефірнет