Створення надійних і багаторазово використовуваних конвеєрів машинного навчання (ML) може бути складним і трудомістким процесом. Розробники зазвичай тестують свої сценарії обробки та навчання локально, але самі конвеєри зазвичай тестуються в хмарі. Створення та запуск повного конвеєра під час експериментування додає небажані витрати та витрати на життєвий цикл розробки. У цій публікації ми детально розповімо, як ви можете використовувати Локальний режим Amazon SageMaker Pipelines запускати конвеєри ML локально, щоб зменшити як розробку конвеєра, так і час виконання, одночасно зменшуючи витрати. Після того, як конвеєр буде повністю протестовано локально, ви можете легко повторно запустити його за допомогою Amazon SageMaker керовані ресурси лише з кількома рядками змін коду.
Огляд життєвого циклу машинного навчання
Одним із основних рушійних факторів нових інновацій і додатків у ML є доступність і обсяг даних разом із дешевшими варіантами обчислень. У кількох областях ML довів здатність вирішувати проблеми, які раніше не вирішувались за допомогою класичних великих даних і аналітичних методів, і попит на науку про дані та практиків ML постійно зростає. Починаючи з дуже високого рівня, життєвий цикл ML складається з багатьох різних частин, але створення моделі ML зазвичай складається з таких загальних кроків:
- Очищення та підготовка даних (розробка функцій)
- Навчання та тюнінг моделі
- Оцінка моделі
- Розгортання моделі (або пакетне перетворення)
На етапі підготовки даних дані завантажуються, обробляються та перетворюються на тип вхідних даних або функцій, які очікує модель ML. Написання сценаріїв для перетворення даних зазвичай є ітеративним процесом, де швидкі цикли зворотного зв’язку важливі для прискорення розробки. Зазвичай немає необхідності використовувати повний набір даних під час тестування сценаріїв розробки функцій, тому ви можете використовувати функція локального режиму компанії SageMaker Processing. Це дозволяє запускати локально та оновлювати код ітераційно, використовуючи менший набір даних. Коли остаточний код готовий, він надсилається на віддалену обробку, яка використовує повний набір даних і виконується на екземплярах, керованих SageMaker.
Процес розробки подібний до етапу підготовки даних як для навчання моделі, так і для етапів оцінки моделі. Науковці даних використовують функція локального режиму Навчання SageMaker для швидкої ітерації з меншими наборами даних локально, перш ніж використовувати всі дані в керованому SageMaker кластері оптимізованих для ML примірників. Це прискорює процес розробки та усуває витрати на запуск екземплярів ML, якими керує SageMaker під час експериментів.
У міру розвитку зрілості ML організації ви можете використовувати Трубопроводи Amazon SageMaker щоб створити конвеєри ML, які з’єднують ці кроки, створюючи складніші робочі процеси ML, які обробляють, навчають і оцінюють моделі ML. SageMaker Pipelines — це повністю керована служба для автоматизації різних етапів робочого процесу машинного навчання, включаючи завантаження даних, перетворення даних, навчання та налаштування моделі, а також розгортання моделі. Донедавна ви могли розробляти та тестувати свої сценарії локально, але доводилося тестувати конвеєри машинного навчання в хмарі. Це зробило ітерацію потоку та форми конвеєрів ML повільним і дорогим процесом. Тепер, з доданою функцією локального режиму SageMaker Pipelines, ви можете повторювати та тестувати свої конвеєри машинного навчання подібно до того, як ви тестуєте та повторюєте свої сценарії обробки та навчання. Ви можете запускати та тестувати свої конвеєри на локальній машині, використовуючи невелику підмножину даних для перевірки синтаксису та функцій конвеєра.
Трубопроводи SageMaker
SageMaker Pipelines забезпечує повністю автоматизований спосіб запуску простих або складних робочих процесів машинного навчання. За допомогою SageMaker Pipelines ви можете створювати робочі процеси ML за допомогою простого у використанні Python SDK, а потім візуалізувати робочий процес і керувати ним за допомогою Студія Amazon SageMaker. Ваші команди з обробки даних можуть бути ефективнішими та швидше масштабуватися, зберігаючи та повторно використовуючи кроки робочого процесу, створені в SageMaker Pipelines. Ви також можете використовувати готові шаблони, які автоматизують створення інфраструктури та сховища для створення, тестування, реєстрації та розгортання моделей у вашому середовищі ML. Ці шаблони автоматично доступні вашій організації та надаються за допомогою Каталог послуг AWS продукції.
SageMaker Pipelines забезпечує безперервну інтеграцію та безперервне розгортання (CI/CD) у ML, наприклад підтримку паритету між середовищем розробки та виробництва, контроль версій, тестування за вимогою та наскрізну автоматизацію, що допомагає масштабувати ML у всьому вашому організації. Практики DevOps знають, що деякі з головних переваг використання методів CI/CD включають підвищення продуктивності за рахунок багаторазових компонентів і підвищення якості за допомогою автоматизованого тестування, що призводить до швидшої рентабельності інвестицій для ваших бізнес-цілей. Ці переваги тепер доступні для практиків MLOps завдяки використанню SageMaker Pipelines для автоматизації навчання, тестування та розгортання моделей ML. У локальному режимі тепер ви можете набагато швидше виконувати ітерацію під час розробки сценаріїв для використання в конвеєрі. Зауважте, що екземпляри локального конвеєра не можна переглянути або запустити в середовищі IDE Studio; однак незабаром будуть доступні додаткові параметри перегляду місцевих трубопроводів.
SageMaker SDK забезпечує загальне призначення конфігурація локального режиму що дозволяє розробникам запускати та тестувати підтримувані процесори та оцінювачі у своєму локальному середовищі. Ви можете використовувати навчання в локальному режимі за допомогою кількох підтримуваних AWS образів фреймворків (TensorFlow, MXNet, Chainer, PyTorch і Scikit-Learn), а також зображень, які ви надаєте самостійно.
SageMaker Pipelines, який будує спрямований ациклічний графік (DAG) із скоординованих кроків робочого процесу, підтримує багато дій, які є частиною життєвого циклу машинного навчання. У локальному режимі підтримуються такі дії:
- Обробка етапів роботи – Спрощений, керований досвід у SageMaker для запуску робочих навантажень обробки даних, таких як розробка функцій, перевірка даних, оцінка моделі та інтерпретація моделі
- Навчальна робота кроки – Ітеративний процес, який навчає модель робити прогнози, представляючи приклади з навчального набору даних
- Роботи з налаштування гіперпараметрів – Автоматичний спосіб оцінки та вибору гіперпараметрів, які створюють найточнішу модель
- Умовні кроки бігу – Крок, який забезпечує умовний хід розгалужень у конвеєрі
- Модельний крок – Використовуючи аргументи CreateModel, цей крок може створити модель для використання на етапах перетворення або подальшого розгортання як кінцевої точки
- Перетворення етапів роботи – Завдання пакетного перетворення, яке генерує прогнози з великих наборів даних і виконує висновок, коли постійна кінцева точка не потрібна
- Невдалі кроки – Крок, який зупиняє запуск конвеєра та позначає запуск як невдалий
Огляд рішення
Наше рішення демонструє важливі кроки для створення та запуску конвеєрів SageMaker у локальному режимі, що означає використання локального процесора, оперативної пам’яті та дискових ресурсів для завантаження та виконання етапів робочого процесу. Ваше локальне середовище може працювати на ноутбуці з використанням популярних IDE, таких як VSCode або PyCharm, або воно може бути розміщено в SageMaker за допомогою класичних екземплярів ноутбука.
Локальний режим дозволяє дослідникам обробки даних об’єднувати кроки, які можуть включати роботи з обробки, навчання та оцінки, і запускати весь робочий процес локально. Коли ви завершите тестування локально, ви можете повторно запустити конвеєр у керованому середовищі SageMaker, замінивши LocalPipelineSession
об'єкт з PipelineSession
, що забезпечує узгодженість життєвого циклу машинного навчання.
Для цього зразка блокнота ми використовуємо стандартний загальнодоступний набір даних, the Набір даних UCI Machine Learning Abalone. Мета полягає в тому, щоб навчити модель ML визначати вік морського равлика за його фізичними вимірюваннями. По суті, це проблема регресії.
Увесь код, необхідний для запуску цього зразка блокнота, доступний на GitHub у amazon-sagemaker-приклади сховище. У цьому прикладі блокнота кожен крок робочого циклу конвеєра створюється незалежно, а потім з’єднується разом для створення конвеєра. Створюємо наступні кроки:
- Етап обробки (розробка функцій)
- Етап навчання (модельне навчання)
- Етап обробки (оцінка моделі)
- Крок умови (точність моделі)
- Створити крок моделі (модель)
- Крок перетворення (пакетне перетворення)
- Зареєструвати крок моделі (пакет моделі)
- Невдалий крок (не вдалося запустити)
Наступна діаграма ілюструє наш конвеєр.
Передумови
Щоб слідувати цій публікації, вам потрібно:
Після того, як ці передумови створено, ви можете запустити зразок блокнота, як описано в наступних розділах.
Побудуйте свій трубопровід
У цьому зразку зошита ми використовуємо Режим сценарію SageMaker для більшості процесів ML, що означає, що ми надаємо фактичний код (сценарії) Python для виконання дії та передаємо посилання на цей код. Режим сценарію надає велику гнучкість для керування поведінкою в рамках обробки SageMaker, дозволяючи вам налаштовувати свій код, водночас користуючись перевагами попередньо створених контейнерів SageMaker, таких як XGBoost або Scikit-Learn. Спеціальний код записується у файл сценарію Python за допомогою клітинок, які починаються з магічної команди %%writefile
, наприклад наступне:
%%writefile code/evaluation.py
Основним активатором локального режиму є LocalPipelineSession
об’єкт, який створюється з Python SDK. У наступних сегментах коду показано, як створити конвеєр SageMaker у локальному режимі. Хоча ви можете налаштувати локальний шлях даних для багатьох кроків локального конвеєра, Amazon S3 є розташуванням за замовчуванням для зберігання даних, виведених у результаті перетворення. Новий LocalPipelineSession
об’єкт передається до Python SDK у багатьох викликах API робочого процесу SageMaker, описаних у цій публікації. Зауважте, що ви можете використовувати local_pipeline_session
змінна для отримання посилань на сегмент S3 за замовчуванням і назву поточного регіону.
Перш ніж створити окремі кроки конвеєра, ми встановлюємо деякі параметри, які використовуються конвеєром. Деякі з цих параметрів є рядковими літералами, тоді як інші створюються як спеціальні перераховані типи, надані SDK. Пронумерований тип гарантує, що дійсні параметри надаються конвеєру, наприклад цей, який передається до ConditionLessThanOrEqualTo
крок далі вниз:
mse_threshold = ParameterFloat(name="MseThreshold", default_value=7.0)
Щоб створити етап обробки даних, який тут використовується для розробки функцій, ми використовуємо SKLearnProcessor
для завантаження та перетворення набору даних. Ми проходимо local_pipeline_session
змінна для конструктора класу, яка вказує кроку робочого процесу виконуватися в локальному режимі:
Далі ми створюємо наш перший фактичний крок конвеєра, a ProcessingStep
об’єкт, імпортований із SDK SageMaker. Аргументи процесора повертаються з виклику до SKLearnProcessor
метод run(). Цей крок робочого циклу поєднується з іншими кроками в кінці блокнота, щоб вказати порядок роботи в конвеєрі.
Далі ми надаємо код для створення кроку навчання, спочатку створюючи стандартний оцінювач за допомогою SDK SageMaker. Проходимо так само local_pipeline_session
змінна для оцінювача з назвою xgb_train як sagemaker_session
аргумент. Оскільки ми хочемо навчити модель XGBoost, ми повинні згенерувати дійсний URI зображення, вказавши наступні параметри, включаючи структуру та кілька параметрів версії:
Наприклад, за бажанням ми можемо викликати додаткові методи оцінки set_hyperparameters()
, щоб надати налаштування гіперпараметрів для навчального завдання. Тепер, коли у нас налаштовано оцінювач, ми готові створити фактичний етап навчання. Знову імпортуємо TrainingStep
клас із бібліотеки SDK SageMaker:
Далі ми створюємо інший етап обробки для виконання оцінки моделі. Це робиться шляхом створення a ScriptProcessor
примірник і проходження local_pipeline_session
об'єкт як параметр:
Щоб увімкнути розгортання навченої моделі, або до a Кінцева точка реального часу SageMaker або для пакетного перетворення, нам потрібно створити a Model
об’єкт, передаючи артефакти моделі, правильний URI зображення та, за бажанням, наш власний код висновку. Потім ми передаємо це Model
заперечити проти ModelStep
, який додається до локального трубопроводу. Перегляньте наступний код:
Далі ми створюємо етап пакетного перетворення, де надсилаємо набір векторів ознак і виконуємо висновок. Спочатку нам потрібно створити a Transformer
об'єкт і передати local_pipeline_session
параметр до нього. Потім ми створюємо a TransformStep
, передаючи необхідні аргументи, і додайте це до визначення конвеєра:
Нарешті, ми хочемо додати умову розгалуження до робочого процесу, щоб ми запускали пакетне перетворення, лише якщо результати оцінювання моделі відповідають нашим критеріям. Ми можемо вказати цю умову, додавши a ConditionStep
з певним типом стану, наприклад ConditionLessThanOrEqualTo
. Потім ми перераховуємо кроки для двох гілок, по суті визначаючи гілки if/else або true/false конвеєру. If_steps, надані в ConditionStep
(step_create_model, step_transform) запускаються щоразу, коли умова оцінюється як True
.
Наступна діаграма ілюструє це умовне розгалуження та пов’язані з ним кроки if/else. Виконується лише одна гілка на основі результату етапу оцінки моделі порівняно з кроком умови.
Тепер, коли ми визначили всі кроки та створили екземпляри основного класу, ми можемо об’єднати їх у конвеєр. Ми надаємо деякі параметри та, головне, визначаємо порядок роботи, просто перераховуючи кроки в потрібному порядку. Зверніть увагу, що TransformStep
тут не показано, оскільки це ціль умовного кроку, і його було надано як аргумент кроку для ConditionalStep
раніше.
Щоб запустити конвеєр, необхідно викликати два методи: pipeline.upsert()
, який завантажує конвеєр до базової служби, і pipeline.start()
, який запускає конвеєр. Ви можете використовувати різні інші методи для опитування про стан виконання, створення списку кроків конвеєра тощо. Оскільки ми використовували конвеєрний сеанс локального режиму, усі ці дії виконуються локально на вашому процесорі. Вивід клітинки під методом start показує вихід з конвеєра:
Ви повинні побачити повідомлення в нижній частині клітинки, подібне до такого:
Pipeline execution d8c3e172-089e-4e7a-ad6d-6d76caf987b7 SUCCEEDED
Повернутися до керованих ресурсів
Після того, як ми підтвердимо, що конвеєр працює без помилок і ми задоволені потоком і формою конвеєра, ми можемо відтворити конвеєр, але з ресурсами, керованими SageMaker, і повторно запустити його. Єдина необхідна зміна — це використання PipelineSession
об'єкт замість LocalPipelineSession
:
від sagemaker.workflow.pipeline_context імпортувати LocalPipelineSessionfrom sagemaker.workflow.pipeline_context import PipelineSession
local_pipeline_session = LocalPipelineSession()pipeline_session = PipelineSession()
Це інформує службу про виконання кожного кроку з посиланням на цей об’єкт сеансу на керованих ресурсах SageMaker. Враховуючи невелику зміну, ми проілюструємо лише необхідні зміни коду в наступній комірці коду, але ту саму зміну потрібно буде внести в кожну комірку за допомогою local_pipeline_session
об'єкт. Проте зміни є ідентичними в усіх клітинках, оскільки ми лише замінюємо local_pipeline_session
об'єкт за допомогою pipeline_session
об'єкт
Після того, як локальний об’єкт сеансу буде всюди замінено, ми заново створюємо конвеєр і запускаємо його з керованими ресурсами SageMaker:
Прибирати
Якщо ви хочете підтримувати порядок у середовищі Studio, ви можете скористатися наведеними нижче методами, щоб видалити конвеєр SageMaker і модель. Повний код можна знайти у зразку ноутбук.
Висновок
Донедавна ви могли використовувати функцію локального режиму SageMaker Processing і SageMaker Training, щоб локально повторювати сценарії обробки та навчання перед тим, як запускати їх на всіх даних за допомогою керованих ресурсів SageMaker. Завдяки новій функції локального режиму SageMaker Pipelines спеціалісти ML тепер можуть застосовувати той самий метод під час ітерації своїх конвеєрів ML, з’єднуючи різні робочі процеси ML разом. Коли конвеєр готовий до виробництва, для його запуску з керованими ресурсами SageMaker потрібно лише кілька рядків змін коду. Це зменшує час роботи конвеєра під час розробки, що призводить до швидшої розробки конвеєра з швидшими циклами розробки, одночасно зменшуючи вартість керованих ресурсів SageMaker.
Щоб дізнатися більше, відвідайте Трубопроводи Amazon SageMaker or Використовуйте конвеєри SageMaker для локального виконання завдань.
Про авторів
Пол Харгіс зосередив свої зусилля на машинному навчанні в кількох компаніях, включаючи AWS, Amazon і Hortonworks. Йому подобається створювати технологічні рішення та навчати людей, як отримати від них максимальну користь. До роботи в AWS він був провідним архітектором Amazon Exports and Expansions, допомагаючи amazon.com покращити досвід для міжнародних покупців. Пол любить допомагати клієнтам розширювати свої ініціативи машинного навчання для вирішення реальних проблем.
Ніклас Палм є архітектором рішень у AWS у Стокгольмі, Швеція, де він допомагає клієнтам із скандинавських країн досягати успіху в хмарі. Він особливо захоплюється безсерверними технологіями, а також Інтернетом речей і машинним навчанням. Поза роботою Ніклас є завзятим лижником і сноубордистом, а також майстерним варінням яєць.
Кіріт Тадака є архітектором рішень ML, який працює в команді SageMaker Service SA. До того, як приєднатися до AWS, Кіріт працював у стартапах зі штучним інтелектом на ранніх стадіях, а потім деякий час консультував на різних посадах у дослідженнях штучного інтелекту, MLOps і технічному керівництві.
- Розширений (300)
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- AIML
- Amazon SageMaker
- Автопілот Amazon SageMaker
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- у вас є гугл
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- Технічні інструкції
- зефірнет