AWS SageMaker - обработка данных в реальном времени

Моя компания проводит анализ поведения потребителей в Интернете, и мы делаем прогнозы в реальном времени, используя данные, которые мы собрали на различных веб-сайтах (с нашим встроенным сценарием Java).

Мы использовали AWS ML для прогнозирования в реальном времени, но теперь мы экспериментируем с AWS SageMaker, и нам пришло в голову, что обработка данных в реальном времени является проблемой по сравнению с AWS ML. Например, у нас есть некоторые строковые переменные, которые AWS ML может преобразовать в числовые значения и автоматически использовать их для прогнозирования в реальном времени в AWS ML. Но, похоже, SageMaker не может это сделать.

У кого-нибудь есть опыт обработки и прогнозирования данных в реальном времени в AWS SageMaker?

4 ответа

Похоже, вы знакомы только с обучающим компонентом SageMaker. SageMaker имеет несколько различных компонентов:

  1. Ноутбуки Jupyter
  2. этикетирование
  3. Повышение квалификации
  4. вывод

Скорее всего, вы имеете дело с № 3 и № 4. Есть несколько способов работы с SageMaker здесь. Вы можете использовать один из встроенных алгоритмов, которые предоставляют как обучающие, так и логические контейнеры, которые могут быть запущены в SageMaker. Чтобы использовать их, вы можете работать полностью из консоли и просто указывать на свои данные в S3, подобно AWS ML. Если вы не используете встроенные алгоритмы, то вы можете использовать https://github.com/aws/sagemaker-python-sdk для создания контейнеров обучения и прогнозирования, если вы используете общую среду, такую ​​как тензорный поток, mxnet, pytorch или другие. Наконец, если вы используете супер настраиваемый алгоритм (который вы не использовали при переносе из AWS ML), вы можете принести свой собственный докер-контейнер для обучения и вывода.

Чтобы создать конечную точку вывода, вы можете перейти к консоли в разделе "Вывод" и щелкнуть вокруг, чтобы построить свою конечную точку. Посмотрите GIF здесь для примера:

Помимо этого, если вы хотите использовать код для вызова конечной точки в режиме реального времени, вы можете использовать любой из AWS SDK, я продемонстрирую здесь на python SDK boto3:

import boto3
sagemaker = boto3.client("runtime.sagemaker")
response = sagemaker.invoke_endpoint(EndpointName="herpderp", Body="some content")

В этом коде, если вам нужно преобразовать входящие строковые значения в числовые значения, вы можете легко сделать это с помощью кода.

Да, оно может! Вы должны создать конвейер (Preprocess + модель + Postprocess) и развернуть его как конечную точку для вывода в реальном времени. Вы можете дважды проверить пример вывода на сайте Sagemaker GitHub. он использует sagemaker-python-sdk для обучения и развертывания. 1: Это для маленькой модели данных sklearn.

https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-python-sdk/scikit_learn_inference_pipeline

2: он также поддерживает большие данные (Spark ML Pipeline, обслуживающий контейнер), вы также можете найти пример в его официальном github.

AWS SageMaker - это надежный сервис машинного обучения в AWS, который управляет всеми основными аспектами внедрения машинного обучения, включая подготовку данных, построение модели, обучение и точную настройку, а также развертывание.

Подготовка

SageMaker использует ряд ресурсов, чтобы упростить подготовку данных для моделей машинного обучения, даже если они поступают из многих источников или представлены в различных форматах.

С помощью SageMaker Ground Truth легко помечать данные, включая видео, изображения и текст, которые автоматически преобразуются в пригодные для использования данные. GroundWork обработает и объединит эти данные с помощью автоматической сегментации и набора инструментов для создания единой метки данных, которую можно использовать в моделях машинного обучения. AWS в сочетании с SageMaker Data Wrangler и SageMaker Processing сокращает этап подготовки данных, который может занять недели или месяцы, до нескольких дней, если не часов.

Строить

Блокноты SageMaker Studio централизованно объединяют все, что имеет отношение к вашим моделям машинного обучения, позволяя удобно делиться ими вместе с соответствующими данными. Вы можете выбрать один из множества встроенных алгоритмов с открытым исходным кодом, чтобы начать обработку данных с помощью SageMaker JumpStart, или вы можете создать собственные параметры для своей модели машинного обучения.

После того, как вы выбрали модель, SageMaker автоматически начинает обработку данных и предлагает простой и понятный интерфейс для отслеживания прогресса и производительности вашей модели.

Обучение

SageMaker предоставляет ряд инструментов для обучения вашей модели на основе подготовленных вами данных, включая встроенный отладчик для обнаружения возможных ошибок.

Машинное обучение Результаты учебного задания сохраняются в корзине Amazon S3, где их можно просматривать с помощью других сервисов AWS, включая AWS Quicksight.

Развертывание

Бессмысленно иметь сильные модели машинного обучения, если их невозможно легко развернуть в вашей инфраструктуре хостинга. К счастью, SageMaker позволяет развертывать модели машинного обучения в ваших текущих сервисах и приложениях всего одним щелчком мыши.

SageMaker позволяет обрабатывать данные и делать прогнозы в реальном времени после установки. Это имеет далеко идущие последствия во множестве областей, включая финансы и здравоохранение. Например, компании, работающие на фондовом рынке, могут в режиме реального времени принимать финансовые решения в отношении акций и совершать более привлекательные приобретения, определяя лучшее время для покупки.

Включение в Amazon Comprehend позволяет обрабатывать естественный язык, преобразовывать человеческую речь в полезные данные для обучения более совершенных моделей или предоставлять клиентам чат-бота через Amazon Lex.

В заключении…

Машинное обучение больше не является нишевым технологическим курьезом; теперь он играет решающую роль в процессах принятия решений тысячами компаний по всему миру. Никогда еще не было лучшего времени для начала пути к машинному обучению, чем сейчас, с практически неограниченными фреймворками и простой интеграцией в систему AWS.

В этом случае вам нужно будет предварительно обработать ваши данные перед подачей их в тело запроса InvokeEndpoint. Если вы используете python, вы можете использовать int('your_integer_string') или float('your_float_string'), чтобы преобразовать строку в целое число или число с плавающей точкой. Если вы используете Java, вы можете использовать Integer.parseInt("yourIntegerString") или Long.parseLong("yourLongString") или Double.parseDouble("yourDoubleString") или Float.parseFloat("yourFloatString").

Надеюсь это поможет!

-Han

Другие вопросы по тегам