Вбудований Amazon SageMaker Алгоритм XGBoost забезпечує керований контейнер для запуску популярних XGBoost фреймворк машинного навчання (ML) із додатковою зручністю підтримки розширеного навчання або функцій висновку, таких як розподілене навчання, шардинг набору даних для великомасштабних наборів даних, Тестування A/B моделіабо багатомодельний висновок кінцеві точки. Ви також можете розширити цей потужний алгоритм, щоб відповідати іншим вимогам.
Упаковка коду та залежностей в один контейнер є зручним і надійним підходом для довгострокового обслуговування коду, відтворюваності та аудиту. Модифікація контейнера точно відповідає базовому контейнеру та дозволяє уникнути дублювання існуючих функцій, які вже підтримуються базовим контейнером. У цій публікації ми розглядаємо внутрішню роботу контейнера алгоритму SageMaker XGBoost і надаємо прагматичні сценарії для безпосереднього налаштування контейнера.
Структура контейнера SageMaker XGBoost
Вбудований у SageMaker алгоритм XGBoost упакований як окремий контейнер, доступно на GitHub, і його можна розширити за ліцензією відкритого коду Apache 2.0, зручною для розробників. Контейнер пакує алгоритм XGBoost з відкритим кодом і допоміжні інструменти для запуску алгоритму в середовищі SageMaker, інтегрованому з іншими службами AWS Cloud. Це дозволяє тренувати моделі XGBoost на різноманітних джерела даних, зробити пакетні прогнози на офлайн-даних або хост кінцева точка висновку в режимі реального часу трубопровід.
Контейнер підтримує навчання та операції висновку з різними точками входу. Для режиму виведення запис можна знайти в головній функції в сценарій serving.py. Для обслуговування висновків у реальному часі контейнер запускає a КолбаНа основі Веб-сервер що коли викликали, отримує HTTP-закодований запит, що містить дані, декодує дані в XGBoost DMatrix формат, завантажує модель, і повертає an Відповідь у кодуванні HTTP назад. Ці методи інкапсульовані під ScoringService клас, який також можна значною мірою налаштувати за допомогою режиму сценарію (див. Додаток нижче).
Точка входу для режиму навчання (режим алгоритму) є основною функцією в training.py. Функція main налаштовує середовище навчання та викликає функцію завдання навчання. Він достатньо гнучкий, щоб забезпечити розподілене або одновузлове навчання, або такі утиліти, як перехресна перевірка. Серце тренувального процесу можна знайти в train_job функції.
Файли Docker, що упаковують контейнер, можна знайти в GitHub репо. Зверніть увагу, що контейнер створюється в два етапи: a база контейнер будується спочатку, а потім остаточний контейнер зверху.
Огляд рішення
Ви можете змінювати та перебудовувати контейнер за допомогою вихідного коду. Однак це передбачає збір і перебудову всіх залежностей і пакетів з нуля. У цій публікації ми обговорюємо більш простий підхід, який змінює контейнер безпосередньо поверх уже створеного та загальнодоступного зображення контейнера алгоритму SageMaker XGBoost.
У такому підході ми тягнути копію загальнодоступного образу SageMaker XGBoost, змініть сценарії або додайте пакети та перебудуйте контейнер зверху. Змінений контейнер можна зберігати в приватному сховищі. Таким чином ми уникаємо перебудови проміжних залежностей і натомість створюємо безпосередньо поверх уже зібраних бібліотек, запакованих в офіційний контейнер.
На наступному малюнку показано огляд сценарію, який використовувався для отримання загальнодоступного базового образу, зміни та перебудови образу та завантаження його в приватний Реєстр контейнерів Amazon Elastic (Amazon ECR) репозиторій. The сценарій bash у супровідному коді цієї публікації виконує всі кроки робочого процесу, показані на схемі. Супутній ноутбук показує приклад, коли URI певної версії алгоритму SageMaker XGBoost спочатку отримується та передається до сценарій bash, який замінює два сценарії Python у зображенні, перебудовує його та надсилає змінене зображення до приватного репозиторію Amazon ECR. Ви можете змінити супровідний код відповідно до своїх потреб.
Передумови
Команда GitHub сховище містить код, який супроводжує цю публікацію. Ви можете запустити зразок зошита у вашому обліковому записі AWS або скористайтеся наданим AWS CloudFormation стек для розгортання блокнота за допомогою блокнота SageMaker. Вам потрібні наступні передумови:
- Обліковий запис AWS.
- Необхідні дозволи для запуску пакетного перетворення SageMaker і навчальних завдань, а також привілеї Amazon ECR. Шаблон CloudFormation створює зразок Управління ідентифікацією та доступом AWS (IAM) ролі.
Розгорніть рішення
Щоб створити свої ресурси рішення за допомогою AWS CloudFormation, виберіть Запустити стек:
Стек розгортає блокнот SageMaker, попередньо налаштований на клонування репозиторію GitHub. Покрокове керівництво ноутбук містить кроки для отримання загальнодоступного образу SageMaker XGBoost для певної версії, його модифікації та надсилання спеціального контейнера до приватного репозиторію Amazon ECR. Блокнот використовує паблік Набір даних Abalone як зразок, навчає модель за допомогою вбудованого режиму навчання SageMaker XGBoost і повторно використовує цю модель у спеціальному зображенні для виконання завдань пакетного перетворення, які створюють висновок разом зі значеннями SHAP.
Висновок
Вбудовані алгоритми SageMaker надають різноманітні функції та функції, які можна розширити відповідно до ліцензії з відкритим кодом Apache 2.0. У цій публікації ми розглянули, як розширити вбудований контейнер виробництва для алгоритму SageMaker XGBoost, щоб відповідати вимогам виробництва, таким як зворотний код і сумісність API.
Зразок зошита і помічника scripts надайте зручну відправну точку для налаштування зображення контейнера SageMaker XGBoost так, як вам подобається. Спробувати!
Додаток: Режим сценарію
Режим сценарію забезпечує спосіб модифікації багатьох вбудованих алгоритмів SageMaker, надаючи інтерфейс для заміни функцій, відповідальних за перетворення вхідних даних і завантаження моделі. Режим сценарію не такий гнучкий, як пряме модифікування контейнера, але він забезпечує повністю заснований на Python маршрут для налаштування вбудованого алгоритму без необхідності працювати безпосередньо з Docker.
У режимі сценарію a user-module
надається для налаштування декодування даних, завантаження моделі та створення прогнозів. Модуль користувача може визначати a transformer_fn
який обробляє всі аспекти обробки запиту до підготовки відповіді. Або замість визначення transformer_fn
, ви можете надати власні методи model_fn
, input_fn
, predict_fn
та output_fn
індивідуально для налаштування завантаження моделі та декодування та підготовки вхідних даних для прогнозування. Щоб отримати докладніший огляд режиму сценарію, див Створіть свою власну модель за допомогою режиму сценарію SageMaker.
Про авторів
Пейман Разагі є спеціалістом з обробки даних в AWS. Він має ступінь доктора філософії з теорії інформації в Університеті Торонто та був науковим співробітником Університету Південної Каліфорнії (USC), Лос-Анджелес. До того як приєднатися до AWS, Пейман працював штатним системним інженером у Qualcomm, працюючи над низкою відомих міжнародних телекомунікаційних стандартів. Він є автором кількох науково-дослідницьких статей, рецензованих у галузі статистики та системної інженерії, і любить батьківство та їздить на велосипеді поза роботою.
- Coinsmart. Найкраща в Європі біржа біткойн та криптовалют.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. БЕЗКОШТОВНИЙ ДОСТУП.
- CryptoHawk. Альткойн Радар. Безкоштовне випробування.
- Джерело: https://aws.amazon.com/blogs/machine-learning/customize-the-amazon-sagemaker-xgboost-algorithm-container/
- "
- 100
- доступ
- розмістити
- рахунки
- просунутий
- алгоритм
- алгоритми
- ВСІ
- вже
- Amazon
- API
- підхід
- ПЛОЩА
- статті
- AWS
- будувати
- вбудований
- Каліфорнія
- Вибирати
- клас
- хмара
- хмарні сервіси
- код
- Збір
- повністю
- Контейнер
- містить
- зручність
- Зручний
- створює
- виготовлений на замовлення
- дані
- вчений даних
- розгортання
- розгортає
- різний
- безпосередньо
- обговорювати
- розподілений
- Docker
- інженер
- Навколишнє середовище
- приклад
- продовжити
- риси
- Рисунок
- Перший
- гнучкий
- після
- формат
- знайдений
- Рамки
- функція
- далі
- GitHub
- великий
- тримає
- Як
- How To
- HTTPS
- Особистість
- зображення
- інформація
- вхід
- інтегрований
- інтерфейс
- Міжнародне покриття
- IT
- робота
- Джобс
- вивчення
- ліцензія
- довгостроковий
- Лос-Анджелес
- машина
- навчання за допомогою машини
- РОБОТИ
- Робить
- вдалося
- ML
- модель
- Моделі
- більше
- ноутбук
- номер
- офіційний
- offline
- операції
- Інше
- власний
- точка
- популярний
- потужний
- прогноз
- Прогнози
- приватний
- процес
- виробляти
- Production
- забезпечувати
- забезпечує
- забезпечення
- громадськість
- цілей
- реального часу
- Сховище
- запросити
- Вимога
- дослідження
- ресурси
- відповідь
- відповідальний
- Умови повернення
- огляд
- Маршрут
- прогін
- вчений
- Послуги
- виступаючої
- заточування
- Софтвер
- рішення
- вихідні
- Південний
- стек
- стандартів
- статистика
- Підтриманий
- Підтримуючий
- Опори
- Systems
- Джерело
- через
- разом
- інструменти
- топ
- Торонто
- Навчання
- поїзда
- Перетворення
- перетворення
- університет
- використання
- різноманітність
- Вікіпедія
- Work
- б