TensorFlow Lite — что это, ключевые возможности и применение

Автор: IT Sectr Опубликовано: 2026-07-17 Время чтения: 6 мин

TensorFlow Lite — это облегчённая версия фреймворка TensorFlow, разработанная Google для выполнения моделей машинного обучения на мобильных и встраиваемых устройствах с ограниченными вычислительными ресурсами. В отличие от полного TensorFlow, TFLite использует специализированный интерпретатор и формат .tflite, оптимизированный для быстрого инференса без поддержки обучения. По данным TensorFlow Lite Guide, 2025, фреймворк работает на Android, iOS и Linux и используется более чем в 4 миллиардах устройств. TensorFlow Lite поддерживает квантование, аппаратное ускорение через NNAPI, GPU и Core ML делегаты.

Главное

  • TensorFlow Lite — облегчённый фреймворк для on-device ML на мобильных и встраиваемых устройствах.
  • Модели конвертируются в формат .tflite через конвертер TFLite из TensorFlow SavedModel или Keras.
  • Поддерживается квантование INT8, FP16 и динамическое квантование для уменьшения размера.
  • Аппаратное ускорение доступно через GPU Delegate, NNAPI и Core ML Delegate.
  • TFLite работает на Android, iOS и Linux с API на Java, C++, Swift и Python.

Что такое TensorFlow Lite

TensorFlow Lite — это специализированный рантайм для выполнения моделей машинного обучения на устройствах с ограниченными ресурсами. В отличие от полного TensorFlow, TFLite не поддерживает обучение и обратное распространение ошибки — только инференс. Это позволяет сделать бинарный размер библиотеки минимальным: около 300 КБ для базового интерпретатора на Android.

Архитектура TFLite построена вокруг формата .tflite, основанного на FlatBuffers. FlatBuffers обеспечивает прямой доступ к данным без этапа парсинга, что критически важно для мобильных устройств с ограниченной памятью. Модель в формате .tflite содержит граф вычислений, веса и метаданные в едином бинарном файле.

По данным Google I/O 2024, TFLite используется в Google Photos, Gboard, YouTube и других приложениях Google с суммарной аудиторией более 4 миллиардов устройств. Фреймворк поддерживает все основные архитектуры: CNN, RNN, LSTM, Transformer и пользовательские операции через делегаты.

Архитектура TensorFlow Lite

Рантайм TFLite состоит из четырёх компонентов. TFLite Converter принимает модель из TensorFlow (SavedModel, Keras, ConcreteFunction) и преобразует её в формат .tflite с опциональной оптимизацией. TFLite Interpreter загружает .tflite и выполняет инференс, управляя тензорами и памятью.

Delegates — это компоненты, переносящие выполнение операций на специализированное оборудование. GPU Delegate использует OpenGL ES и Metal, NNAPI Delegate — Android Neural Networks API, Core ML Delegate — Apple Core ML. XNNPACK Delegate оптимизирует выполнение на ARM CPU. Каждый делегат поддерживает определённый набор операторов.

Четвёртый компонент — Task Library, предоставляющая высокоуровневые API для типовых задач: классификация изображений, обнаружение объектов, сегментация, NLU. Task Library работает поверх Interpreter и скрывает детали управления тензорами.

Оптимизация моделей и квантование

TFLite поддерживает три уровня квантования. Полное целочисленное квантование INT8 преобразует веса и активации из FP32 в 8-битные целые числа. Размер модели уменьшается в 4 раза, а скорость инференса на устройствах с поддержкой INT8 возрастает до 3x. Квантование FP16 уменьшает размер вдвое с минимальной потерей точности.

Динамическое квантование сохраняет веса в INT8, но выполняет вычисления в FP32. Этот режим подходит для моделей, чувствительных к точности, и даёт уменьшение размера до 4x при сохранении качества. По данным Google ML Performance Benchmarks, динамическое квантование рекомендуется для NLP-моделей.

Сравнение режимов квантования TFLite

РежимТип весовТип активацийУменьшение размера
FP32 (без квантования)FP32FP321x
FP16FP16FP322x
Динамическое INT8INT8FP324x
Полное INT8INT8INT84x

Аппаратное ускорение на Android и iOS

На Android основным механизмом ускорения является NNAPI Delegate, который переносит выполнение операций на NPU, DSP или GPU через Android Neural Networks API. NNAPI доступен на устройствах с Android 8.1+ и поддерживает INT8 и FP16 вычисления. GPU Delegate для Android использует OpenGL ES 3.1+ и Vulkan.

