Страницы

Поиск по вопросам

понедельник, 23 декабря 2019 г.

Архитектура сервиса по распознаванию образов

#архитектура #нейронные_сети #искусственный_интеллект #распознавание_образов


Вопрос к разработчикам проектов по распознаванию образов. Как лучше организовать
архитектуру подобного сервиса?

Сейчас склоняюсь к решению использовать для работы с данными (а особенно для обучения)
специализированные GPU-инстансы Amazon EC2 P2. На серверах установлено ПО только для
работы искусственных нейронных сетей (Python, Anaconda, Keras, TensorFlow). В production-режиме
сервер на вход принимает изображения с метаданными (как именно обработать изображение
и какие данные вернуть), на выходе возвращает JSON-массив в зависимости от типа метаданных.
Никакой особой логики там не хранится, вся аналитика происходит на серверах web-приложений.

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

Взаимодействие web-приложения с нейронной сетью осуществляется через API-запросы
к GPU-серверам. Далее результат уже выдается на клиенты (аналогично с клиентов  все
идет на web-приложение, а затем на обработку в нейронную сеть).

Теперь основные вопросы:


На каком участке вы проводите аналитику? (например, чтобы определить, что на фотографии
на человеке надет синий мужской пиджак к нейронной сети выполняется каскад запросов
"поиск мужчины"->"поиск пиджака"->"определение цвета пиджака". для получения более
высокого качества ответа и снижения нагрузки на сеть каждый запрос выполняется отдельно
при утвердительном предыдущем). Имеет ли смысл реализовывать все варианты поиска в
рамках единой нейросети или лучше создать множество отдельных нейросетей, заточенных
под достаточно простые задачи?
Как вы оптимизируете потребление ресурсов на этапах обучения и работы сети? Пока
на уме только вариант с созданием специализированного GPU-кластера под обучение в рамках
облачного хостинга и его периодическое включение по мере надобности (иначе дорого получается).

    


Ответы

Ответ 1



Ваши вопросы говорят о том что, вы не осознаете всей сложности проблемы поиска мужчины на фото, не говоря уж о поиске пиджака. Хотя бы найти объект произвольного размера на фото по меркам на конец 2017 года - это уже передний край науки. Сначала начните с простого. Попытайтесь хотя бы в общих чертах решить вашу проблему, о которой ни слова в вопросе. Арендуете ли вы для этого один сервер, или купите подходящую видеокарту - дело второе. Можно и без видеокарт. Как только вы поймете что для радикального уменьшения ошибки обучения вам нужны годы на ваших мощностях, тогда можно будет говорить об аренде кластера. И тогда вы можете обратиться к документации на TensorFlow чтобы узнать как конкретно решаются подобные проблемы.

Комментариев нет:

Отправить комментарий