В этом посте, который является своего рода 101 развертыванием модели машинного обучения, мы будем использовать микрофреймворк Python Flask для обслуживания модели машинного обучения через API.

Часть I: Обучение

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

Ниже приведен блокнот, который мы использовали для этого:

Разработанная нами модель сохранена с использованием библиотеки joblib. (Но мы, конечно, могли бы использовать стандартный модуль сериализации python pickle)

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

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

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

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

Часть II: Создание API

В частности, мы будем использовать Flask для создания очень простого API, который будет содержать конечную точку «/ pred-kind». Затем пользовательские интерфейсы смогут отправлять POST-запросы к этой конечной точке, передавая характеристики цветов и получая в качестве результатов прогнозируемые виды.

Ниже приведен код нашего фляжного приложения.

app.py:

Чтобы запустить фляжный сервер, вам просто нужно выполнить команду python -m flask run.

И вот мы здесь! Наша модель теперь обслуживается на локальном хосте, и мы можем протестировать конечную точку с помощью Почтальона:

Нам также может потребоваться вероятность, связанная с каждым классом, поэтому мы можем определить новую конечную точку в конце файла app.py:

И результаты будут выглядеть так:

Заключение

В этом посте показано, как можно использовать Flask для обслуживания модели машинного обучения.

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

Действительно, встроенный flask-сервер является сервером разработки и не должен использоваться в продакшене (подробнее см. Здесь).

Более того, пока наш API работает локально. В одном из будущих постов я объясню, как на самом деле можно развернуть этот API на сервере (возможно, используя AWS EC2).

Изначально этот пост был опубликован на marwandebbiche.com