Трубопроводи Amazon SageMaker дає змогу спеціалістам із обробки даних та інженерам з машинного навчання (ML) автоматизувати робочі процеси навчання, що допомагає створити повторюваний процес для оркестрування етапів розробки моделі для швидкого експериментування та перенавчання моделі. Ви можете автоматизувати весь робочий процес побудови моделі, включаючи підготовку даних, розробку функцій, навчання моделі, налаштування моделі та перевірку моделі, а також каталогізувати це в реєстрі моделей. Ви можете налаштувати конвеєри на автоматичний запуск через регулярні проміжки часу або коли спрацьовують певні події, або ви можете запустити їх вручну за потреби.
У цій публікації ми висвітлюємо деякі вдосконалення в Amazon SageMaker SDK і представити нові функції Amazon SageMaker Pipelines, які спрощують для практиків ML створення та навчання моделей ML.
Pipelines продовжує вдосконалювати свій досвід розробників, і з цими останніми випусками тепер ви можете використовувати службу в більш персоналізований спосіб:
- 2.99.0, 2.101.1, 2.102.0, 2.104.0 – Оновлена документація по
PipelineVariable
використання для оцінювачів, процесорів, тюнерів, трансформаторів і базових класів моделей, моделей Amazon і каркасних моделей. З новими версіями SDK будуть внесені додаткові зміни для підтримки всіх підкласів оцінювачів і процесорів. - 2.90.0 – Наявність ModelStep для створення і реєстрації ресурсу інтегрованої моделі.
- 2.88.2 – Наявність PipelineSession для керованої взаємодії з об’єктами та ресурсами SageMaker.
- 2.88.2 – Сумісність підкласів для етапи роботи конвеєра робочого процесу тож ви можете створювати абстракції завдань, налаштовувати та запускати завдання обробки, навчання, трансформації та налаштування, як без конвеєра.
- 2.76.0 – Наявність FailStep для умовної зупинки трубопроводу зі статусом відмови.
У цій публікації ми проведемо вас через робочий процес, використовуючи зразок набору даних з акцентом на створення та розгортання моделі, щоб продемонструвати, як реалізувати нові функції Pipelines. Зрештою, ви маєте мати достатньо інформації, щоб успішно використовувати ці новіші функції та спростити робочі навантаження ML.
Огляд функцій
Pipelines пропонує такі нові функції:
- Анотація змінної конвеєра – Певні параметри методу приймають кілька типів введення, включно з
PipelineVariables
, а також додано додаткову документацію, щоб уточнити, деPipelineVariables
підтримуються як в останній стабільній версії документації SageMaker SDK, так і в сигнатурі ініціалізації функцій. Наприклад, у наведеному нижче інструменті оцінки TensorFlow сигнатура ініціалізації тепер показує цеmodel_dir
таimage_uri
підтримкаPipelineVariables
, тоді як інші параметри ні. Для отримання додаткової інформації див Оцінювач TensorFlow.- До:
- Після:
- Конвеєрний сеанс - PipelineSession це нова концепція, представлена для забезпечення єдності в SageMaker SDK і впроваджує відкладену ініціалізацію ресурсів конвеєра (виклики запуску захоплюються, але не запускаються, доки конвеєр не буде створено та запущено). The
PipelineSession
контекст успадковуєSageMakerSession
і реалізує зручні методи для взаємодії з іншими об’єктами та ресурсами SageMaker, такими як навчальні завдання, кінцеві точки та набори вхідних даних, що зберігаються в Служба простого зберігання Amazon (Amazon S3). - Сумісність підкласу з етапами роботи конвеєра робочого процесу – Тепер ви можете створювати абстракції завдань, а також налаштовувати та запускати завдання обробки, навчання, трансформації та налаштування, як без конвеєра.
- Наприклад, створення кроку обробки з
SKLearnProcessor
раніше вимагалося наступне: - Як ми бачимо в попередньому коді,
ProcessingStep
потрібно виконати в основному ту саму логіку попередньої обробки, що й.run
, лише не ініціюючи виклик API для запуску завдання. Але завдяки сумісності підкласів із кроками роботи конвеєра робочого процесу, ми оголошуємоstep_args
аргумент, який використовує логіку попередньої обробки з .run, щоб ви могли створити абстракцію завдання та налаштувати її так, як ви використовували б без конвеєрів. Ми також проходимо вpipeline_session
, Який представляє собоюPipelineSession
об'єкт, замістьsagemaker_session
щоб переконатися, що виклики запуску захоплюються, але не викликаються, доки не буде створено та запущено конвеєр. Перегляньте наступний код:
- Наприклад, створення кроку обробки з
- Крок моделі (спрощений підхід із етапами створення та реєстрації моделі) – Pipelines пропонує два типи кроків для інтеграції з моделями SageMaker:
CreateModelStep
таRegisterModel
. Тепер ви можете досягти обох, використовуючи лишеModelStep
типу. Зверніть увагу, що aPipelineSession
щоб досягти цього. Це забезпечує подібність між етапами конвеєра та SDK.- До:
-
- Після:
- Крок відмови (умовна зупинка ділянки трубопроводу) -
FailStep
дозволяє зупинити конвеєр зі статусом відмови, якщо виконується умова, наприклад, якщо оцінка моделі нижче певного порогу.
Огляд рішення
У цьому рішенні вашою точкою входу є Студія Amazon SageMaker інтегроване середовище розробки (IDE) для швидкого експериментування. Studio пропонує середовище для керування наскрізними конвеєрами. За допомогою Studio ви можете обійти Консоль управління AWS для всього керування робочим процесом. Щоб отримати додаткові відомості про керування конвеєрами з Studio, див Переглядайте, відстежуйте та виконуйте конвеєри SageMaker у SageMaker Studio.
На наступній діаграмі показано високорівневу архітектуру робочого процесу ML із різними кроками для навчання та створення висновків за допомогою нових функцій.
Конвеєр включає в себе наступні кроки:
- Попередня обробка даних для створення необхідних функцій і розділення даних на набори даних навчання, перевірки та тестування.
- Створіть навчальну роботу за допомогою фреймворку SageMaker XGBoost.
- Оцініть навчену модель за допомогою тестового набору даних.
- Перевірте, чи показник AUC перевищує заздалегідь визначене порогове значення.
- Якщо показник AUC нижчий за порогове значення, зупиніть запуск конвеєра та позначте його як невдалий.
- Якщо показник AUC перевищує порогове значення, створіть модель SageMaker і зареєструйте її в реєстрі моделей SageMaker.
- Застосуйте пакетне перетворення до заданого набору даних за допомогою моделі, створеної на попередньому кроці.
Передумови
Щоб слідувати цій публікації, вам потрібен обліковий запис AWS з a Студійний домен.
Pipelines інтегровано безпосередньо з об’єктами та ресурсами SageMaker, тому вам не потрібно взаємодіяти з іншими службами AWS. Вам також не потрібно керувати будь-якими ресурсами, оскільки це повністю керована служба, що означає, що вона створює ресурси та керує ними за вас. Щоб отримати додаткові відомості про різні компоненти SageMaker, які є автономними API Python разом із інтегрованими компонентами Studio, див. Сторінка продукту SageMaker.
Перш ніж почати, інсталюйте SageMaker SDK версії >= 2.104.0 і xlrd >=1.0.0 у блокноті Studio, використовуючи такий фрагмент коду:
Робочий процес ML
Для цієї публікації ви використовуєте такі компоненти:
- Підготовка даних
- Обробка SageMaker – SageMaker Processing – це повністю керована служба, яка дозволяє запускати спеціальні перетворення даних і розробляти функції для робочих навантажень ML.
- Будівництво моделі
- Модель навчання та оцінювання
- Навчання в один клік – Функція розподіленого навчання SageMaker. SageMaker надає розподілені навчальні бібліотеки для паралелізму даних і моделей. Бібліотеки оптимізовані для навчального середовища SageMaker, допомагають адаптувати ваші розподілені навчальні завдання до SageMaker і підвищують швидкість і продуктивність навчання.
- Експерименти SageMaker – Експерименти – це можливість SageMaker, яка дозволяє організовувати, відстежувати, порівнювати та оцінювати ваші ітерації ML.
- Пакетне перетворення SageMaker – Пакетне перетворення або офлайн-оцінка – це керована служба в SageMaker, яка дозволяє прогнозувати на більшому наборі даних за допомогою ваших моделей ML.
- Оркестровка робочого процесу
Конвеєр SageMaker — це серія взаємопов’язаних кроків, визначених визначенням конвеєра JSON. Він кодує конвеєр за допомогою спрямованого ациклічного графа (DAG). DAG надає інформацію про вимоги та зв’язки між кожним кроком конвеєра, а його структура визначається залежностями даних між кроками. Ці залежності створюються, коли властивості результату кроку передаються як вхідні дані для іншого кроку.
На наступній діаграмі показано різні кроки в конвеєрі SageMaker (для випадку використання передбачення відтоку), де SageMaker визначає зв’язки між кроками на основі вхідних і вихідних даних, визначених визначеннями кроків.
У наступних розділах описано створення кожного кроку конвеєра та запуск усього конвеєра після створення.
Структура проекту
Почнемо зі структури проекту:
- /sm-pipelines-end-to-end-example – Назва проекту
- / data – Набори даних
- /трубопроводи – Файли коду для компонентів трубопроводу
- /customerchurn
- preprocess.py
- оцінити.py
- /customerchurn
- sagemaker-pipelines-project.ipynb – Блокнот, який описує робочий процес моделювання за допомогою нових функцій Pipelines
Завантажте набір даних
Щоб слідувати цій публікації, вам потрібно завантажити та зберегти зразок набору даних у папці даних у домашньому каталозі проекту, де зберігається файл Еластична файлова система Amazon (Amazon EFS) у середовищі Studio.
Побудуйте компоненти трубопроводу
Тепер ви готові до створення компонентів трубопроводу.
Імпорт операторів і оголошення параметрів і констант
Створіть блокнот Studio під назвою sagemaker-pipelines-project.ipynb
у домашньому каталозі проекту. Введіть наступний блок коду в комірку та запустіть комірку, щоб налаштувати клієнтські об’єкти SageMaker і S3, створити PipelineSession
і налаштуйте розташування сегмента S3 за допомогою стандартного сегмента, який постачається разом із сеансом SageMaker:
Конвеєри підтримують параметризацію, яка дозволяє вказувати вхідні параметри під час виконання, не змінюючи код конвеєра. Ви можете використовувати модулі, доступні в розділі sagemaker.workflow.parameters
модуль, наприклад ParameterInteger
, ParameterFloat
та ParameterString
, щоб указати параметри конвеєра різних типів даних. Запустіть наступний код, щоб налаштувати кілька вхідних параметрів:
Створіть пакетний набір даних
Згенеруйте пакетний набір даних, який ви використаєте пізніше на етапі пакетного перетворення:
Завантажте дані в сегмент S3
Завантажте набори даних в Amazon S3:
Визначте сценарій обробки та крок обробки
На цьому етапі ви готуєте сценарій Python для розробки функцій, одного гарячого кодування та кураторів для навчання, перевірки та тестування, які використовуватимуться для створення моделі. Запустіть наступний код, щоб створити сценарій обробки:
Далі запустіть наступний блок коду, щоб створити екземпляр процесора, і крок Pipelines, щоб запустити сценарій обробки. Оскільки сценарій обробки написаний у Pandas, ви використовуєте a SKLearnProcessor. Трубопроводи ProcessingStep
функція приймає такі аргументи: процесор, розташування вхідних S3 для необроблених наборів даних і вихідних розташування S3 для збереження оброблених наборів даних.
Визначте крок навчання
Налаштуйте навчання моделі за допомогою оцінювача SageMaker XGBoost і конвеєрів TrainingStep
функція:
Визначте сценарій оцінки та крок оцінки моделі
Запустіть наступний блок коду, щоб оцінити модель після навчання. Цей сценарій інкапсулює логіку перевірки відповідності показника AUC вказаному пороговому значенню.
Далі запустіть наступний блок коду, щоб створити екземпляр процесора, і крок Pipelines, щоб запустити сценарій оцінки. Оскільки оціночний сценарій використовує пакет XGBoost, ви використовуєте a ScriptProcessor
разом із зображенням XGBoost. Трубопроводи ProcessingStep
функція приймає такі аргументи: процесор, розташування вхідних S3 для необроблених наборів даних і вихідних розташування S3 для збереження оброблених наборів даних.
Визначте крок створення моделі
Запустіть наступний блок коду, щоб створити модель SageMaker за допомогою кроку моделі Pipelines. На цьому етапі використовуються результати етапу навчання для упаковки моделі для розгортання. Зверніть увагу, що значення для аргументу типу екземпляра передається за допомогою параметра Pipelines, який ви визначили раніше в публікації.
Визначте крок пакетного перетворення
Запустіть наступний блок коду, щоб виконати пакетне перетворення за допомогою навченої моделі з пакетним введенням, створеним на першому кроці:
Визначте крок моделі реєстру
Наступний код реєструє модель у реєстрі моделей SageMaker за допомогою кроку моделі Pipelines:
Визначте крок невдачі, щоб зупинити конвеєр
Наступний код визначає крок Pipelines fail для зупинки роботи конвеєра з повідомленням про помилку, якщо показник AUC не відповідає визначеному порогу:
Визначте крок умови для перевірки оцінки AUC
Наступний код визначає крок умови для перевірки оцінки AUC і умовного створення моделі та запуску пакетного перетворення та реєстрації моделі в реєстрі моделей або зупинки виконання конвеєра в невдалому стані:
Побудуйте та запустіть трубопровід
Після визначення всіх кроків компонентів ви можете зібрати їх в об’єкт Pipelines. Вам не потрібно вказувати порядок конвеєра, оскільки Pipelines автоматично визначає послідовність порядку на основі залежностей між кроками.
Запустіть наведений нижче код у клітинку блокнота. Якщо конвеєр вже існує, код оновлює конвеєр. Якщо конвеєр не існує, він створює новий.
Висновок
У цій публікації ми представили деякі нові функції, які тепер доступні в Pipelines, а також інші вбудовані функції SageMaker і алгоритм XGBoost для розробки, ітерації та розгортання моделі для прогнозування відтоку. Рішення можна розширити додатковими джерелами даних
для впровадження власного робочого процесу ML. Додаткову інформацію про кроки, доступні в робочому процесі Pipelines, див Конвеєр побудови моделі Amazon SageMaker та Робочі процеси SageMaker, Приклади AWS SageMaker У сховищі GitHub є більше прикладів різноманітних випадків використання конвеєрів.
Про авторів
Джеррі Пенг є інженером з розробки програмного забезпечення в AWS SageMaker. Він зосереджується на створенні наскрізної великомасштабної системи MLOps від навчання до моніторингу моделі у виробництві. Він також прагне донести концепцію MLO до ширшої аудиторії.
Девен Ци є інженером з розробки програмного забезпечення в AWS. Зараз вона зосереджена на розробці та вдосконаленні конвеєрів SageMaker. Поза роботою вона любить грати на віолончелі.
Гаятрі Ганакота є старшим інженером машинного навчання в AWS Professional Services. Вона захоплена розробкою, розгортанням і поясненням рішень AI/ML у різних областях. До цієї посади вона керувала кількома ініціативами в якості спеціаліста з обробки даних та інженера з ML у провідних світових компаніях у сфері фінансів і роздрібної торгівлі. Вона має ступінь магістра комп’ютерних наук, спеціалізуючись на Data Science, в Університеті Колорадо, Боулдер.
Рупіндер Гревал є старшим архітектором рішень Ai/ML в AWS. Зараз він зосереджується на обслуговуванні моделей і MLO на SageMaker. До цієї посади він працював інженером машинного навчання, створюючи та розміщуючи моделі. Поза роботою він любить грати в теніс і їздити на велосипеді гірськими стежками.
Рей Лі є старшим спеціалістом із обробки даних у AWS Professional Services. Його спеціалізація зосереджена на розробці та впровадженні рішень AI/ML для клієнтів різного розміру, починаючи від стартапів і закінчуючи корпоративними організаціями. Крім роботи, Рей захоплюється фітнесом і подорожами.
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- Amazon SageMaker
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- у вас є гугл
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- зефірнет