Практическое глубокое обучение с использованием AWS SageMaker, AWS Lambda и API Gateway.

Обзор

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



В этой статье давайте воспользуемся моделью глубокого обучения, предоставляемой AWS SageMaker, и предоставим конечную точку, использующую Lamba и API Gateway.

Разверните модель глубокого обучения

Я собираюсь развернуть YOLOv3 Object Detector из AWS Marketplace

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

После развертывания вы сможете увидеть конечную точку модели.

Вывод с использованием Boto3

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

Исходный код можно найти в этом репозитории.

Бессерверные API с использованием Lambda и API Gateway

Вместо того, чтобы открывать конечную точку напрямую, я собираюсь развернуть лямбда-функцию для вызова конечной точки. API будет настроен для вызова функции Lambda.

Для развертывания я буду использовать AWS CDK. Прочтите эту статью, если вы не знакомы с AWS CDK.



Лямбда-функция

Я собираюсь использовать функцию Lambda ниже.

  • Имя конечной точки находится в переменной среды.
  • Изображение передается как строка в кодировке base64.
  • Прогнозы возвращаются в виде строки в кодировке JSON.

Развертывание с помощью CDK

Для автоматизации развертывания я использую AWS CDK.

  • Предоставляются разрешения на выполнение функции Lambda и вызов конечной точки SageMaker.
  • Тайм-аут для функции Lambda настроен на 60 секунд.

Запустите «cdk deploy», чтобы настроить среду.

Проект CDK можно найти в этом репозитории.

Тестирование

Для тестирования я использую библиотеку requests для публикации в API, чтобы делать выводы.

Прогнозы возвращаются в виде строки JSON.

Исходный код можно найти в этом репозитории.

Внешний интерфейс с использованием Plotly Dash

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

Вот простое приложение Dash для загрузки изображения и последующего вызова конечной точки API для получения выводов.

  • Запустите приложение Dash и перейдите к localhost:8050.

  • Загрузите изображение, и оно должно вызывать API и отображать прогнозы.

Исходный код можно найти в этом репозитории.

Резюме

В этой статье я расскажу о процессе развертывания модели машинного обучения с использованием AWS SageMaker, Lambda, API Gateway и Dash. Попробуйте развернуть свои собственные модели машинного обучения с помощью AWS SageMaker и AWS Marketplace.



использованная литература

Если вы еще не являетесь участником Medium и хотите им стать, нажмите здесь. (Часть вашей абонентской платы будет использована для поддержки alpha2phi.)