Что такое Edge AI и почему это важно?

Традиционно решениям ИИ требовалось большое количество параллельных вычислительных мощностей. Таким образом, долгое время требованием службы на основе ИИ было подключение к Интернету на основе сервера. Но решения, требующие действий в реальном времени, требуют вычислений на устройстве - вот где на сцену выходит периферийный ИИ.

Вы можете использовать устройства на базе графических процессоров, но это делает процесс дорогостоящим, а вместе с тем приводит к проблемам с раздутыми размерами и высоким энергопотреблением. Но все больше и больше периферийный ИИ становится неотъемлемой частью продолжающейся революции глубокого обучения как с точки зрения исследований, так и с точки зрения инноваций.

Благодаря тому, что в руках и карманах миллиардов людей по всему миру находятся все более мощные портативные устройства, мы неуклонно наблюдаем рост спроса на вычисления на базе искусственного интеллекта на устройствах. Таким образом, разработка мобильных процессоров стала в большей степени ориентирована на ИИ с выделенным оборудованием для машинного обучения.

Краткий обзор текущего оборудования (Intel и т. д.)

Хотя это первый Edge TPU, мы уже видели пару подобных аппаратных средств, предназначенных для искусственного интеллекта, например:

Корал Бета

TPU, или Tensor Processing Unit, в основном используется центрами обработки данных Google. Для обычных пользователей он доступен на платформе Google Cloud (GCP), а чтобы попробовать его бесплатно, вы можете использовать Google Colab.

Google впервые продемонстрировал свой Edge TPU в демоверсии на выставке CES 2019 (и снова на саммите разработчиков TensorFlow в этом году). А в марте выпустили Coral Beta.

Бета-версия состоит из платы разработчика и USB-ускорителя, а также предварительных версий ускорителя PCI-E и системы на модуле (SOM) для производственных целей.

Что можно делать с Edge TPU?

С Edge TPU вы можете обучать модели на устройстве, но на данный момент он поддерживает только модели классификации, которые должны быть переобучены на устройстве с использованием трансфер-обучения, на основе техники импринтинга веса, предложенной в Низкое обучение с импринтированными весами. . Этот метод открывает множество возможностей для систем реального времени. Кроме того, это самое быстрое в своем роде устройство вывода.

Информационный бюллетень для машинного обучения - от машинного обучения. Подпишитесь, чтобы получать еженедельное погружение во все, что связано с машинным обучением, от наших экспертов в этой области.

USB-ускоритель:

Ускоритель Edge TPU похож на любое другое USB-устройство, только с чуть большей мощностью. Давайте откроем его и посмотрим, на что он способен.

Типичная распаковка:

Вот что вы найдете в коробке:

  • Руководство по началу работы
  • USB-ускоритель
  • Кабель USB Type-C

Начало работы

Руководство Начало работы помогает с установкой, которая выполняется очень быстро и легко. Все необходимое, включая файлы моделей, входит в установочный пакет. Нет необходимости в зависимостях библиотеки TensorFlow или OpenCV.

Советы. Если вы не используете Python 3.5, его не удастся установить. Для установки отредактируйте последнюю строку файла install.sh

python3.5 setup.py develop — user
to
python3 setup.py develop — user

Демо

Документация Coral Edge TPU API включает полезный обзор и демонстрации как для классификации изображений, так и для обнаружения объектов:



API Edge TPU

Прежде чем мы рассмотрим их, нужно упомянуть несколько вещей об API Edge TPU:

  • Модуль edgetpu Python необходим для запуска моделей TensorFlow Lite на Edge TPU. Это высокоуровневый API, который раскрывает набор других простых API, позволяющих просто выполнить вывод модели.
  • Эти API-интерфейсы предварительно установлены на Dev Board, но если вы используете USB-ускоритель, вам необходимо загрузить API. Ознакомьтесь с этим руководством по установке для получения дополнительной информации.
  • Есть несколько ключевых API для выполнения логического вывода: ClassificationEngine для классификации изображений и DetectionEngine для обнаружения объектов; а затем ImprintingEngine для реализации трансферного обучения.

Классификация изображений:

Реализация этих демонстраций очень проста. Я решил ввести изображение ниже с помощью ClassificationEngine API:

Обнаружение объекта:

Точно так же, вызывая DetectionEngine API, мы можем легко обнаружить и нарисовать ограничивающую рамку вокруг входного изображения:

Я изменил порог демонстрации по умолчанию с 0,05 на 0,5, так как он давал другие ложноположительные результаты. Я также добавил ширину = 5 в прямоугольник.

