Все учат, как создать модель машинного обучения. Но не так уж много людей обучают развертыванию модели машинного обучения в реальном сценарии. Для развертывания модели машинного обучения необходимо иметь профессиональное понимание разработки программного обеспечения. В противном случае крупномасштабное развертывание невозможно. В производстве вы должны обеспечить безопасность и надежность, а также производительность. Есть много способов обслуживать модель машинного обучения,
- Подавайте модель в качестве 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 и паролем.
Щелкните имя функции.
Начните делать запросы.
Надеюсь, вам понравилось мое письмо. Это мой первый рассказ в медиуме. Дайте мне знать, если я что-то пропустил, или что-то нужно изменить. Я буду рад их исправить.