Amazon SageMaker це повністю керована служба машинного навчання (ML). За допомогою SageMaker науковці та розробники даних можуть швидко та легко створювати та навчати моделі ML, а потім безпосередньо розгортати їх у готовому до виробництва середовищі. Sagemaker надає інтегрований екземпляр блокнота Jupyter для створення легкого доступу до ваших джерел даних для дослідження й аналізу, тому вам не потрібно керувати серверами. Він також надає загальні алгоритми ML, оптимізовані для ефективної роботи з надзвичайно великими даними в розподіленому середовищі.
SageMaker вимагає, щоб навчальні дані для моделі ML були присутні або в Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) або Amazon FSx for Lustre (додаткову інформацію див. у розділі Access Training Data). Щоб навчити модель, використовуючи дані, що зберігаються поза трьома підтримуваними службами зберігання, дані спочатку потрібно ввести в одну з цих служб (зазвичай Amazon S3). Для цього потрібно побудувати конвеєр даних (за допомогою таких інструментів, як Amazon SageMaker Data Wrangler), щоб перемістити дані в Amazon S3. Однак цей підхід може створити проблему керування даними з точки зору керування життєвим циклом цього носія зберігання даних, створення засобів керування доступом, аудиту даних тощо з метою розміщення навчальних даних протягом усього навчального завдання. У таких ситуаціях може бути бажаним мати доступ до даних для SageMaker на тимчасових носіях даних, приєднаних до тимчасових екземплярів навчання, без проміжного зберігання даних в Amazon S3.
Ця публікація показує спосіб зробити це за допомогою Сніжинка як джерело даних і шляхом завантаження даних безпосередньо зі Snowflake в екземпляр завдання SageMaker Training.
Огляд рішення
Ми використовуємо Набір даних про житло в Каліфорнії як навчальний набір даних для цієї посади та навчіть модель ML для прогнозування середньої вартості будинку для кожного округу. Ми додаємо ці дані до Snowflake як нову таблицю. Ми створюємо спеціальний навчальний контейнер, який завантажує дані безпосередньо з таблиці Snowflake у навчальний екземпляр замість того, щоб спочатку завантажувати дані у відро S3. Після завантаження даних у навчальний екземпляр спеціальний сценарій навчання виконує завдання підготовки даних, а потім навчає модель ML за допомогою Оцінювач XGBoost. Весь код для цієї публікації доступний у GitHub репо.
На наступному малюнку представлена високорівнева архітектура запропонованого рішення для використання Snowflake як джерела даних для навчання моделей ML за допомогою SageMaker.
Етапи робочого процесу такі:
- Налаштуйте блокнот SageMaker і Управління ідентифікацією та доступом AWS (IAM) з відповідними дозволами для доступу SageMaker Реєстр контейнерів Amazon Elastic (Amazon ECR), Secrets Manager та інші служби у вашому обліковому записі AWS.
- Зберігайте облікові дані свого облікового запису Snowflake в AWS Secrets Manager.
- Передайте дані в таблицю свого облікового запису Snowflake.
- Створіть власне зображення контейнера для навчання моделі ML і надішліть його в Amazon ECR.
- Запустіть завдання SageMaker Training для навчання моделі ML. Навчальний екземпляр отримує облікові дані Snowflake із диспетчера секретів, а потім використовує ці облікові дані для завантаження набору даних безпосередньо зі Snowflake. Це крок, який усуває необхідність спочатку завантажувати дані в сегмент S3.
- Навчена модель ML зберігається у відрі S3.
Передумови
Щоб реалізувати рішення, наведене в цій публікації, ви повинні мати Обліковий запис AWS, то Рахунок Сніжинка і знайомство з SageMaker.
Налаштуйте записник SageMaker і роль IAM
Ми використовуємо AWS CloudFormation для створення блокнота SageMaker під назвою aws-aiml-blogpost-sagemaker-snowflake-example
і викликається роль IAM SageMakerSnowFlakeExample
, Вибирати Запустити стек для регіону, до якого ви хочете розгорнути ресурси.
Зберігайте облікові дані Snowflake у диспетчері секретів
Зберігайте свої облікові дані Snowflake як секрет у диспетчері секретів. Інструкції щодо створення секрету див Create an AWS Secrets Manager secret
.
- Назвіть секрет
snowflake_credentials
. Це потрібно, оскільки код уsnowflake-load-dataset.ipynb
очікує, що секрет буде так називатися. - Створіть секрет як пару ключ-значення з двома ключами:
- ім'я користувача – Ваше ім’я користувача Snowflake.
- пароль – Пароль, пов’язаний з вашим іменем користувача Snowflake.
Передайте дані в таблицю свого облікового запису Snowflake
Щоб отримати дані, виконайте такі дії:
- На консолі SageMaker виберіть Ноутбуки у навігаційній панелі.
- Виберіть блокнот aws-aiml-blogpost-sagemaker-snowflake-example і виберіть Відкрийте JupyterLab.
- Вибирати
snowflake-load-dataset.ipynb
щоб відкрити його в JupyterLab. Цей блокнот поглине Набір даних про житло в Каліфорнії до столу Сніжинка. - У блокноті відредагуйте вміст наступної клітинки, щоб замінити значення заповнювачів на значення, що відповідають вашому обліковому запису сніжинки:
- У меню «Виконати» виберіть Запустіть усі клітинки щоб запустити код у цьому блокноті. Це завантажить набір даних локально в блокнот, а потім завантажить його в таблицю Snowflake.
Наступний фрагмент коду в блокноті завантажує набір даних у Snowflake. Див snowflake-load-dataset.ipynb
зошит для повного коду.
- Закрийте блокнот після того, як усі клітинки запустяться без помилок. Ваші дані тепер доступні в Snowflake. На наступному знімку екрана показано
california_housing
таблиця, створена в Snowflake.
Запустіть sagemaker-snowflake-example.ipynb
ноутбук
Цей блокнот створює спеціальний навчальний контейнер із підключенням Snowflake, витягує дані зі Snowflake у ефемерне сховище навчального екземпляра, не розміщуючи його в Amazon S3, і виконує навчання моделі Distributed Data Parallel (DDP) XGBoost на даних. Навчання DDP не потрібне для навчання моделі на такому малому наборі даних; він включений тут для ілюстрації ще однієї нещодавно випущеної функції SageMaker.
Створіть спеціальний контейнер для навчання
Тепер ми створюємо спеціальний контейнер для навчального завдання моделі ML. Зауважте, що для створення контейнера Docker потрібен доступ root. Цей блокнот SageMaker було розгорнуто з увімкненим кореневим доступом. Якщо політика вашої корпоративної організації не дозволяє кореневий доступ до хмарних ресурсів, ви можете використати наведений нижче файл Docker і сценарії оболонки, щоб створити контейнер Docker в іншому місці (наприклад, на вашому ноутбуці), а потім передати його в Amazon ECR. Ми використовуємо контейнер на основі образу контейнера SageMaker XGBoost 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
з такими доповненнями:
- Команда Конектор Snowflake для Python щоб завантажити дані з таблиці Snowflake в екземпляр навчання.
- Сценарій Python для підключення до диспетчера секретів для отримання облікових даних Snowflake.
Використання конектора Snowflake і сценарію Python гарантує, що користувачам, які використовують цей образ контейнера для навчання моделі ML, не доведеться писати цей код як частину свого сценарію навчання, і вони зможуть використовувати цю функціональність, яка їм уже доступна.
Нижче наведено файл Docker для навчального контейнера:
Зображення контейнера створюється та надсилається до Amazon ECR. Це зображення використовується для навчання моделі ML.
Навчіть модель ML за допомогою навчального завдання SageMaker
Після успішного створення образу контейнера та надсилання його в Amazon ECR ми можемо почати використовувати його для навчання моделі.
- Ми створюємо набір сценаріїв Python для завантаження даних зі Snowflake за допомогою Конектор Snowflake для Python, підготуйте дані, а потім використовуйте
XGBoost Regressor
для навчання моделі ML. Це етап завантаження даних безпосередньо в навчальний екземпляр, який дозволяє уникнути використання Amazon S3 як проміжного сховища для навчальних даних. - Ми полегшуємо навчання Distributed Data Parallel, забезпечуючи навчальний код завантаженням випадкової підмножини даних таким чином, щоб кожен екземпляр навчання завантажував однакову кількість даних зі Snowflake. Наприклад, якщо є два навчальні вузли, то кожен вузол завантажує випадкову вибірку з 50% рядків у таблиці Snowflake. Перегляньте наступний код:
- Потім ми надаємо навчальний сценарій до SDK SageMaker
Estimator
разом із вихідним каталогом, щоб усі сценарії, які ми створюємо, могли бути надані в навчальний контейнер під час виконання навчального завдання за допомогоюEstimator.fit
метод:Для отримання додаткової інформації зверніться до Підготуйте навчальний сценарій Scikit-Learn.
- Після завершення навчання моделі навчена модель стає доступною як a
model.tar.gz
файл у типовому сегменті SageMaker для регіону:
Тепер ви можете розгорнути навчену модель для отримання висновків на основі нових даних! Інструкції див Створіть кінцеву точку та розгорніть свою модель.
Прибирати
Щоб уникнути майбутніх витрат, видаліть ресурси. Ви можете зробити це, видаливши шаблон CloudFormation, який використовувався для створення ролі IAM і блокнота SageMaker.
Вам доведеться видалити ресурси Snowflake вручну з консолі Snowflake.
Висновок
У цій публікації ми показали, як завантажити дані, що зберігаються в таблиці Snowflake, до екземпляра завдання SageMaker Training і навчити модель XGBoost за допомогою спеціального навчального контейнера. Цей підхід дозволяє нам напряму інтегрувати Snowflake як джерело даних із записником SageMaker без розміщення даних в Amazon S3.
Ми заохочуємо вас дізнатися більше, дослідивши SDK для Amazon SageMaker Python і створити рішення за допомогою прикладу реалізації, наданого в цій публікації, і набору даних, що стосується вашого бізнесу. Якщо у вас є запитання чи пропозиції, залиште коментар.
Про авторів
Аміт Арора є архітектором-спеціалістом зі штучного інтелекту та машинного навчання в Amazon Web Services, який допомагає корпоративним клієнтам використовувати хмарні сервіси машинного навчання для швидкого масштабування своїх інновацій. Він також є допоміжним лектором у програмі MS Data Science and Analytics в Джорджтаунському університеті у Вашингтоні, округ Колумбія.
Дів'я Муралідхаран є архітектором рішень в Amazon Web Services. Вона захоплена тим, що допомагає корпоративним клієнтам вирішувати бізнес-проблеми за допомогою технологій. Вона має ступінь магістра комп’ютерних наук Рочестерського технологічного інституту. Поза офісом вона проводить час за приготуванням їжі, співом і вирощуванням рослин.
Сергій Єрмолін є головним архітектором рішень AIML в AWS. Раніше він був архітектором програмних рішень для глибокого навчання, аналітики та технологій великих даних у Intel. Ветеран Силіконової долини з пристрастю до машинного навчання та штучного інтелекту, Сергій цікавився нейронними мережами ще з часів, коли не було GPU, коли він використовував їх для прогнозування старіння кристалів кварцу та атомних годинників з цезієм у Hewlett-Packard. Сергій має сертифікат MSEE та CS у Стенфорді та ступінь бакалавра фізики та машинобудування в Університеті штату Каліфорнія, Сакраменто. Поза роботою Сергій захоплюється виноробством, катанням на лижах, велосипеді, вітрильним спортом і підводним плаванням. Також Сергій пілот-волонтер Політ ангела.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :є
- $UP
- 1
- 10
- 7
- 8
- a
- МЕНЮ
- доступ
- доступною
- рахунки
- доповнення
- після
- проти
- Старіння
- AI
- AIML
- алгоритми
- ВСІ
- дозволяє
- вже
- Amazon
- Amazon FSx
- Amazon SageMaker
- Amazon Web Services
- кількість
- аналіз
- аналітика
- та
- Інший
- підхід
- відповідний
- архітектура
- ЕСТЬ
- штучний
- штучний інтелект
- AS
- асоційований
- At
- аудит
- авторство
- доступний
- AWS
- AWS CloudFormation
- база
- заснований
- BE
- оскільки
- Великий
- Великий даних
- будувати
- Створюємо
- побудований
- бізнес
- by
- Каліфорнія
- званий
- CAN
- Клітини
- сертифікат
- виклик
- вантажі
- Вибирати
- Очищення
- Годинники
- хмара
- код
- Колонка
- Колони
- коментар
- загальний
- повний
- комп'ютер
- Інформатика
- З'єднуватися
- зв'язку
- Консоль
- Контейнер
- містить
- зміст
- управління
- створювати
- створений
- створює
- створення
- Повноваження
- виготовлений на замовлення
- Клієнти
- дані
- управління даними
- Підготовка даних
- наука про дані
- зберігання даних
- дата, час
- Днів
- DDP
- Вирішивши
- глибокий
- глибоке навчання
- дефолт
- Ступінь
- розгортання
- розгорнути
- розробників
- безпосередньо
- розподілений
- район
- Docker
- Не знаю
- скачати
- завантажень
- кожен
- легко
- продуктивно
- або
- Усуває
- в іншому місці
- включений
- заохочувати
- Кінцева точка
- Машинобудування
- гарантує
- підприємство
- Навколишнє середовище
- помилка
- приклад
- виконувати
- існує
- чекає
- дослідження
- Дослідження
- Виписки
- надзвичайно
- фасилітувати
- ярмарок
- Знайомство
- особливість
- Рисунок
- філе
- остаточний
- Перший
- відповідати
- після
- слідує
- для
- від
- Повний
- повністю
- функціональність
- майбутнє
- отримати
- отримання
- GitHub
- буде
- Зростання
- Мати
- має
- допомогу
- тут
- на вищому рівні
- тримає
- відбувся
- хостів
- будинок
- житло
- Як
- How To
- Однак
- HTML
- HTTPS
- Особистість
- зображення
- здійснювати
- реалізація
- імпорт
- in
- включати
- включені
- індекс
- інформація
- інновації
- встановлювати
- екземпляр
- Інститут
- інструкції
- інтегрувати
- інтегрований
- Intel
- Інтелект
- зацікавлений
- IT
- робота
- ключі
- портативний комп'ютер
- великий
- останній
- УЧИТЬСЯ
- вивчення
- Залишати
- Життєвий цикл
- ln
- локально
- машина
- навчання за допомогою машини
- управляти
- вдалося
- управління
- менеджер
- управління
- вручну
- узгодження
- механічний
- Медіа
- середа
- Меню
- метод
- ML
- модель
- Моделі
- більше
- рухатися
- MS
- ім'я
- навігація
- Необхідність
- потреби
- мереж
- нейронні мережі
- Нові
- наступний
- вузол
- вузли
- ноутбук
- номер
- об'єкт
- of
- Office
- on
- ONE
- відкрити
- оптимізований
- порядок
- організація
- Інше
- поза
- пакет
- панди
- pane
- Паралельні
- частина
- пристрасть
- пристрасний
- Пароль
- виступає
- Дозволи
- Фізика
- пілот
- трубопровід
- заповнювач
- Рослини
- plato
- Інформація про дані Платона
- PlatoData
- Політика
- заселений
- пошта
- передбачати
- Готувати
- представити
- раніше
- Головний
- проблеми
- програма
- запропонований
- забезпечувати
- за умови
- забезпечує
- мета
- Штовхати
- штовхнув
- Python
- питань
- швидко
- випадковий
- швидко
- швидше
- Читати
- нещодавно
- облік
- знижує
- регіон
- випущений
- доречний
- замінювати
- представляє
- вимагається
- Вимагається
- ресурси
- повертати
- Роль
- корінь
- ROW
- прогін
- Сакраменто
- мудрець
- вітрильний спорт
- зберегти
- шкала
- наука
- Вчені
- scikit-вчитися
- scripts
- Sdk
- секрет
- Сервери
- обслуговування
- Послуги
- комплект
- Форма
- Склад
- Повинен
- Шоу
- значний
- Кремній
- Силіконова долина
- простий
- з
- ситуацій
- невеликий
- So
- Софтвер
- рішення
- Рішення
- ВИРІШИТИ
- Source
- Джерела
- Простір
- спеціаліст
- інсценування
- старт
- стан
- Заява
- Крок
- заходи
- зберігання
- зберігати
- підмережі
- Успішно
- такі
- підтримка
- Підтриманий
- система
- таблиця
- завдання
- Технології
- Технологія
- шаблон
- terms
- Що
- Команда
- Джерело
- їх
- Їх
- Ці
- три
- через
- час
- до
- інструменти
- Усього:
- поїзд
- навчений
- Навчання
- поїзда
- типово
- університет
- Оновити
- us
- використання
- користувач
- користувачі
- Долина
- значення
- Цінності
- ветеран
- волонтер
- Вашингтон
- шлях..
- Web
- веб-сервіси
- який
- ВООЗ
- волі
- з
- в
- без
- Work
- запис
- XGBoost
- Ти
- вашу
- зефірнет