Рубрики
Без рубрики

Как построить API для модели машинного обучения за 5 минут с помощью Колба

В этой статье объясняется, как создать API для вашей модели машинного обучения в Python с помощью flask.

Автор оригинала: Tim Elfrink.

Автор: Тим Элфринк, специалист по обработке данных в аэропорту Vantage AIRPORT

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

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

Для этого вам нужен инструмент, который может вписаться в их сложную инфраструктуру, желательно на языке, с которым вы знакомы. Здесь вы можете использовать Flask . Flask-это микро-веб-фреймворк, написанный на Python. Он может создать REST API, который позволяет отправлять данные и получать прогноз в качестве ответа.

Создайте свою модель

Позвольте мне показать вам, как это работает . Для демонстрации я обучу простую модель DecisionTreeClassifier на примере набора данных, который может быть загружен из пакета scikit-learn .

Блокнот

Как я создал свою модель в блокноте Jupyter

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

Беги Колба

Flask работает на сервере. Это может быть среда клиента или другой сервер в зависимости от требований клиента. При запуске python app.py он сначала загружает созданный файл pickle. Как только это загрузится, вы можете начать делать прогнозы.

Колба api

Запрос прогнозов

Прогнозы делаются путем передачи POST JSON-запроса на созданный веб-сервер Flask, который по умолчанию находится на порту 5000. В app.py этот запрос получен, и прогноз основан на уже загруженной функции прогнозирования нашей модели. Он возвращает прогноз в формате JSON.

Предсказывать

Теперь все, что вам нужно сделать, это вызвать веб-сервер с правильным синтаксисом точек данных. Это соответствует формату исходного набора данных, чтобы получить этот JSON-ответ ваших прогнозов. Например:

питон request.py -> <Ответ[200]> “[1.]”

Для данных, которые мы послали, мы получили прогноз класса 1 в качестве вывода нашей модели. На самом деле все, что вы делаете, – это отправляете данные в массиве на конечную точку, которая преобразуется в формат JSON. Конечная точка считывает сообщение JSON и преобразует его обратно в исходный массив.

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

Записи

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

Об авторе

Тим Элфринк является специалистом по данным в Vantage AI , консалтинговой компании по науке о данных в Нидерландах. Если вам нужна помощь в создании моделей машинного обучения для ваших данных, не стесняйтесь обращаться к нам по адресу info@vantage-ai.com .