LiteRT для Android

LiteRT позволяет запускать модели TensorFlow, PyTorch и JAX в приложениях для Android. Система LiteRT предоставляет готовые и настраиваемые среды выполнения для быстрого и эффективного запуска моделей на Android, включая возможности аппаратного ускорения.

Примеры приложений Android, использующих LiteRT, см. в репозитории примеров LiteRT .

Модели машинного обучения

LiteRT использует модели TensorFlow, PyTorch и JAX, которые преобразуются в более компактный, портативный и эффективный формат моделей машинного обучения. Вы можете использовать готовые модели с LiteRT на Android или создавать собственные модели и конвертировать их в формат LiteRT.

На этой странице обсуждается использование уже готовых моделей машинного обучения, а не создание, обучение, тестирование или преобразование моделей. Подробнее о выборе, изменении, создании и преобразовании моделей машинного обучения для LiteRT можно узнать на странице «Модели» .

Запуск моделей на Android

Модель LiteRT, работающая в приложении Android, принимает данные, обрабатывает их и генерирует прогноз на основе логики модели. Для работы модели LiteRT требуется специальная среда выполнения, а данные, передаваемые в модель, должны быть в определённом формате, называемом тензором . Когда модель обрабатывает данные (выполняется вывод) , она генерирует результаты прогноза в виде новых тензоров и передаёт их в приложение Android для выполнения действий, например, отображения результата пользователю или выполнения дополнительной бизнес-логики.

Функциональный поток выполнения для моделей LiteRT в приложениях Android

Рисунок 1. Функциональный поток выполнения моделей LiteRT в приложениях Android.

На уровне функционального дизайна вашему Android-приложению необходимы следующие элементы для запуска модели LiteRT:

  • Среда выполнения LiteRT для выполнения модели
  • Обработчик входных данных модели для преобразования данных в тензоры
  • Обработчик выходных данных модели для получения тензоров выходных результатов и их интерпретации как результатов прогнозирования

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

Создавайте приложения с помощью LiteRT

В этом разделе описан рекомендуемый и наиболее распространённый способ внедрения LiteRT в ваше приложение для Android. Особое внимание следует уделить разделам «Среда выполнения» и «Библиотеки разработки» . Если вы разработали собственную модель, обязательно ознакомьтесь с разделом «Дополнительные пути разработки» .

Параметры среды выполнения

Существует несколько способов включить среду выполнения для выполнения моделей в вашем приложении Android. Ниже приведены рекомендуемые варианты:

В целом, следует использовать среду выполнения, предоставляемую сервисами Google Play, поскольку она более компактна, чем стандартная среда, поскольку загружается динамически, что позволяет уменьшить размер приложения. Сервисы Google Play также автоматически используют последнюю стабильную версию среды выполнения LiteRT, предоставляя дополнительные функции и со временем повышая производительность. Если вы предлагаете своё приложение на устройствах без сервисов Google Play или вам необходимо тщательно управлять средой выполнения машинного обучения, следует использовать стандартную среду выполнения LiteRT. Этот вариант добавляет дополнительный код в ваше приложение, что позволяет лучше контролировать среду выполнения машинного обучения в вашем приложении ценой увеличения размера загружаемого файла.

Доступ к этим средам выполнения в вашем приложении для 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 runtime для 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 ✅ Активный 21 (Android 5 Lollipop) r26a 2025-03-13

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