LiteRT позволяет запускать модели машинного обучения (ML) TensorFlow в ваших приложениях для Android. Система LiteRT предоставляет готовые и настраиваемые среды выполнения для быстрого и эффективного запуска моделей на Android, включая возможности аппаратного ускорения.
Модели машинного обучения
LiteRT использует модели TensorFlow, которые преобразуются в меньший, портативный и более эффективный формат модели машинного обучения. Вы можете использовать готовые модели с LiteRT на Android или создавать свои собственные модели TensorFlow и конвертировать их в формат LiteRT.
На этой странице обсуждается использование уже созданных моделей машинного обучения и не рассматривается создание, обучение, тестирование или преобразование моделей. Узнайте больше о выборе, изменении, создании и преобразовании моделей машинного обучения для LiteRT на странице «Модели» .
Запускайте модели на Android
Модель LiteRT, работающая внутри приложения Android, принимает данные, обрабатывает их и генерирует прогноз на основе логики модели. Для выполнения модели TensorFlow Lite требуется специальная среда выполнения, а данные, передаваемые в модель, должны быть в определенном формате данных, называемом тензором . Когда модель обрабатывает данные (так называемый вывод) , она генерирует результаты прогнозирования в виде новых тензоров и передает их приложению Android, чтобы оно могло предпринять действия, например показать результат пользователю или выполнить дополнительную бизнес-логику.
Рисунок 1. Функциональный процесс выполнения моделей LiteRT в приложениях Android.
На уровне функционального дизайна вашему Android-приложению для запуска модели LiteRT необходимы следующие элементы:
- Среда выполнения LiteRT для выполнения модели.
- Обработчик входных данных модели для преобразования данных в тензоры
- Обработчик вывода модели для получения тензоров выходных результатов и интерпретации их как результатов прогнозирования.
В следующих разделах описывается, как библиотеки и инструменты LiteRT предоставляют эти функциональные элементы.
Создавайте приложения с помощью LiteRT
В этом разделе описан рекомендуемый и наиболее распространенный путь внедрения LiteRT в ваше приложение для Android. Наибольшее внимание следует уделить разделам среды выполнения и библиотек разработки . Если вы разработали собственную модель, обязательно ознакомьтесь с разделом «Пути расширенной разработки» .
Параметры среды выполнения
Существует несколько способов включить среду выполнения для выполнения моделей в вашем приложении Android. Вот предпочтительные варианты:
- LiteRT в среде выполнения сервисов Google Play (рекомендуется)
- Автономная среда выполнения LiteRT
В общем, вам следует использовать среду выполнения, предоставляемую сервисами Google Play, поскольку она более экономична, чем стандартная среда, поскольку загружается динамически, сохраняя размер вашего приложения меньшим. Службы Google Play также автоматически используют самую последнюю стабильную версию среды выполнения LiteRT, предоставляя вам дополнительные функции и повышая производительность с течением времени. Если вы предлагаете свое приложение на устройствах, которые не включают сервисы Google Play, или вам необходимо тщательно управлять средой выполнения машинного обучения, вам следует использовать стандартную среду выполнения LiteRT. Этот вариант добавляет в ваше приложение дополнительный код, позволяя вам лучше контролировать среду выполнения машинного обучения в вашем приложении за счет увеличения размера загрузки вашего приложения.
Вы получаете доступ к этим средам выполнения в своем приложении Android, добавляя библиотеки разработки TensorFlow Lite в среду разработки приложений. Сведения о том, как использовать стандартные среды выполнения в вашем приложении, см. в следующем разделе.
Библиотеки
Доступ к Interpreter API можно получить с помощью сервисов Google Play . Вы можете использовать ядро LiteRT и библиотеки поддержки в своем приложении для Android. Подробные сведения о программировании, использовании библиотек LiteRT и сред выполнения см. в разделе Инструменты разработки для Android .
Получить модели
Для запуска модели в приложении Android требуется модель в формате LiteRT. Вы можете использовать готовые модели или создать их с помощью TensorFlow и преобразовать в формат Lite. Дополнительную информацию о получении моделей для вашего приложения Android см. на странице « Модели LiteRT».
Обработка входных данных
Любые данные, которые вы передаете в модель машинного обучения, должны представлять собой тензор с определенной структурой данных, часто называемой формой тензора. Для обработки данных с помощью модели код вашего приложения должен преобразовать данные из собственного формата, например изображения, текста или аудиоданных, в тензор необходимой формы для вашей модели.
Выполнить выводы
Обработка данных с помощью модели для получения результата прогнозирования называется выполнением вывода . Для выполнения вывода в приложении Android требуется среда выполнения LiteRT, модель и входные данные .
Скорость, с которой модель может генерировать логические выводы на конкретном устройстве, зависит от размера обрабатываемых данных, сложности модели и доступных вычислительных ресурсов, таких как память и ЦП, или специализированных процессоров, называемых ускорителями . Модели машинного обучения могут работать быстрее на этих специализированных процессорах, таких как графические процессоры (GPU) и тензорные процессоры (TPU), с использованием аппаратных драйверов LiteRT, называемых делегатами . Дополнительные сведения о делегатах и аппаратном ускорении обработки модели см. в обзоре аппаратного ускорения .
Обработка результатов вывода
Модели генерируют результаты прогнозирования в виде тензоров, которые ваше приложение Android должно обрабатывать, выполняя действия или отображая результат пользователю. Выходные результаты модели могут быть как простыми, например, числом, соответствующим одному результату (0 = собака, 1 = кошка, 2 = птица) для классификации изображений, так и гораздо более сложными результатами, такими как несколько ограничивающих рамок для нескольких классифицированных объектов в изображение с рейтингом достоверности прогноза от 0 до 1.
Перспективные пути развития
При использовании более сложных и настраиваемых моделей LiteRT вам может потребоваться использовать более продвинутые подходы к разработке, чем описано выше. В следующих разделах описаны расширенные методы выполнения моделей и их разработки для LiteRT в приложениях Android.
Расширенные среды выполнения
Помимо стандартных сред выполнения и сред выполнения служб Google Play для LiteRT, существуют дополнительные среды выполнения, которые вы можете использовать со своим приложением Android. Наиболее вероятное использование этих сред — если у вас есть модель машинного обучения, использующая операции машинного обучения, которые не поддерживаются стандартной средой выполнения для LiteRT.
- Гибкая среда выполнения для LiteRT
- Специально созданная среда выполнения LiteRT
Среда выполнения LiteRT Flex позволяет включать определенные операторы, необходимые для вашей модели. В качестве расширенного варианта запуска вашей модели вы можете создать LiteRT для Android, включив в него операторов и другие функции, необходимые для запуска вашей модели машинного обучения TensorFlow. Дополнительные сведения см. в разделе Сборка LiteRT для Android .
API C и C++
LiteRT также предоставляет API для запуска моделей с использованием C и C++. Если ваше приложение использует Android NDK , вам следует рассмотреть возможность использования этого API. Вы также можете рассмотреть возможность использования этого API, если хотите иметь возможность совместного использования кода между несколькими платформами. Дополнительную информацию об этом варианте разработки см. на странице «Инструменты разработки» .
Выполнение модели на сервере
В общем, вам следует запускать модели в своем приложении на устройстве Android, чтобы воспользоваться преимуществами более низкой задержки и повышения конфиденциальности данных для ваших пользователей. Однако бывают случаи, когда запуск модели на облачном сервере вне устройства является лучшим решением. Например, если у вас есть большая модель, которую нелегко сжать до размера, подходящего для устройств Android ваших пользователей, или которую можно выполнить с достаточной производительностью на этих устройствах. Этот подход также может быть вашим предпочтительным решением, если высшим приоритетом является стабильная производительность модели на широком спектре устройств.
Google Cloud предлагает полный набор услуг для запуска моделей машинного обучения TensorFlow. Дополнительную информацию можно найти на странице продуктов Google Cloud для искусственного интеллекта и машинного обучения .
Разработка и оптимизация индивидуальной модели
Более продвинутые пути разработки, вероятно, будут включать разработку собственных моделей машинного обучения и оптимизацию этих моделей для использования на устройствах Android. Если вы планируете создавать собственные модели, обязательно рассмотрите возможность применения к моделям методов квантования , чтобы уменьшить затраты на память и обработку. Дополнительные сведения о том, как создавать высокопроизводительные модели для использования с LiteRT, см. в разделе «Рекомендации по производительности» в разделе «Модели».