Эта статья переведена из моего поста в китайском блоге. Если вы хотите ознакомиться со статьей в китайской версии, вы можете щелкнуть следующую ссылку, чтобы получить информацию.
Введение
Я хочу написать статью, представляющую модель YOLOv7, когда она будет выпущена на Github. После того, как я прочитал статью и понял модель, я закончил содержание. В этой статье я расскажу вам о методе прогнозирования модели YOLOv7 и развертывании модели YOLOv7 путем развертывания PrimeHub. Надеюсь, вы сможете понять модель YOLOv7, когда прочитаете эту статью.
В 2020 году исследователь Ван Чиен Яо из Academia Sinica выпустил модель YOLOv4. Это повышает точность прогнозирования результатов изображения. В сентябре 2022 года они выпустили новую базовую модель YOLO, модель YOLOv7. Это уменьшает 40% переменных и 50% вычислительной мощности в модели SOTA обнаружения объектов в реальном времени. Его можно улучшить по структуре, скорости вычислений и точности. Вы можете проверить документ, чтобы узнать подробности модели YOLOv7.
Автор также предоставляет информацию о Github, которая содержит:
- Как использовать командную строку для обучения и прогнозирования модели.
- Используйте среду docker и Nvidia-docker для разработки модели.
- Предоставьте предварительно обученную модель YOLOv7 и выполните точную настройку модели.
- Предоставьте сторонний инструмент. Например, Colab, HuggingFace и State of the art.
Мы можем увидеть подробную информацию в файле README.md.
Разверните модель YOLOv7
Если мы хотим использовать простой код Python для прогнозирования модели YOLOv7, нам нужно понять функцию и код модели. Когда я нашел некоторую информацию на веб-сайте Kaggle, я обнаружил код обмена, который может предсказать модель YOLOv7, когда блокнот импортирует функцию YOLOv7.
from models.experimental import attempt_load
from utils.general import non_max_suppression
Теперь мы можем использовать развертывание PrimeHub для развертывания модели YOLOv7 на платформе. Развертывания Primehub основаны на основном сервере Seldon. Мы можем использовать простой код Python и базовую среду Seldon, чтобы использовать нашу модель в качестве службы RestAPI. Это удобный инструмент для развертывания модели машинного обучения.
По сравнению с традиционным сервисом Restful API модель как сервис имеет некоторые особенности:
- Службе вывода модели требуется устройство GPU для более быстрого прогнозирования результата. Чем больше модель, тем больше вычислительная мощность.
- Службе логического вывода машинного обучения требуется некоторая логика предварительной и постобработки. В некоторых повторяющихся сценариях это может быть связано с несколькими моделями.
Поэтому нам нужен лучший инструмент, чтобы сделать это. PrimeHub интегрирует Seldon Core для получения преимуществ.
После того, как мы поняли, зачем нам нужно использовать ядро Seldon, мы пишем класс-оболочку сервиса модели. Следующий код нацелен на логику ввода и вывода YOLOv7. Вы можете изменить его в соответствии с вашими требованиями.
После того, как мы закончим писать код оболочки Python, мы создадим образ докера модели. Мы можем использовать следующую командную строку для создания и отправки образов Docker.
$ make build
$ make push
Теперь мы можем развернуть модель в основном сервисе Seldon. В PrimeHub мы можем использовать интерфейс веб-интерфейса для развертывания модели. Подробная информация представлена ниже. Имейте в виду, что URI модели должен указывать правильный путь к файлу. В своей витрине я поместил предварительно обученную модель, которую можно получить на веб-сайте Github, в общую папку файлов PrimeHub.
После завершения развертывания модели мы можем использовать командную строку для проверки и подтверждения того, что служба модели может получить правильный ответ.
$ curl -F '[email protected]' <model-endpoint-url>
{"data":{"names":["t:0","t:1","t:2","t:3","t:4","t:5"],"tensor":{"shape":[3,6],"values":[123.073974609375,199.46484375,1123.720458984375,718.7385864257812,0.9323439598083496,0.0,748.6097412109375,42.15193176269531,1160.1611328125,717.9664916992188,0.8973875641822815,0.0,432.42529296875,437.1168212890625,519.785888671875,719.8562622070312,0.626276433467865,27.0]}},"meta":{"requestPath":{"model":"Infuseaidev/yolov7-prepackaged:v0.1.0-dev"}}}
Демонстрация результата в веб-интерфейсе службы Streamlit
Кроме того, я использую Streamlit, который можно создать в приложениях PrimeHub, для создания простого веб-интерфейса и прогнозирования изображения на веб-странице. Streamlit — это специальный фреймворк для машинного обучения и науки о данных. Им не нужны знания в области внешнего программирования, и они используют код Python для создания панели управления и приложения. Очень легко продемонстрировать результат пользователю.
В следующей таблице представлена конфигурация Streamlit в приложениях PrimeHub. Мы также можем настроить его на странице веб-интерфейса PrimeHub.
Заключение
В этой статье я предоставляю некоторые ссылки и контент, чтобы понять метод прогнозирования YOLOv7. Кроме того, я использую развертывания PrimeHub для развертывания модели. Пользователи могут использовать этот метод для создания среды обслуживания машинного обучения и создания новой ценности для бизнеса. Добро пожаловать, чтобы дать мне ваше предложение и мысли. Спасибо!
я Саймон
Привет, я Саймон, инженер по работе с клиентами в InfuseAI. Если вы считаете, что статья полезна для вас, пожалуйста, дайте мне аплодисменты. Добро пожаловать, чтобы внести некоторые предложения и обсудить со мной в InfuseAI Discord.
Linkedin: https://www.linkedin.com/in/simonliuyuwei/
Мы InfuseAI
InfuseAI предоставляет инструменты MLOps:
- PrimeHub — наша сквозная платформа MLOps — это весь жизненный цикл машинного обучения на одной платформе.
- Piperider — инструментарий качества данных для специалистов по данным.
Присоединяйтесь к нашему сообществу машинного обучения, чтобы узнать больше: InfuseAI Discord