Разработчик Андрей Гаврилов из рассказал про один из наших внутренних проектов.

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Разработчик Андрей Гаврилов из рассказал про один из наших внутренних проектов. Команда работает над проверкой работоспособности нового инструмента, позволяющего быстро и удобно развивать решения, основанные на нейронных сетях, от прототипа до готового сервиса.

«Machine Learning часто начинается с ноутбука разработчика, на котором он и с данными работает, и модели обучает, и деплоит получившееся на прод. Разумеется, такой подход сложно назвать действительно production-ready.

В эпоху обилия разнообразных MVP, основанных на алгоритмах машинного обучения, хотелось бы найти инструмент, который позволит быстро и легко превратить прототип в полезный сервис.

Для приложений, основанных на нейронных сетях, обозначенную выше проблему, стремится решить проект RedisAI – совместная разработка Redis Labs и Tensorwerk: https://epa.ms/RedisAI

RedisAI — это модуль Redis для выполнения Deep Learning моделей и управления их данными. Цель проекта – быть «рабочей лошадкой» для обслуживания моделей, обеспечивая готовую поддержку популярных фреймворков DL/ML и беспрецедентную производительность.

Наша команда проверяет работоспособность модуля, применяя его в процессе продуктивизации инструмента для распознавания лиц в масках.

На текущем этапе мы экспериментальным путём проверили работоспособность модуля в связке со многими известными сетями:

как простыми:

– Iris Classification with ONNX: https://epa.ms/YT-Iris-ONNX

– Simple Linear Regression with TF: https://epa.ms/Introduction-Redis-ML

так и более сложными:

– RESNET50: https://epa.ms/redisai-examples

– MTCNN: https://epa.ms/Face-Detection

Команде приходится мириться с ограничением на версии движка для обсчёта модели. Другими словами, если модель обучена на Tensor Flow 2.0, то для того, чтобы поместить её в Redis, нужно даунгрейдить модель для версии Tensor Flow 1.15.

Подробнее про зависимости версий: https://epa.ms/backend-dependancy

Ещё одно ограничение – необходимость задавать точно такие же, как и у самой модели, имена входных и выходных тензоров. Это может стать проблемой, если не доступен исходный код. Решить её можно при помощи сервиса Netron https://netron.app/. Сервис позволяет загрузить модель в формате .pb и посмотреть структуру графа.

Добавляет сложности и нестабильность Docker-образов с модулем RedisAI. Процедура загрузки одной и той же модели (PyTorch Backend) то успешно завершается, то вызывает серию непонятных ошибок. Разница между попытками – лишь в версии образа для контейнера с сервером RedisAI. Образ меняется достаточно часто, что говорит о сырости самого решения.

Несмотря на все недочёты, модуль вполне работоспособен, имеет CLI и Python API. Модель по распознаванию лиц, которую мы пытаемся «подружить» c Redis, корректно работает в контейнере, используя для вычислений движок TF из модуля RedisAI. В ближайшее время проведём стресс-тестирование этой связки и будем рады рассказать о результатах!».


Источник: netron.app

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