Поскольку Coral все еще находится в стадии бета-тестирования, в документации по API пока нет подробностей. Но его было достаточно легко использовать для демонстраций такого типа.

Примечания к демонстрации прохождения:

Все файлы кода, моделей и этикеток, используемые в этих демонстрациях, поставляются с библиотекой, включенной в установочный пакет. На данный момент он может выполнять классификацию или обнаружение в соответствии с моделью работы и введенными метками.

Для классификации он возвращает 2 лучших прогноза класса и показатель достоверности. А для обнаружения объектов он возвращает оценку достоверности и координаты ограничивающего прямоугольника. Если вы введете файл метки класса, он также выдаст вам результат с именем класса.

Ограниченная производительность на Raspberry Pi

К сожалению, любимец любителей Raspberry Pi не может полностью использовать мощность и скорость USB-ускорителя. Edge TPU использует порт USB 3, а текущие устройства Raspberry Pi не имеют USB 3 или USB C, хотя он по-прежнему будет работать со скоростью USB 2.

В настоящее время он работает только в Debian Linux, но я предполагаю, что довольно скоро люди обнаружат хитрые способы поддержки других операционных систем.

Давайте посмотрим, какие еще продукты Coral могут предложить на базе TPU.

Совет разработчиков

В качестве платы для разработчиков Raspberry Pi обычно является наиболее популярным выбором, но на этот раз Google предпочел плату NXP i.MX 8M SOC (четырехъядерный Cortex-A53 плюс Cortex-M4F).

Вы можете узнать больше о Dev Board здесь:



Но в экспериментальных целях и, чтобы сосредоточиться конкретно на Edge TPU, я предпочел и заказал USB Accelerator.

Что дальше?

Допустим, вы создали прототип чего-то отличного с помощью Dev Board или USB-ускорителя - и теперь пришло время запустить это в крупномасштабное производство, используя тот же код. Что вы делаете тогда?

Если мы посмотрим на линейку продуктов, кажется, что Google уже задумал это далеко вперед, предлагая корпоративную поддержку с помощью следующих модулей, которые в настоящее время помечены как Скоро появятся.

Система-на-модуле (SOM)

Полностью интегрированная система (CPU, GPU, Edge TPU, Wifi, Bluetooth и Secure Element) в сменном модуле размером 40 мм x 40 мм.

Это для крупносерийного производства. Производители могут производить свои собственные платы с предпочитаемым вводом-выводом, следуя рекомендациям этого модуля. Даже на плате разработчиков есть этот съемный модуль.

Ускоритель PCI-E

Информации об PCI-E Accelerator очень мало, но, как следует из названия, очевидно, что это будет модуль с PCI-E (Peripheral Component Interconnect Express), и будет два варианта - возможно, похожий на USB Accelerator, за исключением того, что вместо USB это будет PCI-E.

Идея здесь в том, что вы сможете использовать его в устройстве со слотом PCI-E, поэтому вы можете использовать его с большинством ноутбуков, настольных компьютеров и одноплатных компьютеров, у которых есть слот PCI-E.

Наблюдая за этим широким разнообразием модулей, мы можем ожидать, что несколько проектов корпоративного уровня не за горами. Coral тоже так думает со следующей копией на их сайте:

Достаточно гибкий для стартапов и крупных предприятий.

TensorFlow и проект Coral

Трудно представить продукты Google без TensorFlow. В настоящее время Edge TPU поддерживает только пользовательские модели TensorFlow Lite. Также только что вышла стабильная версия TensorFlow Lite.

В настоящее время это означает, что вам нужно преобразовать tflite модели в tflite-tpu с помощью веб-компилятора. Но не волнуйтесь! Если вы поклонник PyTorch или предпочитаете другой фреймворк, вы можете попробовать преобразовать свою модель в TensorFlow с помощью ONNX.

Смотря вперед

Несмотря на отсутствие полной поддержки Raspberry Pi и ограниченную документацию в бета-версии, я с большим оптимизмом смотрю на проект Coral. Мы не можем быть уверены в том, как именно эта технология будет развиваться, но, безусловно, есть большие надежды на увеличение мощности, снижение энергопотребления, повышение рентабельности и дальнейшие инновации.

В следующей статье я буду использовать проектный подход для сравнения производительности Intel® Neural Compute Stick и Coral Edge TPU.

Примечание редактора. Heartbeat - это онлайн-публикация и сообщество, созданное авторами и посвященное предоставлению первоклассных образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.

Являясь независимой редакцией, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее создавать лучшие модели машинного обучения.