Google представила библиотеку TensorFlow Lite

Google представила библиотеку для мобильного машинного обучения TensorFlow Lite. Новая версия является следующим этапом эволюции TensorFlow Mobile.

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

Преимущества Lite-версии

Выход новой версии библиотеки, специально разработанной для обучения на небольших устройствах, был анонсирован на конференции Google I/O 2017. Среди основных преимуществ Lite-версии стоит выделить:

  • Легковесность: обсепечивает быстрые инициализацию и запуск моделей машинного обучения небольшого размера на мобильных устройствах;
  • Кроссплатформенность: обучение моделей возможно на большом количестве мобильных платформ, включая Android и iOS;
  • Скорость: библиотека оптимизирована для использования на мобильных устройствах, поддерживает аппаратное ускорение.

Поддержка большинством мобильных устройств

В настоящее время всё больше мобильных устройств используют специально разработанные аппаратные средства для более эффективной обработки рабочих нагрузок машинного обучения. TensorFlow Lite поддерживает нейросетевой API (Android Neural Networks API) для ускорения машинного обучения на мобильных устройствах.

TensorFlow Lite гарантирует, что ваши модели машинного обучения смогут быстро работать на большом наборе устройств. Это достигается за счёт функции возврата к использованию ЦП для обучения, когда аппаратные средства ускорителей недоступны.

Архитектура

Диаграмма представляет полную архитектуру новой лёгкой версии библиотеки TensorFlow:

TensorFlow Lite

Рассмотрим каждый компонент отдельно:

  • TensorFlow Model: обученная модель TensorFlow, сохранённая на диске;
  • TensorFlow Lite Cpnverter: программа, конвертирующая модель в формат TensorFlow Lite;
  • TensorFlow Lite Model File: формат файла модели на основе FlatBuffers, оптимизированный для максимальной скорости и минимального размера.

После промежуточных шагов с переводом модели в нужный формат файл с разрешением .tflite разворачивается в мобильном приложении для одной из ОС:

  • Java API: оболочка вокруг C++ API для ОС Android;
  • C++ API: загружает файл модели TensorFlow Lite и вызывает интерпретатор. Эта же библиотека доступна как на Android, так и на iOS;
  • Интерпретатор: запускает модель при помощи набора операторов. Интерпретатор поддерживает выборочную загрузку операторов: без них его вес всего 70 КБ и 300 КБ со всеми загруженными операторами. Это значительное сокращение от 1,5 Мб, требуемых TensorFlow Mobile;
  • На некоторых устройствах интерпретатор будет использовать Android Neural Networks API для аппаратного ускорения.

Поддерживаемые модели обучения

TensorFlow Lite уже поддерживает ряд моделей, обученных и оптимизированных для мобильных устройств:

  • MobileNet: класс моделей компьютерного зрения для идентификации порядка 1000 объектов, специально разработанный для эффективного выполнения на мобильных и встраиваемых устройствах;
  • Inception v3: аналогичная по функциональности с MobileNet модель распознавания изображений, но обеспечивающая более высокую точность и, в то же время, имеющая больший размер;
  • Smart Reply: диалоговая модель на устройстве, обеспечивающая ответы на входящие сообщения в мессенджерах в одно касание. Используется прежде всего приложениями для Android Wear.

Шаг вперёд

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

Подробную информацию о Lite-версии можно получить на официальной странице продукта.

Источник: блог Google Developers