Создатель мудреца Амазонки — это полностью управляемая служба машинного обучения (ML). С помощью SageMaker специалисты по данным и разработчики могут быстро и легко создавать и обучать модели машинного обучения, а затем напрямую развертывать их в готовой к работе размещенной среде. Sagemaker предоставляет встроенный экземпляр блокнота для разработки Jupyter для удобного доступа к вашим источникам данных для исследования и анализа, поэтому вам не нужно управлять серверами. Он также предоставляет общие алгоритмы машинного обучения, оптимизированные для эффективной работы с чрезвычайно большими данными в распределенной среде.
SageMaker требует, чтобы обучающие данные для модели машинного обучения присутствовали либо в Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) или Amazon FSx для Lustre (дополнительную информацию см. в разделе Доступ к обучающим данным). Чтобы обучить модель с использованием данных, хранящихся за пределами трех поддерживаемых служб хранения, данные сначала необходимо загрузить в одну из этих служб (обычно Amazon S3). Это требует создания конвейера данных (с использованием таких инструментов, как Обработчик данных Amazon SageMaker) для перемещения данных в Amazon S3. Тем не менее, этот подход может создать проблему управления данными с точки зрения управления жизненным циклом этого носителя данных, создания элементов управления доступом, аудита данных и т. д., и все это с целью подготовки данных для обучения на время обучения. В таких ситуациях может быть желательно, чтобы данные были доступны для SageMaker на эфемерных носителях, подключенных к эфемерным обучающим инстансам, без промежуточного хранения данных в Amazon S3.
Этот пост показывает способ сделать это, используя Снежинка в качестве источника данных и путем загрузки данных непосредственно из Snowflake в экземпляр задания SageMaker Training.
Обзор решения
Мы используем Набор данных о жилье в Калифорнии в качестве обучающего набора данных для этого поста и обучите модель машинного обучения прогнозировать медианную стоимость дома для каждого района. Мы добавляем эти данные в Snowflake в виде новой таблицы. Мы создаем настраиваемый обучающий контейнер, который загружает данные непосредственно из таблицы Snowflake в обучающий экземпляр, а не сначала загружает данные в корзину S3. После загрузки данных в обучающий экземпляр настраиваемый обучающий сценарий выполняет задачи подготовки данных, а затем обучает модель машинного обучения с помощью Оценщик XGBoost. Весь код для этого поста доступен в Репо GitHub.
На следующем рисунке представлена высокоуровневая архитектура предлагаемого решения для использования Snowflake в качестве источника данных для обучения моделей машинного обучения с помощью SageMaker.
Этапы рабочего процесса следующие:
- Настройте блокнот SageMaker и Управление идентификацией и доступом AWS (IAM) с соответствующими разрешениями, чтобы разрешить SageMaker доступ Реестр Amazon Elastic Container (Amazon ECR), Secrets Manager и другие сервисы в вашей учетной записи AWS.
- Сохраните учетные данные своего аккаунта Snowflake в AWS Secrets Manager.
- Добавьте данные в таблицу в своей учетной записи Snowflake.
- Создайте собственный образ контейнера для обучения модели машинного обучения и отправьте его в Amazon ECR.
- Запустите задание SageMaker Training для обучения модели машинного обучения. Учебный экземпляр извлекает учетные данные Snowflake из диспетчера секретов, а затем использует эти учетные данные для загрузки набора данных непосредственно из Snowflake. Это шаг, который устраняет необходимость в предварительной загрузке данных в корзину S3.
- Обученная модель машинного обучения хранится в корзине S3.
Предпосылки
Чтобы реализовать решение, представленное в этом посте, у вас должен быть Аккаунт AWS, чтобы Снежинка аккаунт и знакомство с SageMaker.
Настройка SageMaker Notebook и роли IAM
Мы используем AWS CloudFormation для создания блокнота SageMaker под названием aws-aiml-blogpost-sagemaker-snowflake-example
и роль IAM под названием SageMakerSnowFlakeExample
. Выберите Стек запуска для региона, в который вы хотите развернуть ресурсы.
Храните учетные данные Snowflake в Secrets Manager
Сохраните свои учетные данные Snowflake в качестве секрета в Secrets Manager. Инструкции по созданию секрета см. Create an AWS Secrets Manager secret
.
- Назовите секрет
snowflake_credentials
. Это необходимо, потому что код вsnowflake-load-dataset.ipynb
ожидает, что секрет будет называться так. - Создайте секрет как пару ключ-значение с двумя ключами:
- username – Ваше имя пользователя Snowflake.
- password – Пароль, связанный с вашим именем пользователя Snowflake.
Получение данных из таблицы в вашей учетной записи Snowflake
Чтобы получить данные, выполните следующие действия:
- На консоли SageMaker выберите Ноутбуки в навигационной панели.
- Выберите блокнот aws-aiml-blogpost-sagemaker-snowflake-example и выберите Откройте JupyterLab.
- Выберите
snowflake-load-dataset.ipynb
чтобы открыть его в JupyterLab. Этот блокнот будет принимать Набор данных о жилье в Калифорнии к столу Снежинка. - В записной книжке отредактируйте содержимое следующей ячейки, заменив значения заполнителей значениями, соответствующими вашей учетной записи Snowflake:
- В меню «Выполнить» выберите Запустить все ячейки для запуска кода в этой записной книжке. Это загрузит набор данных локально в записную книжку, а затем поместит его в таблицу Snowflake.
Следующий фрагмент кода в записной книжке загружает набор данных в Snowflake. См. snowflake-load-dataset.ipynb
Блокнот для полного кода.
- Закройте блокнот после того, как все ячейки будут выполнены без ошибок. Ваши данные теперь доступны в Snowflake. На следующем снимке экрана показано
california_housing
таблица, созданная в Snowflake.
Запустите sagemaker-snowflake-example.ipynb
ноутбук
Этот блокнот создает настраиваемый обучающий контейнер с подключением Snowflake, извлекает данные из Snowflake во временное хранилище обучающего экземпляра, не помещая их в Amazon S3, и выполняет обучение модели распределенных данных XGBoost на основе данных. Обучение DDP не требуется для обучения модели на таком небольшом наборе данных; он включен здесь для иллюстрации еще одной недавно выпущенной функции SageMaker.
Создайте собственный контейнер для обучения
Теперь мы создаем пользовательский контейнер для задания обучения модели машинного обучения. Обратите внимание, что для создания контейнера 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 для подключения к Secrets Manager для получения учетных данных Snowflake.
Использование коннектора Snowflake и скрипта Python гарантирует, что пользователям, использующим этот образ контейнера для обучения модели машинного обучения, не придется писать этот код как часть своего обучающего скрипта, и они смогут использовать уже доступные им функции.
Ниже приведен файл Dockerfile для учебного контейнера:
Образ контейнера создается и отправляется в Amazon ECR. Это изображение используется для обучения модели машинного обучения.
Обучите модель машинного обучения с помощью задания SageMaker Training.
После того как мы успешно создадим образ контейнера и отправим его в Amazon ECR, мы сможем начать использовать его для обучения модели.
- Мы создаем набор сценариев Python для загрузки данных из Snowflake с помощью Коннектор Snowflake для Python, подготовьте данные и затем используйте
XGBoost Regressor
для обучения модели ML. Это этап загрузки данных непосредственно в обучающий экземпляр, который позволяет избежать использования Amazon S3 в качестве промежуточного хранилища для обучающих данных. - Мы облегчаем параллельное обучение с распределенными данными, заставляя обучающий код загружать случайное подмножество данных таким образом, чтобы каждый обучающий экземпляр загружал равное количество данных из Snowflake. Например, если есть два обучающих узла, то каждый узел загружает случайную выборку из 50% строк в таблице Snowflake. См. следующий код:
- Затем мы предоставляем сценарий обучения SageMaker SDK.
Estimator
вместе с исходным каталогом, чтобы все сценарии, которые мы создаем, могли быть предоставлены контейнеру обучения, когда задание обучения запускается с использованиемEstimator.fit
Метод:Для получения дополнительной информации обратитесь к Подготовьте сценарий обучения Scikit-Learn.
- После завершения обучения модели обученная модель доступна в качестве
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 по науке о данных и аналитике в Джорджтаунском университете в Вашингтоне, округ Колумбия.
Дивья Муралидхаран работает архитектором решений в Amazon Web Services. Она увлечена тем, что помогает корпоративным клиентам решать бизнес-задачи с помощью технологий. Она имеет степень магистра компьютерных наук Рочестерского технологического института. Вне офиса она готовит, поет и выращивает растения.
Сергей Ермолин является главным архитектором решений AIML в AWS. Ранее он был архитектором программных решений для технологий глубокого обучения, аналитики и больших данных в Intel. Ветеран Кремниевой долины, страстно увлеченный машинным обучением и искусственным интеллектом, Сергей интересовался нейронными сетями еще до появления графических процессоров, когда он использовал их для прогнозирования старения кварцевых кристаллов и цезиевых атомных часов в Hewlett-Packard. Сергей имеет сертификаты MSEE и CS Стэнфорда, а также степень бакалавра в области физики и машиностроения Калифорнийского государственного университета в Сакраменто. Вне работы Сергей увлекается виноделием, катанием на лыжах, велосипеде, парусным спортом и подводным плаванием. Сергей также является пилотом-добровольцем Полет ангела.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: 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
- АИМЛ
- алгоритмы
- Все
- позволяет
- уже
- Amazon
- Амазон ФСх
- Создатель мудреца Амазонки
- Amazon Web Services
- количество
- анализ
- аналитика
- и
- Другой
- подхода
- соответствующий
- архитектура
- МЫ
- искусственный
- искусственный интеллект
- AS
- связанный
- At
- аудит
- авторинга
- доступен
- AWS
- AWS CloudFormation
- Использование темпера с изогнутым основанием
- основанный
- BE
- , так как:
- большой
- Big Data
- строить
- Строительство
- построенный
- бизнес
- by
- Калифорния
- под названием
- CAN
- Клетки
- сертификат
- вызов
- расходы
- Выберите
- Уборка
- Часы
- облако
- код
- Column
- Колонки
- комментарий
- Общий
- полный
- компьютер
- Информатика
- Свяжитесь
- связи
- Консоли
- Container
- содержит
- содержание
- контрольная
- Создайте
- создали
- создает
- Создающий
- Полномочия
- изготовленный на заказ
- Клиенты
- данным
- управление данными
- Подготовка данных
- наука о данных
- хранение данных
- Дата и время
- Дней
- DDP
- Решение
- глубоко
- глубокое обучение
- По умолчанию
- Степень
- развертывание
- развернуть
- застройщиков
- непосредственно
- распределенный
- район
- Docker
- Dont
- скачать
- загрузок
- каждый
- легко
- эффективно
- или
- ликвидирует
- в другом месте
- включен
- поощрять
- Конечная точка
- Проект и
- обеспечивает
- Предприятие
- Окружающая среда
- ошибка
- пример
- выполнять
- существует
- надеется
- исследование
- Исследование
- Экстракты
- чрезвычайно
- содействовал
- ярмарка
- фамильярность
- Особенность
- фигура
- Файл
- окончательный
- Во-первых,
- соответствовать
- после
- следующим образом
- Что касается
- от
- полный
- полностью
- функциональность
- будущее
- получить
- получающий
- GitHub
- будет
- Рост
- Есть
- имеющий
- помощь
- здесь
- на высшем уровне
- имеет
- состоялся
- хостов
- Вилла / Бунгало
- жилье
- Как
- How To
- Однако
- HTML
- HTTPS
- Личность
- изображение
- осуществлять
- реализация
- Импортировать
- in
- включают
- включены
- индекс
- информация
- инновации
- устанавливать
- пример
- Институт
- инструкции
- интегрировать
- интегрированный
- Intel
- Интеллекта
- заинтересованный
- IT
- работа
- ключи
- портативный компьютер
- большой
- Фамилия
- УЧИТЬСЯ
- изучение
- Оставлять
- Жизненный цикл
- ln
- в местном масштабе
- машина
- обучение с помощью машины
- управлять
- управляемого
- управление
- менеджер
- управления
- вручную
- согласование
- механический
- Медиа
- средний
- Меню
- метод
- ML
- модель
- Модели
- БОЛЕЕ
- двигаться
- MS
- имя
- Навигация
- Необходимость
- потребности
- сетей
- нейронные сети
- Новые
- следующий
- узел
- узлы
- ноутбук
- номер
- объект
- of
- Офис
- on
- ONE
- открытый
- оптимизированный
- заказ
- организация
- Другое
- внешнюю
- пакет
- панд
- хлеб
- Параллельные
- часть
- страсть
- страстный
- Пароль
- выполняет
- Разрешения
- Физика
- пилот
- трубопровод
- заполнитель
- растения
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- сборах
- населенный
- После
- предсказывать
- Подготовить
- представить
- предварительно
- Основной
- проблемам
- FitPartner™
- предложило
- обеспечивать
- при условии
- приводит
- цель
- Push
- толкнул
- Питон
- Вопросы
- быстро
- случайный
- быстро
- скорее
- Читать
- недавно
- учет
- снижает
- область
- выпустил
- соответствующие
- замещать
- представляет
- обязательный
- требуется
- Полезные ресурсы
- возвращают
- Роли
- корень
- РЯД
- Run
- Сакраменто
- sagemaker
- парусный спорт
- Сохранить
- Шкала
- Наука
- Ученые
- scikit учиться
- скрипты
- SDK
- Secret
- Серверы
- обслуживание
- Услуги
- набор
- Форма
- Оболочка
- должен
- Шоу
- значительный
- кремний
- Кремниевая долина
- просто
- с
- обстоятельства
- небольшой
- So
- Software
- Решение
- Решения
- РЕШАТЬ
- Источник
- Источники
- Space
- специалист
- инсценировка
- Начало
- Область
- заявление
- Шаг
- Шаги
- диск
- хранить
- подсеть
- Успешно
- такие
- поддержка
- Поддержанный
- система
- ТАБЛИЦЫ
- задачи
- технологии
- Технологии
- шаблон
- terms
- который
- Ассоциация
- Источник
- их
- Их
- Эти
- три
- Через
- время
- в
- инструменты
- Всего
- Train
- специалистов
- Обучение
- поезда
- типично
- Университет
- Обновление ПО
- us
- использование
- Информация о пользователе
- пользователей
- Долина
- ценностное
- Наши ценности
- ветеран
- волонтер
- Вашингтон
- Путь..
- Web
- веб-сервисы
- который
- КТО
- будете
- в
- без
- Работа
- записывать
- XGBoost
- Ты
- ВАШЕ
- зефирнет