Mobile ML: машинное обучение в кармане. Часть 1 — Железо
Автор: Андрей Батутин, Senior iOS Developer в DataArt
Сегодня все делают Machine Learning, включая наши телефоны. Да, скоро ваш телефон станет по настоящему смарт. Ну или по крайней мере, умнее нас с вами. Почему? Сейчас разберемся. Начнем с железа, уже установленного в мобильных устройствах.
TL; DR
Все основные производители мобильных System-on-chip (SoC) уже 3–4 года активно добавляют ML-specific hardware в свои решения. Если у вас топовый андроид или айфон, рядом с GPU у вас почти гарантированно есть чип, специально заточенный под ML-задачи.
В основном ML-чипы предназначены для Computer Vision, Audio, Camera/Photo/Video. Основные задачи: уменьшение шума на фото, лучшее качество при зуме, распознавание лиц и животных, распознавание речи и синтез текста.
К тому же, основные вендоры предоставляют SDK, которая дает доступ к этому ML-чипу сторонним разработчикам. Так что вы вполне можете сделать свой Snapchat или Siri, все равно вы наверняка сидите дома (Когда все это кончится?! Как я хочу в KFC!).
Железо
Основные вендоры мобильных чипов активно расширяют свои SoC-архитектуры с помощью Neural Processing Unit (NPU), Digital Signal Processor (DSP) и специализированных AI-ядер. Компоненты эти специально заточены для работы ML-моделей.
Qualcomm
ML Hardware: DSP + GPU
SDK: Qualcomm Neural Processing SDK
Предоставлен Qualcomm Neural Processing SDK, которая обеспечивает аппаратное ускорение ML-моделей на связке DSP + GPU + CPU для Snapdragon чипов. DSP заточен под работу с аудио/видео: умная камера, очистка картинки от шумов, лучшее качество при зуме и схожие инструменты для повышения качества звука.
HiSilicon/Huawei
ML Hardware: NPU
SDK: HiAI SDK
Da Vinci NPU состоит из трех ядер: двух высокопроизводительных, и одного энергоэффективного ядра для ML-вычислений.
HiAI SDK дает доступ к заточенному под операции над матрицами NPU.Т. е. NPU идеально подходит для Deep Neural Network моделей. Из плюшек — плагин к Android Studio.
HiAI заточена под:
- Computer Vision;
- Automatic Speech Recognition;
- Natural Language Understanding.
MediaTek
ML Hardware: APU + GPU
SDK: NeuroPilot SDK
NeuroPilot SDK позволяет решать ML-задачи с помощью AI Processing Unit (APU) + GPU. APU заточен под Deep Neural Network модели. Обеспечивает аппаратное ускорение для convolutions, fully connected layers, activation functions, и т. д.
NeuroPilot 2.0 позволяет в реальном времени:
- Multi-person pose tracking;
- 3D pose tracking;
- multiple object identification;
- semantic segmentation;
- image enhancement.
Samsung
ML Hardware: NPU
SDK: Samsung Neural SDK / EDEN SDK
Samsung добавил в Exynos SoC специализированный NPU. Состоит он из двух Multiply–accumulate units, заточенных под операции над матрицами.
Также он предоставляет Samsung Neural SDK, которая обеспечивает аппаратное ускорение для ML-моделей с помощью связки CPU + GPU + NPU.
Apple
ML Hardware: NPU
SDK: CoreML SDK
Начиная с Apple A11, Bionic использует NPU. В A13 NPU разросся уже до восьми ядер. Одна из killer-features нового NPU — Deep Fusion image processing: делаем 9 снимков и комбинируем их в один. Особенно актуально для ночной съемки.
Предоставляет CoreML SDK. Также, как в других SDK, обеспечивает аппаратное ускорение для ML-моделей. Из плюшек — Create ML — UI-only среда для тренировки ML-моделей. Позволяет тренировать:
- Object detection/classifier;
- Sound classifier;
- Motion classifier;
- Text classifier/word tagging;
- Tabular Classifier;
- Recommendation engine.
Полезные ссылки
ML-бенчмарк для Андроид смартфонов;
Qualcomm Neural Processing SDK;
HUAWEI HiAI SDK;
Apple CoreML
В продолжении материала подробнее разберемся в том, как работает NPU. Поговорим о нужном для мобильного ML софте и способах его использования.