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