Практическое глубокое обучение с использованием 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.
использованная литература
- Алгоритм XGBoost
- Бессерверное приложение с использованием AWS CDK
- Конечная точка модели Amazon SageMaker с использованием Amazon API Gateway и AWS Lambda
Если вы еще не являетесь участником Medium и хотите им стать, нажмите здесь. (Часть вашей абонентской платы будет использована для поддержки alpha2phi.)