LiteRT — это разработанная Google платформа для высокопроизводительного развертывания машинного обучения и искусственного интеллекта на периферийных платформах, использующая эффективные методы преобразования, выполнения и оптимизации.
LiteRT 2.x содержит новейший API среды выполнения, CompiledModel API, который превосходит Interpreter API (также известный как TensorFlow Lite API), в частности, за счет аппаратного ускорения и общей производительности для приложений машинного обучения и искусственного интеллекта на устройствах. CompiledModel API находится в бета-версии и доступен как на Kotlin, так и на C++.
Основные характеристики LiteRT
Поддерживаемые модели
LiteRT поддерживает упрощенное преобразование файлов из фреймворков PyTorch, TensorFlow и JAX в форматы .tflite или .litertlm.
Упростите разработку с помощью LiteRT.
Автоматический выбор ускорителя вместо явного создания делегата. Простая среда выполнения NPU и распределение моделей. Эффективная обработка буферов ввода-вывода и асинхронное выполнение для повышения производительности.
Лучшая в своем классе производительность графического процессора
Благодаря ML Drift теперь поддерживаются модели машинного обучения и генеративного искусственного интеллекта на графических процессорах (GPU).
Унифицированное ускорение NPU
Ускорьте работу вашей модели, используя упрощенный доступ к нейронному процессору (NPU) от ведущих производителей чипсетов.
Упрощенная поддержка LLM с помощью LiteRT
Вы можете использовать LiteRT-LM, который работает на базе LiteRT. LiteRT-LM поддерживает новейшие LLM-модули и полезные функции, такие как многомодальность, декодирование с ограничениями и т. д.
Рабочий процесс разработки
LiteRT выполняет вычисления полностью на устройстве: Android, iOS, в веб-браузере, на устройствах IoT, а также на настольных компьютерах и ноутбуках. Независимо от устройства, ниже представлен наиболее распространенный рабочий процесс со ссылками на дополнительные инструкции.

Определите наиболее подходящее решение для задачи машинного обучения.
LiteRT предлагает пользователям высокий уровень гибкости и настраиваемости при решении задач машинного обучения, что делает его подходящим вариантом для тех, кому требуется конкретная модель или специализированная реализация. Пользователям, ищущим готовые решения, может больше подойти MediaPipe Tasks , предоставляющий готовые решения для распространенных задач машинного обучения, таких как обнаружение объектов, классификация текста и вывод LLM-моделей.
Получение и подготовка модели
Модель LiteRT представлена в эффективном переносимом формате, известном как FlatBuffers , который использует расширение файла .tflite .
Модель LiteRT можно приобрести следующими способами:
Получите предварительно обученную модель: для популярных задач машинного обучения, таких как сегментация изображений, обнаружение объектов и т. д.
Простейший подход — использовать модель LiteRT, уже находящуюся в формате
.tflite. Эти модели не требуют дополнительных преобразований.Тип модели Источник предварительно обученной модели Классическое машинное обучение
(формат.tflite)Посетите Kaggle или HuggingFace.
Например, модели сегментации изображений и пример приложения.Генеративный ИИ
(формат.litertlm)Страница LiteRT "Обнимающее лицо"
Например, семья Джеммы.Преобразуйте выбранную вами модель PyTorch, TensorFlow или JAX в модель LiteRT, если вы решили не использовать предварительно обученную модель. [PRO USER]
Модель структуры Примеры моделей Инструмент конвертации Питорч Обнимающее лицо
ТорчвизионСвязь TensorFlow Модели Kaggle
Обнимающее лицоСвязь Джакс Обнимающее лицо Связь Создайте свою LLM для дальнейшей оптимизации с помощью Generative API [PRO USER]
Наша библиотека Generative API предоставляет встроенные в PyTorch строительные блоки для создания моделей Transformer, таких как Gemma , TinyLlama и другие , с использованием удобных для мобильных устройств абстракций, благодаря которым мы можем гарантировать преобразование и производительное выполнение в нашей мобильной среде выполнения LiteRT. См. документацию Generative API .
Квантование [PRO USER]
AI Edge Quantizer для опытных разработчиков — это инструмент для квантизации преобразованных моделей LiteRT. Он призван помочь опытным пользователям добиться оптимальной производительности на ресурсоемких моделях (например, моделях GenAI).
Информацию о моделях машинного обучения и моделях генеративного ИИ см. в документации Ai-Edge-Quantization .
Предварительные условия для начала работы
- Python 3.10-3.12
- файл модели
.tflite - Дополнительные сведения доступны в соответствующем разделе платформы.
Интегрируйте модель в ваше приложение на периферийных платформах.
Вы можете использовать модели LiteRT для выполнения выводов полностью на устройствах Android, iOS, веб-приложениях, устройствах IoT и настольных компьютерах. LiteRT содержит API для Python , Java и Kotlin для Android, Swift для iOS и C++ для микроустройств.
Воспользуйтесь приведенными ниже руководствами для реализации модели LiteRT на предпочитаемой вами платформе:
| Модель структуры | Примеры моделей | Инструмент конвертации |
|---|---|---|
| Запущено на Android | мобильные устройства Android | API на C++/Kotlin |
| Запущено на iOS | мобильные устройства iOS | API на C++/Swift* |
| Запуск в веб-среде с использованием LiteRT.js | Устройство с установленными браузерами Chrome, Firefox или Safari. | API JavaScript |
| Запущено на Micro | Встроенные устройства | API на C++ |
*Вскоре
Пример кода на Kotlin
// Load model and initialize runtime
val compiledModel = CompiledModel.create("/path/to/mymodel.tflite", CompiledModel.Options(Accelerator.CPU))
// Prepare I/O buffers and fill in the data
val inputBuffers = compiledModel.createInputBuffers()
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
val outputBuffers = compiledModel.createOutputBuffers()
// Execute model
compiledModel.run(inputBuffers, outputBuffers)
// Access model output
val output = outputBuffers.get(0).readFloat()
inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
compiledModel.close()
Пример кода на C++
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
auto compiled_model,
CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));
Выберите бэкэнд
Самый простой способ интегрировать бэкенды в LiteRT — использовать встроенные в среду выполнения функции. Благодаря последним изменениям, LiteRT значительно упрощает настройку, предоставляя возможность указать целевой бэкенд в качестве опции.
В основе LiteRT v2.x лежит объект CompiledModel . При загрузке модели LiteRT использует доступное оборудование системы и внутреннюю логику приоритетов для выбора оптимального бэкенда без ручной настройки. Подробнее см. в разделе «Бэкенд» .
| Android | Рабочий стол | Веб | iOS | macOS | Интернет вещей | |
|---|---|---|---|---|---|---|
| Процессор | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack |
| GPU | WebGPU OpenCL | WebGPU OpenCL | WebGPU | WebGPU Металл | WebGPU Металл | WebGPU |
| НПУ | MediaTek Квалкомм | - | - | - | - | - |
Дополнительная документация и поддержка
Пример приложения LiteRT v2.x. См. пример приложения LiteRT для сегментации изображений.
Для существующих пользователей TensorFlow Lite см. руководство по миграции.
Совместимые операторы, обеспечивающие покрытие операций.
Поддерживаемые модели LLM: LiteRT Hugging face и Gen API - примеры.
Инструменты LiteRT: страница инструментов — производительность, профилирование, отчеты об ошибках и т.д.