На iOS ускорение обеспечивается через Core ML Delegate, который транслирует операции TFLite в формат Core ML и выполняет их на Apple Neural Engine. По данным Apple ML Benchmarking, использование Core ML Delegate ускоряет инференс на iPhone 15 Pro до 4x по сравнению с CPU. GPU Delegate для iOS использует Metal Performance Shaders.

XNNPACK Delegate — это кроссплатформенное решение для ARM CPU, оптимизированное для мобильных процессоров. XNNPACK поддерживает FP32, FP16 и INT8 операции и не требует специального оборудования. Рекомендуется как baseline-делегат для всех устройств.

Развёртывание модели с TFLite

Процесс развёртывания включает три шага. Первый — конвертация модели в .tflite через TFLite Converter. Второй — включение .tflite файла в ресурсы приложения. Для Android файл помещается в assets, для iOS — в бандл приложения через Xcode. Третий — инициализация Interpreter и выполнение инференса.

Для динамического обновления моделей Google рекомендует использовать Firebase ML Model Downloading или собственный механизм загрузки из облака. Обновлённый .tflite файл сохраняется в локальном хранилище и загружается в Interpreter при следующем запуске.

При развёртывании важно учитывать размер .tflite файла. Google Play ограничивает размер APK до 200 МБ. Для моделей больше 50 МБ рекомендуется использовать Android App Bundle или загружать модель отдельно через Play Asset Delivery.

Примеры использования TFLite в коде

Пример загрузки и выполнения модели на Android с Java API. Используйте Interpreter.create() для загрузки .tflite из assets и run() для инференса. Входные и выходные данные передаются как многомерные массивы или ByteBuffer:

java
import org.tensorflow.lite.Interpreter;
import java.nio.MappedByteBuffer;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;

MappedByteBuffer model = new FileInputStream(
    getAssets().openFd("model.tflite")
).getChannel().map(
    FileChannel.MapMode.READ_ONLY, 0, fc.size()
);

Interpreter interpreter = new Interpreter.create(model);
float[][] input = new float[1][224 * 224 * 3];
float[][] output = new float[1][1000];
interpreter.run(input, output);
interpreter.close();

Пример использования GPU Delegate на Android для аппаратного ускорения. Добавьте зависимость com.android.support:tensorflow-lite-gpu и укажите делегат при создании Interpreter:

java
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.gpu.GpuDelegate;

GpuDelegate gpuDelegate = new GpuDelegate.create();
Interpreter.Options options = new Interpreter.Options().addDelegate(gpuDelegate);
Interpreter interpreter = new Interpreter.create(model, options);

// Run inference on the input data
interpreter.run(input, output);

// Release delegate resources after inference
gpuDelegate.close();
interpreter.close();

Часто задаваемые вопросы

В чём разница между TensorFlow и TensorFlow Lite?

TensorFlow — полный фреймворк для обучения и инференса. TensorFlow Lite — только для инференса на мобильных устройствах. TFLite использует формат .tflite и не поддерживает обратное распространение ошибки.

Какие делегаты ускорения доступны в TFLite?

Поддерживаются GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) и XNNPACK Delegate (ARM CPU). Каждый делегат оптимизирован для конкретного типа оборудования.

Как уменьшить размер .tflite модели?

Используйте квантование: FP16 уменьшает размер в 2x, INT8 — в 4x. Также доступно динамическое квантование, обрезка весов (weight pruning) и дистилляция модели перед конвертацией.

Поддерживает ли TFLite обучение на устройстве?

Да, через TFLite Model Maker и on-device training API (экспериментально). Поддерживается дообучение (fine-tuning) и персонализация моделей непосредственно на устройстве пользователя.

Какие типы моделей поддерживает TFLite?

TFLite поддерживает CNN, RNN, LSTM, Transformer, мобильные архитектуры (MobileNet, EfficientNet, YOLO, BERT) и пользовательские операции. Ограничение — доступные операторы в целевом делегате.

Итоги

  • TensorFlow Lite — облегчённый фреймворк для on-device ML на мобильных и встраиваемых устройствах от Google.
  • Модели конвертируются в формат .tflite через TFLite Converter из TensorFlow SavedModel или Keras.
  • Квантование INT8 и FP16 уменьшает размер модели до 4x и ускоряет инференс до 3x.
  • Аппаратное ускорение доступно через GPU, NNAPI, Core ML и XNNPACK делегаты.
  • Рантайм занимает около 300 КБ на Android и работает на более чем 4 миллиардах устройств.
  • Task Library предоставляет готовые решения для классификации, детекции, сегментации и NLU.
  • Для динамического обновления используйте Firebase ML или Play Asset Delivery.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также