Магазин функций Amazon SageMaker предоставляет комплексное решение для автоматизации разработки функций для машинного обучения (ML). Во многих случаях использования машинного обучения необработанные данные, такие как файлы журналов, показания датчиков или записи транзакций, необходимо преобразовать в значимые функции, оптимизированные для обучения модели.
Качество функций имеет решающее значение для обеспечения высокой точности модели машинного обучения. Преобразование необработанных данных в функции с использованием агрегации, кодирования, нормализации и других операций часто необходимо и может потребовать значительных усилий. Инженеры должны вручную писать собственную логику предварительной обработки и агрегирования данных на Python или Spark для каждого варианта использования.
Эта недифференцированная тяжелая работа является громоздкой, повторяющейся и подверженной ошибкам. Процессор функций хранилища функций SageMaker снижает это бремя за счет автоматического преобразования необработанных данных в агрегированные функции, подходящие для пакетного обучения моделей машинного обучения. Он позволяет инженерам предоставлять простые функции преобразования данных, а затем запускать их в масштабе Spark и управлять базовой инфраструктурой. Это позволяет ученым и инженерам данных сосредоточиться на логике проектирования функций, а не на деталях реализации.
В этом посте мы демонстрируем, как компания по продаже автомобилей может использовать Feature Processor для преобразования необработанных данных о транзакциях продаж в функции в три этапа:
- Локальные запуски преобразований данных.
- Удаленная работа в любом масштабе с использованием Spark.
- Эксплуатация через конвейеры.
Мы показываем, как SageMaker Feature Store принимает необработанные данные, удаленно выполняет преобразования объектов с помощью Spark и загружает полученные агрегированные функции в файл. группа функций. Эти инженерные функции затем можно использовать для обучения моделей машинного обучения.
В этом примере использования мы увидим, как SageMaker Feature Store помогает преобразовать необработанные данные о продажах автомобилей в структурированные функции. Эти функции впоследствии используются для получения такой информации, как:
- Средняя и максимальная цена красных кабриолетов 2010 года.
- Модели с лучшим пробегом по сравнению с ценой
- Тенденции продаж новых и подержанных автомобилей за последние годы
- Различия в средней рекомендованной розничной цене в разных регионах
Мы также видим, как конвейеры SageMaker Feature Store обновляют функции по мере поступления новых данных, что позволяет компании постоянно получать ценную информацию с течением времени.
Обзор решения
Работаем с датасетом car_data.csv
, который содержит такие характеристики, как модель, год, статус, пробег, цена и рекомендуемая розничная цена для подержанных и новых автомобилей, продаваемых компанией. На следующем снимке экрана показан пример набора данных.
Блокнот для решения feature_processor.ipynb
содержит следующие основные шаги, которые мы объясняем в этом посте:
- Создайте две группы объектов: одну с названием
car-data
для отчетов о продажах сырых автомобилей и еще одного под названиемcar-data-aggregated
для совокупных данных о продажах автомобилей. - Использовать
@feature_processor
декоратор для загрузки данных в группу функций car-data из Простой сервис хранения Amazon (Amazon S3). - Запустите
@feature_processor code
удаленно как приложение Spark для агрегирования данных. - Ввести в эксплуатацию процессор функций через Конвейеры SageMaker и расписание запусков.
- Изучите конвейеры обработки функций и происхождение in Студия Amazon SageMaker.
- Используйте агрегированные функции для обучения модели ML.
Предпосылки
Чтобы следовать этому руководству, вам необходимо следующее:
В этом посте мы ссылаемся на следующее ноутбук, в котором показано, как начать работу с Feature Processor с помощью SageMaker Python SDK.
Создание групп функций
Чтобы создать группы объектов, выполните следующие шаги:
- Создайте определение группы объектов для
car-data
следующим образом:
Характеристики соответствуют каждому столбцу в car_data.csv
набор данных (Model
, Year
, Status
, Mileage
, Price
и MSRP
).
- Добавьте идентификатор записи
id
и время мероприятияingest_time
в группу функций:
- Создайте определение группы объектов для
car-data-aggregated
следующим образом:
Для агрегированной группы функций такими функциями являются статус модельного года, средний пробег, максимальный пробег, средняя цена, максимальная цена, средняя рекомендуемая розничная цена, максимальная рекомендуемая розничная цена и время приема. Добавляем идентификатор записи model_year_status
и время мероприятия ingest_time
к этой группе функций.
- Теперь создайте
car-data
группа функций:
- Создайте
car-data-aggregated
группа функций:
Вы можете перейти к опции «Магазин функций SageMaker» в разделе Данные в SageMaker Studio Главная меню, чтобы просмотреть группы функций.
Используйте декоратор @feature_processor для загрузки данных
В этом разделе мы локально преобразуем необработанные входные данные (car_data.csv
) из Amazon S3 в car-data
группу функций с помощью процессора функций хранилища функций. Этот первоначальный локальный запуск позволяет нам разрабатывать и выполнять итерации перед удаленным запуском, и при желании его можно выполнить на выборке данных для более быстрой итерации.
Для @feature_processor
декоратор, ваша функция преобразования выполняется в среде выполнения Spark, где входные аргументы, предоставляемые вашей функции, и ее возвращаемое значение — это кадры данных Spark.
- Установить SDK процессора функций из SDK для SageMaker Python и его дополнения, используя следующую команду:
Количество входных параметров в вашей функции преобразования должно совпадать с количеством входов, настроенных в @feature_processor
декоратор. В этом случае @feature_processor
декоратор имеет car-data.csv
в качестве входных данных и car-data
группа объектов в качестве выходных данных, что указывает на то, что это пакетная операция с target_store
as OfflineStore
:
- Определите
transform()
функция преобразования данных. Эта функция выполняет следующие действия:- Преобразуйте имена столбцов в нижний регистр.
- Добавьте время события в
ingest_time
колонка. - Удалите знаки препинания и замените пропущенные значения на NA.
- Позвоните
transform()
функция для хранения данных вcar-data
группа функций:
Вывод показывает, что данные успешно принимаются в группу функций данных автомобиля.
Выход из transform_df.show()
функция следующая:
Мы успешно преобразовали входные данные и поместили их в car-data
группа функций.
Запустите код @feature_processor удаленно
В этом разделе мы демонстрируем удаленный запуск кода обработки функций в качестве приложения Spark с помощью @remote
декоратор, описанный ранее. Мы запускаем обработку объектов удаленно с помощью Spark для масштабирования до больших наборов данных. Spark обеспечивает распределенную обработку в кластерах для обработки данных, которые слишком велики для одной машины. @remote
декоратор запускает локальный код Python как одноузловое или многоузловое обучающее задание SageMaker.
- Использовать
@remote
декоратор вместе с@feature_processor
декоратор следующим образом:
Ассоциация spark_config
параметр указывает, что это запускается как Spark application
. Экземпляр SparkConfig настраивает конфигурацию и зависимости Spark.
- Определите
aggregate()
функция для агрегирования данных с использованием PySpark SQL и пользовательских функций (UDF). Эта функция выполняет следующие действия:- Объединить
model
,year
иstatus
для созданияmodel_year_status
. - Возьмите среднее значение
price
для созданияavg_price
. - Возьмите максимальное значение
price
для созданияmax_price
. - Возьмите среднее значение
mileage
для созданияavg_mileage
. - Возьмите максимальное значение
mileage
для созданияmax_mileage
. - Возьмите среднее значение
msrp
для созданияavg_msrp
. - Возьмите максимальное значение
msrp
для созданияmax_msrp
. - Группа по
model_year_status
.
- Объединить
- Запустите
aggregate()
функция, которая создает обучающее задание SageMaker для запуска приложения Spark:
В результате SageMaker создает задание обучения для приложения Spark, определенного ранее. Он создаст среду выполнения Spark, используя sagemaker-spark-processing image
.
Здесь мы используем задания обучения SageMaker для запуска нашего приложения обработки функций Spark. С помощью SageMaker Training вы можете сократить время запуска до 1 минуты или меньше, используя «теплый пул», недоступный в SageMaker Processing. Это делает обучение SageMaker более оптимизированным для коротких пакетных заданий, таких как обработка объектов, где время запуска важно.
- Чтобы просмотреть подробную информацию, на консоли SageMaker выберите Работа по обучению под Обучение в панели навигации, затем выберите задание с названием
aggregate-<timestamp>
.
Выход из агрегат() функция генерирует код телеметрии. Внутри вывода вы увидите агрегированные данные следующим образом:
Когда задание обучения будет завершено, вы должны увидеть следующий результат:
Введение в эксплуатацию процессора функций с помощью конвейеров SageMaker.
В этом разделе мы демонстрируем, как ввести в эксплуатацию обработчик функций, добавив его в конвейер SageMaker и запланировав запуски.
- Сначала загрузите Transform_code.py файл, содержащий логику обработки объектов в Amazon S3:
- Затем создайте конвейер Feature Processor. car_data_pipeline используя .to_pipeline() функция:
- Чтобы запустить конвейер, используйте следующий код:
- Аналогичным образом вы можете создать конвейер для агрегированных функций, называемый
car_data_aggregated_pipeline
и начать бежать. - Запланируйте
car_data_aggregated_pipeline
запускаться каждые 24 часа:
В разделе вывода вы увидите ARN конвейера и роль выполнения конвейера, а также детали расписания:
- Чтобы получить все конвейеры Feature Processor в этой учетной записи, используйте команду
list_pipelines()
Функция процессора функций:
Вывод будет следующим:
Мы успешно создали конвейеры процессора функций SageMaker.
Изучите конвейеры обработки функций и линию ML
В SageMaker Studio выполните следующие шаги:
- На консоли SageMaker Studio на вкладке Главная Меню, выберите Трубопроводы.
Вы должны увидеть два созданных конвейера: car-data-ingestion-pipeline
и car-data-aggregated-ingestion-pipeline
.
- Выберите
car-data-ingestion-pipeline
.
Он показывает детали запуска на Казни меню.
- Чтобы просмотреть группу объектов, заполненную конвейером, выберите Магазин функций под Данные , а затем выбрать
car-data
.
Вы увидите две группы функций, которые мы создали на предыдущих шагах.
- Выберите
car-data
группа функций.
Вы увидите подробную информацию о функциях на Особенности меню.
Просмотр запусков конвейера
Чтобы просмотреть запуски конвейера, выполните следующие действия:
- На Конвейерное исполнениевкладка s, выберите
car-data-ingestion-pipeline
.
Это покажет все прогоны.
- Выберите одну из ссылок, чтобы увидеть подробности забега.
- Чтобы просмотреть происхождение, выберите «Происхождение».
Полная родословная для car-data
показывает источник входных данных car_data.csv
и вышестоящие организации. Родословная для car-data-aggregated
показывает ввод car-data
группа функций.
- Выберите Загрузить функции и затем выберите Запрос исходной линии on
car-data
иcar-data-ingestion-pipeline
чтобы увидеть все вышестоящие объекты.
Полная родословная для car-data
Группа функций должна выглядеть так, как показано на следующем снимке экрана.
Аналогично, родословная car-aggregated-data
Группа функций должна выглядеть так, как показано на следующем снимке экрана.
SageMaker Studio предоставляет единую среду для отслеживания запланированных конвейеров, просмотра запусков, изучения происхождения и просмотра кода обработки функций.
Агрегированные функции, такие как средняя цена, максимальная цена, средний пробег и т. д., в car-data-aggregated
Группа функций дает представление о характере данных. Вы также можете использовать эти функции в качестве набора данных для обучения модели прогнозированию цен на автомобили или для других операций. Однако обучение модели выходит за рамки этой статьи, в которой основное внимание уделяется демонстрации возможностей SageMaker Feature Store для разработки функций.
Убирать
Не забудьте очистить ресурсы, созданные в рамках этого поста, чтобы избежать текущих расходов.
- Отключите запланированный конвейер через
fp.schedule()
метод с параметром состояния какDisabled
:
- Удалите обе группы объектов:
Данные, находящиеся в корзине S3 и автономном хранилище функций, могут повлечь за собой расходы, поэтому вам следует удалить их, чтобы избежать каких-либо расходов.
- Удалить объекты S3.
- Удалить записи из хранилища функций.
Заключение
В этом посте мы продемонстрировали, как компания по продаже автомобилей использовала процессор функций SageMaker Feature Store для получения ценной информации из необработанных данных о продажах путем:
- Прием и преобразование пакетных данных в любом масштабе с помощью Spark
- Внедрение рабочих процессов проектирования функций с помощью конвейеров SageMaker.
- Обеспечение отслеживания происхождения и единой среды для мониторинга конвейеров и изучения функций.
- Подготовка агрегированных функций, оптимизированных для обучения моделей ML
Следуя этим шагам, компания смогла преобразовать ранее непригодные для использования данные в структурированные функции, которые затем можно было использовать для обучения модели прогнозированию цен на автомобили. SageMaker Feature Store позволил им сосредоточиться на разработке функций, а не на базовой инфраструктуре.
Мы надеемся, что этот пост поможет вам получить ценную информацию об машинном обучении на основе ваших собственных данных с помощью процессора функций SageMaker Feature Store!
Для получения дополнительной информации см. Обработка функций и пример SageMaker на Магазин функций Amazon SageMaker: введение в процессор функций.
Об авторах
Дхавал Шах — старший архитектор решений в AWS, специализирующийся на машинном обучении. Уделяя особое внимание цифровому бизнесу, он дает клиентам возможность использовать AWS и стимулировать рост своего бизнеса. Будучи энтузиастом машинного обучения, Дхавалом движет страсть к созданию эффективных решений, приносящих позитивные изменения. В свободное время он предается любви к путешествиям и ценит приятные моменты со своей семьей.
Нинад Джоши — старший архитектор решений в AWS, помогающий клиентам AWS по всему миру разрабатывать безопасные, масштабируемые и экономичные решения в облаке для решения сложных реальных бизнес-задач. Его работа в области машинного обучения (МО) охватывает широкий спектр вариантов использования искусственного интеллекта и машинного обучения, уделяя особое внимание сквозному машинному обучению, обработке естественного языка и компьютерному зрению. До прихода в AWS Нинад более 12 лет работал разработчиком программного обеспечения. Помимо своей профессиональной деятельности, Нинад любит играть в шахматы и исследовать различные гамбиты.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/unlock-ml-insights-using-the-amazon-sagemaker-feature-store-feature-processor/
- :имеет
- :является
- :нет
- :куда
- $UP
- 1
- 10
- 100
- 11
- 116
- 12
- 13
- 14
- 15%
- 16
- 20
- 24
- 26%
- 40
- 7
- 8
- 9
- a
- в состоянии
- Учетная запись
- точный
- через
- действия
- Добавить
- совокупный
- агрегирование
- AI / ML
- Все
- позволяет
- вдоль
- причислены
- Amazon
- Создатель мудреца Амазонки
- Amazon Web Services
- an
- и
- Другой
- любой
- Применение
- МЫ
- Аргументы
- AS
- At
- автоматизировать
- автоматически
- доступен
- в среднем
- избежать
- AWS
- основной
- BE
- до
- ЛУЧШЕЕ
- Лучшая
- большой
- изоферменты печени
- приносить
- бремя
- бизнес
- бизнес
- by
- под названием
- CAN
- возможности
- автомобиль
- легковые автомобили
- случаев
- случаев
- проблемы
- изменение
- расходы
- шахматы
- Выберите
- облако
- код
- Column
- Колонки
- выходит
- Компания
- полный
- комплекс
- компьютер
- Компьютерное зрение
- Конфигурация
- настроить
- Консоли
- содержит
- беспрестанно
- конвертировать
- Цена
- Расходы
- может
- Обложки
- Создайте
- создали
- создает
- Создающий
- критической
- громоздкий
- изготовленный на заказ
- Клиенты
- данным
- Наборы данных
- определенный
- определение
- демонстрировать
- убивают
- демонстрирует
- демонстрирующий
- Зависимости
- описано
- описание
- Проект
- желанный
- подробнее
- развивать
- Застройщик
- различный
- Интернет
- инвалид
- отображать
- распределенный
- сделанный
- управлять
- управляемый
- каждый
- Ранее
- Эффективный
- усилие
- Наделяет
- включен
- позволяет
- позволяет
- впритык
- усилия
- Проект и
- Инженеры
- обеспечивать
- энтузиаст
- лиц
- Окружающая среда
- События
- Каждая
- пример
- выполнять
- выполнение
- Выход
- Объяснять
- Больше
- Исследование
- семья
- быстрее
- Особенность
- Особенности
- Файл
- Файлы
- Фокус
- фокусируется
- следовать
- после
- следующим образом
- Что касается
- дробный
- от
- полный
- функция
- Функции
- Gain
- генерирует
- получить
- Глобальный
- группы
- Группы
- Рост
- обрабатывать
- Ручки
- Есть
- he
- Заголовки
- тяжелый
- тяжелая атлетика
- помощь
- помогает
- здесь
- выделив
- очень
- его
- Главная
- надежды
- ЧАСЫ
- Как
- How To
- Однако
- HTML
- HTTPS
- ID
- идентификатор
- if
- изображение
- эффектных
- реализация
- Импортировать
- важную
- in
- В том числе
- указывает
- info
- информация
- Инфраструктура
- начальный
- вход
- затраты
- внутри
- понимание
- размышления
- устанавливать
- пример
- в
- IT
- итерация
- ЕГО
- работа
- Джобс
- присоединение
- JPG
- Сохранить
- язык
- большой
- изучение
- Меньше
- Lets
- Кредитное плечо
- Подтяжка лица
- такое как
- происхождение
- связи
- Список
- загрузка
- грузы
- локальным
- в местном масштабе
- журнал
- логика
- посмотреть
- выглядит как
- любят
- машина
- обучение с помощью машины
- Главная
- ДЕЛАЕТ
- управления
- вручную
- многих
- Совпадение
- Макс
- максимальный
- MDX
- значимым
- Меню
- метод
- минут
- отсутствующий
- ML
- модель
- Модели
- Моменты
- монитор
- БОЛЕЕ
- должен
- имя
- имена
- родной
- натуральный
- Обработка естественного языка
- природа
- Откройте
- Навигация
- Необходимость
- необходимый
- Новые
- узел
- ноутбук
- номер
- of
- оффлайн
- .
- on
- ONE
- постоянный
- только
- операция
- Операционный отдел
- оптимизированный
- Опция
- or
- Другое
- наши
- внешний
- выходной
- внешнюю
- за
- собственный
- хлеб
- параметр
- параметры
- часть
- страсть
- Выполнять
- выполняет
- трубопровод
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- игры
- населенный
- положительный
- После
- pr
- предсказывать
- предыдущий
- предварительно
- цена
- Цены
- первичный
- Предварительный
- обработка
- процессор
- профессиональный
- Содействие
- обеспечивать
- при условии
- приводит
- Питон
- ассортимент
- скорее
- Сырье
- реальный мир
- запись
- учет
- Red
- уменьшить
- снижает
- относиться
- удаление
- повторяющийся
- замещать
- требовать
- Полезные ресурсы
- результат
- в результате
- возвращают
- Роли
- Run
- Бег
- работает
- s
- sagemaker
- sale
- главная
- масштабируемые
- Шкала
- график
- считаться
- планирование
- Ученые
- сфера
- SDK
- SDN
- секунды
- Раздел
- безопасный
- посмотреть
- старший
- Услуги
- Короткое
- должен
- показывать
- Шоу
- значительный
- просто
- одинарной
- единая среда
- So
- Software
- проданный
- Решение
- Решения
- РЕШАТЬ
- Источник
- Искриться
- специализация
- спецификации
- указанный
- Спорт
- Начало
- и политические лидеры
- ввод в эксплуатацию
- Область
- Статус:
- Шаги
- диск
- магазин
- Хранить данные
- строка
- сильный
- структурированный
- студия
- отправить
- впоследствии
- успешный
- Успешно
- такие
- подходящее
- ТАБЛИЦЫ
- чем
- который
- Ассоциация
- Государство
- их
- Их
- тогда
- Эти
- этой
- три
- время
- раз
- в
- слишком
- топ
- трек
- Отслеживание
- Train
- Обучение
- сделка
- Transform
- трансформация
- преобразований
- преобразован
- превращение
- путешествовать
- Тенденции
- учебник
- два
- напишите
- Типы
- ui
- под
- лежащий в основе
- отпереть
- обновление
- us
- использование
- прецедент
- используемый
- через
- ценный
- ценностное
- Наши ценности
- различный
- Транспорт
- с помощью
- Вид
- видение
- vs
- теплый
- законопроект
- we
- Web
- веб-сервисы
- , которые
- широкий
- Широкий диапазон
- будете
- Работа
- работавший
- Рабочие процессы
- записывать
- год
- лет
- Ты
- ВАШЕ
- зефирнет