В периферийных устройствах наблюдается недавний всплеск искусственного интеллекта, в результате чего исследователи сжигают ночное масло для удовлетворения требований к вычислительным ресурсам, сохраняя при этом эффективное потребление энергии и памяти.
Как отмечает Джем Дэвис, вице-президент подразделения машинного обучения ARM
«Люди спрашивают меня, какие сегменты будут затронуты ML, и я отвечаю, что не могу придумать ни одного, на который не повлияет. Более того, это будет сделано на грани везде, где это возможно, и я говорю это, потому что на моей стороне законы физики, законы экономики и многие законы страны. У мира нет пропускной способности, чтобы справиться с анализом в реальном времени всего видео, которое снимается сегодня, а мощность и стоимость передачи этих данных для обработки в облаке просто непомерно высоки ».
Однако современные приложения искусственного интеллекта на основе глубокой нейронной сети (DNN) требуют абсурдно больших объемов памяти и затрат на вычисления, что приводит к высокому энергопотреблению, что не позволяет запускать приложения AI на основе DNN на периферийных устройствах. Это требует некоторых методов, которые могут сжать существующую структуру архитектуры DNN или сделать DNN компактной прямо с нуля.
Сжатие DNN недавно стало объектом множества исследований благодаря основополагающей статье Denil et al. Https://arxiv.org/abs/1306.0543 », где автор отметил, что 95% сверточной нейронной сети (CNN) являются избыточными !!!
Исследователи или практикующие специалисты по ИИ обычно выбирают следующий путь для создания приложений ИИ на основе DNN, дружественных к периферии.
- Разработайте высокооптимизированное оборудование, предназначенное для одной конкретной архитектуры DNN,
- Сделайте компактную сеть с нуля
- Сжать уже обученную сеть и
- Технологическое решение айоталабс
В первой части моей второй части этого блога я буду в основном резюмировать вариант №1 и вариант №2 доступных методов и обсудить плюсы и минусы двух вышеупомянутых методов. Метрики и моя собственная оценка, по которой я буду оценивать различные технологии, будут
- Объем памяти - ›15%
- Количество обращений к памяти - ›20% (доминирующий коэффициент энергопотребления)
- Количество операций в пересчете на MAC или Flops (Float и / или INT) - ›15%
- Экономия энергии- ›15%
- Портативность- ›15%
- Стоимость разработки- ›20%
Начнем с оценки варианта №1. В последнее время появилось множество стартапов, которые работают над разработкой сверхэффективных микросхем, специально предназначенных для приложений на основе DNN. Крупная компания, такая как ARM, недавно представила Project Trillium, набор IP-технологий для машинного обучения, который нацелен на работу нейронных двигателей при их переходе на периферию. Наряду с этими чипами они также предоставляют специализированное программное обеспечение DNN, которое эффективно работает на конкретном оборудовании, для которого оно настроено.
К сожалению, переносимость является проблемой для этого решения, помимо стоимости разработки микросхемы. Приложение, разработанное на одной платформе, не будет эффективно работать на другой платформе. Таким образом, время и деньги, вложенные в разработку приложений DNN AI, ограничиваются одним конкретным решением, и разработчику необходимо переделывать все с нуля, если бизнесу необходимо изменить структуру аппаратного программного обеспечения. Все точки метрик сильно зависят от выбранной структуры, поэтому я лично ставлю 50% вариант №1 на свои метрики оценки.
Теперь поговорим о варианте №2.
После осознания того, что структура DNN имеет много избыточности, начиная с 2016 года последовал поток исследовательских работ, нацеленных на переопределение структуры AlexNet / VGG-16. В некоторых новаторских работах сообщалось о 50-кратном сжатии при сохранении того же уровня точности AlexNet, что является похвальной производительностью, и новая структура называется SqueezeNet от Iondala et.al « https://arxiv.org/abs/1602.0736 », однако она - хороший метод экономии памяти, но другой автор Тянь-Джу Ян и др. https://arxiv.org/pdf/1611.05128.pdf «сообщил, что нет операции сохранения (in- он сообщил, что AlexNet работает в 1,2 раза больше и потребляет в 1,32 раза больше энергии).
Также автор SequeezeNet столкнулся с трудностями при развертывании методики ResNet, разработанной Kaiming et.al ResNet https://arxiv.org/abs/1512.03385, которая учит, как эффективно обучать глубокую сеть. SequeezeNet сообщил об увеличении параметров в 1,67 раза после развертывания инфраструктуры глубокого обучения нейронной сети ResNet.
Я также отмечаю, что людям очень сложно обучать SequeezeNet из-за слишком большого количества гиперпараметров, с которыми приходится играть, хотя Форрест в своей статье очень подробно упоминал об этих параметрах, но люди говорят об обратном.
В целом, используя свою метрику оценки, я обнаружил, что SequeezeNet уменьшает объем памяти, нет проблем с переносимостью и не требует затрат на разработку, поэтому я оцениваю его на 50% по моей метрике.
В моей части 2 я буду обсуждать оставшийся вариант и выставлю оценки по моей метрике оценки.
А пока желаю приятного чтения и посещаю www.aiotalabs.com, где мы постоянно стремимся сделать DNN прямо на периферийных устройствах.