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