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

  • Подавайте модель в качестве API для отдыха, разработанного в Django/fastAPI/flask. или
  • Сделать бессерверную функцию.

Первый вариант — хорошее решение, но вам нужно изучить фреймворк и процесс развертывания, что отнимает много времени.

Второй вариант также является очень хорошим решением, поскольку мы знаем, что FAAS — это меньшее по размеру, легко управляемое и надежное решение. Концепция FAAS заключается в том, что она будет выполнять только одну задачу и ничего больше. Вы можете развернуть приложение FAAS и при необходимости масштабировать его. Доступно множество платных и открытых сервисов FAAS. Например, Aws lambda, облачные функции и т. д. Эти платные решения имеют некоторые ограничения в использовании и часто становятся суетой. Также есть дешевое простое решение OpenFAAS. OpenFAAS находится над кластером Kubernetes и легко управляется. Вы можете создать службу FAAS на любом компьютере (локальном или облачном) с помощью OpenFAAS. Или вы можете использовать управляемую службу Kubernetes, а затем установить OpenFAAS, чтобы создать собственную лямбда-подобную службу FAAS.

Подходим к нашей теме. Теперь мы собираемся развернуть простую модель машинного обучения с помощью OpenFAAS.

Есть несколько способов установить Kubernetes на ваш локальный или облачный компьютер, для демонстрационных целей мы будем использовать minikube, kubectl и faas-cli. Чтобы установить эти инструменты, вы можете следовать инструкциям, приведенным по этой веб-ссылке: https://docs.openfaas.com/deployment/kubernetes/

Здесь я буду использовать модель. Я создал модель CNN с помощью Pytorch и обучил ее набору данных Cifer10.

Архитектура модели.

Мы сохранили обученную модель и сохраняем ее для будущей работы.

Теперь давайте создадим функцию FAAS, используя faas-cli.

$ minikube start
$ kubectl port-forward -n openfaas svc/gateway 8080:8080 &
$ faas-cli new --lang python3-debian api

Теперь мы можем видеть файловую архитектуру.

API

-handler.py

-requirements.txt

шаблон

api.yml

давайте проверим файл handler.py.

Давайте поместим наш код предсказания модели в handler.py.

convNet.py

Теперь наша функция готова к использованию.

Чтобы развернуть нашу функцию в качестве FAAS. нам нужно написать следующую команду.

$ faas-cli up -f api.yml

Убедитесь, что вы находитесь в правильном каталоге. Подождите несколько минут.

Когда ты увидишь нечто подобное.

Теперь вы можете идти. Сделайте curl-запрос к серверу.

Или вы можете использовать красивый пользовательский интерфейс OpenFaas.

$ PASSWORD=$(kubectl get secret -n openfaas basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode; echo)
$ echo $PASSWORD

Теперь зайдите на http://127.0.0.1:8080 и войдите в терминал с именем пользователя admin и паролем.

Щелкните имя функции.

Начните делать запросы.

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