В этом посте, который является своего рода 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