Деплой модели с Google Cloud Functions

В заметке я расскажу как до определенного уровня использования бесплатно задеплоить модель и на заморачиваться с написанием микросервиса. Отмечу, что такое решение легко интегрируется, например, в веб-сервис. Всё, что вам нужно это использовать Google Cloud Functions.

Google Cloud Functions это serverless подход, т.е. серверные услуги предоставляются без аренды или покупки оборудования. При таком подходе управлением ресурсами инфраструктуры, её настройкой и обслуживанием занимается провайдер.

Основной плюс Google Cloud Functions это автоматическая масштабируемость, высокая доступность и отказоустойчивость.

Читать далее

BentoML — быстрый Machine Learning прототип

В заметке я расскажу как в 50 строчек Python кода создать рабочий прототип веб приложения с рабочей моделью машинного обучения. Представьте, что у вас есть классная идея проекта. Теперь нужно реализовать MVP (minimum viable product) и показать его менеджеру/партнеру/ инвестору или просто похвастаться перед друзьями.

Мы будем использовать BentoML. Это гибкая высокопроизводительная платформа, которая идеально подходит для создания MVP.

Возможности BentoML:

  • поддерживает несколько фреймворков машинного обучения, включая Tensorflow, PyTorch, Keras, XGBoost и другие.
  • собственное облачное развертывание с Docker, Kubernetes, AWS, Azure и многими другими
  • высокопроизводительное онлайн-обслуживание через API
  • веб-панели мониторинга и API для управления реестром моделей и развертыванием

Читать далее

Machine learning в продакшн — Flask REST API

Обученная модель машинного обучения сама по себе пользу бизнесу не принесет. Модель должна быть интегрирована в IT инфраструктуру компании. Рассмотрим реализацию REST API микросервиса на примере задачи классификации цветов Ирисов. Набор данных состоит из длины и ширины двух типов лепестков Ириса: sepal и petal. Целевая переменная — это сорт Ириса: 0 — Setosa, 1 — Versicolor, 2 — Virginica.

Сохранение и загрузка модели

Прежде чем переходить к реализации нашего API надо обучить и сохранить модель. Возьмем модель RandomForestClassifier. Теперь сохраним модель в файл и загрузим, чтобы делать прогнозы. Это можно сделать с помощью pickle или joblib. Рассмотрим pickle, вариант с joblib останется для самостоятельного разбора.

import pickle filename = 'model.pkl' 
pickle.dump(clf, open(filename, 'wb'))

Для загрузки и проверки модели воспользуемся pickle.load

loaded_model = pickle.load(open(filename, 'rb')) 
result = loaded_model.score(X_test, y_test)
print(result)

Код обучения, сохранения и загрузки модели доступен в репозитории — ссылка

Читать далее