Новый ускоритель LiteRT NeuroPilot от Google и MediaTek — это конкретный шаг к запуску реальных генеративных моделей на телефонах, ноутбуках и устройствах IoT без отправки каждого запроса в центр обработки данных. Сущеющую среду выполнения LiteRT подключают напрямую в стек NeuroPilot NPU от MediaTek, чтобы разработчики могли развёртывать LLM и встраиваемые модели с помощью единого API вместо индивидуального кода для каждой микросхемы.
Что такое LiteRT NeuroPilot Accelerator?
LiteRT — это преемник TensorFlow Lite. Это высокопроизводительная среда выполнения, которая работает на устройстве, запускает модели в формате .tflite FlatBuffer и может работать на CPU, GPU и теперь на NPU через унифицированный уровень аппаратного ускорения.
LiteRT NeuroPilot Accelerator — это новый путь NPU для оборудования MediaTek. Он заменяет старый делегат TFLite NeuroPilot прямой интеграцией с компилятором и средой выполнения NeuroPilot. Вместо того чтобы рассматривать NPU как тонкого делегата, LiteRT теперь использует Compiled Model API, который понимает компиляцию Ahead of Time (AOT) и компиляцию на устройстве и предоставляет оба варианта через те же API C++ и Kotlin.
На аппаратном уровне интеграция в настоящее время нацелена на MediaTek Dimensity 7300, 8300, 9000, 9200, 9300 и 9400 SoC, которые вместе охватывают большую часть среднего сегмента Android и флагманских устройств.
Почему разработчикам важен унифицированный рабочий процесс для фрагментированных NPUs?
Исторически сложилось так, что стеки машинного обучения на устройствах были ориентированы на CPU и GPU. SDK для NPU поставлялись в виде инструментов, специфичных для конкретного производителя, которые требовали отдельных потоков компиляции для каждой SoC, пользовательских делегатов и ручной упаковки среды выполнения. В результате возникал комбинаторный взрыв двоичных файлов и необходимость отладки для каждого устройства.
LiteRT NeuroPilot Accelerator заменяет это трёхэтапным рабочим процессом, который одинаков независимо от того, какой MediaTek NPU присутствует:
1. Преобразуйте или загрузите модель .tflite как обычно.
2. При необходимости используйте инструменты Python LiteRT для компиляции AOT и создания пакета ИИ, привязанного к одной или нескольким целевым SoC.
3. Отправьте пакет ИИ через Play для ИИ на устройстве (PODAI), затем выберите Accelerator.NPU во время выполнения. LiteRT обрабатывает нацеливание на устройство, загрузку во время выполнения и переходит на GPU или CPU, если NPU недоступен.
Для инженера основное изменение заключается в том, что логика нацеливания на устройство перемещается в структурированный файл конфигурации и доставку через Play, в то время как код приложения в основном взаимодействует с CompiledModel и Accelerator.NPU.
Компиляция AOT и на устройстве поддерживаются. Компиляция AOT выполняется для известной SoC заранее и рекомендуется для более крупных моделей, поскольку она устраняет затраты на компиляцию на устройстве пользователя. Компиляция на устройстве лучше подходит для небольших моделей и общего распространения .tflite, но с более высокой задержкой при первом запуске.
Модели Qwen, Gemma и встраиваемые модели на MediaTek NPU
Стек построен на основе открытых весовых моделей, а не на одном проприетарном пути NLU. Google и MediaTek явно ориентированы на поддержку:
* Qwen3 0,6 млрд для генерации текста на таких рынках, как материковый Китай.
* Gemma-3-270M, компактная базовая модель, которую легко настроить для таких задач, как анализ настроений и извлечение сущностей.
* Gemma-3-1B, многоязычная модель только для текста, предназначенная для обобщения и общих рассуждений.
* Gemma-3n E2B, мультимодальная модель, которая обрабатывает текст, аудио и зрение для таких задач, как перевод в реальном времени и ответы на визуальные вопросы.
* EmbeddingGemma 300M, модель встраивания текста для извлечения с улучшенной генерацией, семантическим поиском и классификацией.
На новейшем Dimensity 9500, работающем на Vivo X300 Pro, вариант Gemma 3n E2B достигает более 1600 токенов в секунду при предварительном заполнении и 28 токенов в секунду при декодировании при длине контекста 4K при выполнении на NPU.
Для использования в генераторе текста LiteRT-LM работает поверх LiteRT и предоставляет механизм с отслеживанием состояния с API text in text out. Типичный поток C++ заключается в создании ModelAssets, сборке Engine с litert::lm::Backend::NPU, затем создании сеанса и вызове GenerateContent для каждого разговора.
Для встраиваемых рабочих нагрузок EmbeddingGemma использует API CompiledModel LiteRT на нижнем уровне в конфигурации tensor in tensor out, снова с выбором NPU через параметры аппаратного ускорителя.
Опыт разработчиков, конвейер C++ и буферы без копирования
LiteRT представляет новый API C++, который заменяет старые точки входа C и разработан вокруг явных объектов Environment, Model, CompiledModel и TensorBuffer.
Для MediaTek NPUs этот API тесно интегрирован с буферами Android AHardwareBuffer и GPU. Вы можете создавать экземпляры входных TensorBuffer непосредственно из буферов OpenGL или OpenCL с помощью TensorBuffer::CreateFromGlBuffer, что позволяет коду обработки изображений подавать входные данные NPU без промежуточной копии через память CPU. Это важно для обработки камеры и видео в реальном времени, где несколько копий за кадр быстро насыщают пропускную способность памяти.
Ключевые выводы
* LiteRT NeuroPilot Accelerator — это новая первоклассная интеграция NPU между LiteRT и MediaTek NeuroPilot, заменяющая старый делегат TFLite и предоставляющая унифицированный Compiled Model API с AOT и компиляцией на устройстве на поддерживаемых Dimensity SoC.
* Стек нацелен на конкретные открытые весовые модели, включая Qwen3-0,6B, Gemma-3-270M, Gemma-3-1B, Gemma-3n-E2B и EmbeddingGemma-300M, и запускает их через LiteRT и LiteRT LM на MediaTek NPUs с единой абстракцией ускорителя.
* Компиляция AOT настоятельно рекомендуется для LLM, например, Gemma-3-270M может занимать более 1 минуты для компиляции на устройстве, поэтому для производственных развёртываний следует один раз скомпилировать в конвейере и отправить пакеты ИИ через Play для ИИ на устройстве.
* На NPU класса Dimensity 9500 Gemma-3n-E2B может достигать более 1600 токенов в секунду при предварительном заполнении и 28 токенов в секунду при декодировании при длине контекста 4K, с измеренной пропускной способностью до 12 раз по сравнению с CPU и 10 раз по сравнению с GPU для рабочих нагрузок LLM.
* Для разработчиков API C++ и Kotlin LiteRT предоставляют общий путь для выбора Accelerator.NPU, управления скомпилированными моделями и использования буферов тензора без копирования, чтобы цели CPU, GPU и MediaTek NPU могли использовать один путь кода и один рабочий процесс развёртывания.
1. Какие преимущества предоставляет LiteRT NeuroPilot Accelerator разработчикам при работе с моделями LLM на устройствах?
LiteRT NeuroPilot Accelerator предоставляет разработчикам унифицированный рабочий процесс для работы с моделями LLM на устройствах. Это упрощает развёртывание моделей и позволяет использовать единый API для работы с различными NPUs. Кроме того, LiteRT поддерживает компиляцию AOT и на устройстве, что позволяет оптимизировать производительность моделей.
2. Какие модели LLM поддерживаются стеком LiteRT NeuroPilot?
Стек LiteRT NeuroPilot поддерживает следующие модели LLM: Qwen3 0,6 млрд для генерации текста, Gemma-3-270M для анализа настроений и извлечения сущностей, Gemma-3-1B для обобщения и общих рассуждений, Gemma-3n E2B для обработки текста, аудио и зрения, а также EmbeddingGemma 300M для извлечения текста с улучшенной генерацией, семантическим поиском и классификацией.
3. Какие преимущества даёт использование буферов Android AHardwareBuffer и GPU с LiteRT?
Использование буферов Android AHardwareBuffer и GPU с LiteRT позволяет создавать экземпляры входных TensorBuffer непосредственно из буферов OpenGL или OpenCL. Это позволяет коду обработки изображений подавать входные данные NPU без промежуточной копии через память CPU. Это важно для обработки камеры и видео в реальном времени, где несколько копий за кадр быстро насыщают пропускную способность памяти.
4. Какие рекомендации даются в статье для производственных развёртываний моделей LLM?
В статье рекомендуется использовать компиляцию AOT для производственных развёртываний моделей LLM. Это позволяет оптимизировать производительность моделей и ускорить их работу на устройствах. Также рекомендуется один раз скомпилировать модель в конвейере и отправить пакеты ИИ через Play для ИИ на устройстве.
5. Какие результаты были достигнуты при использовании модели Gemma-3n E2B на NPU класса Dimensity 9500?
На NPU класса Dimensity 9500 модель Gemma-3n E2B достигает более 1600 токенов в секунду при предварительном заполнении и 28 токенов в секунду при декодировании при длине контекста 4K. Это свидетельствует о высокой производительности модели на устройствах с поддержкой NPU.