Фреймворки, платформы и инференс-фреймворки: откуда берутся нейронные сети и как их ускорить
Рождение нейросетей происходит в недрах двух типов компьютерных программ — фреймворков и платформ. Это своего рода цифровая школа, в которой при помощи загруженных в неё данных происходит обучение нейронных сетей.
Разница между фреймворками и платформами состоит в том, что для работы с первыми учёный или инженер должен обладать навыками программиста. Платформы же оснащены пользовательским интерфейсом, и от разработчика требуется только понимание бизнес-требований к будущей нейронной сети: какие задачи она должна решать, какой результат выдавать. Примерно то же самое делают, например, различные мобильные приложения: пользователю не нужно быть программистом, чтобы при помощи готовых и отлаженных механизмов, зашитых внутри программных пакетов, решать свои задачи.
Обратная сторона простоты платформ — существенное сокращение возможностей. Фреймворки позволяют разработчику создавать новые типы нейронных сетей и их архитектуры, тогда как платформа — это, в первую очередь, типовые решения, то есть применение уже отработанных и доказавших свою эффективность технологий.
Наибольшей популярностью пользуются фреймворки TensorFlow от Google и PyTorch от Facebook — с их помощью производится до 80% исследований по всему миру. Из платформ самые известные — Supervisely, Datarobot и Roboflow. Первая востребована за счёт эффективного инструмента разметки данных, вторая хорошо работает с данными табличного типа, третья — с обучением нейросетей для компьютерного зрения. Конкурентами мировых лидеров являются отечественные решения, например BAUM AI (МГТУ им. Н.Э. Баумана) и «Платформа-ГНС» (ФАУ «ГосНИИАС»), которые специализируются на обучении нейросетей, главным образом, на обработке табличных данных и изображений соответственно.
Когда нейросети созданы, их часто требуется ускорить. Для этого используются программы другого типа — инференс-фреймворки. По оценкам экспертов, они помогают разогнать производительность в 2,5–5 раз.
Инференс-фреймворки необходимы в двух случаях: при высоких требованиях к производительности решения или если нужно внедрить тяжёлые и эффективные алгоритмы обработки данных в реальном времени на бортовом «железе», например на умной камере, в том числе беспилотника.
— У умной камеры обычно есть несколько чипов. DSP-процессор получает изображение с матрицы и дальше переводит его в цифру, выполняя при этом дополнительные операции по улучшению качества. Когда мы получаем картинку, нам нужно на чипе камеры, которая и без того отвечает за выполнение множества сервисов, запустить ещё и алгоритм обработки изображений в реальном времени. И это всегда некий вызов. Стандартная частота классической видеокамеры — 25 кадров в секунду. Старые чипы 2010-х годов на базе архитектуры прошлого века ARMv7 обрабатывали по три-четыре кадра в секунду. Однако современные чипы, например Rockchip 3588S на базе современной архитектуры ARMv8.2-A, я уж не говорю про последние чипы NVIDIA, позволяют запускать нейронные сети обработки изображений в реальном времени. Это происходит благодаря созданным производителями «железа» инференс-фреймворкам, — отметил эксперт.
Ниболее популярные инференс-фреймворки — OpenVINO от Intel, TensorRT от NVIDIA, Mace от XiaoMi и MNN от Alibaba.
Созданные и при необходимости ускоренные нейросети затем находят широкое применение при распознавании изображений и видеопотоков, при обработке данных табличного типа, в антагонистических играх, где искусственный интеллект выступает в качестве игрока и учится превосходить оппонентов. Пожалуй, самое известное и перспективное направление —
Фото: пресс-служба МАИ
Технологии
МАИ