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 KB за основния интерпретатор на 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 и изпълнява извод, управлявайки тензори и памет.

Делегати — са компоненти, които прехвърлят изпълнението на операции към специализиран хардуер. GPU Delegate използва OpenGL ES и Metal, NNAPI Delegate — Android Neural Networks API, Core ML Delegate — Apple Core ML. XNNPACK Delegate оптимизира изпълнението на ARM CPU. Всеки делегат поддържа определен набор от оператори.

Четвъртият компонент — Task Library, която предоставя високо-level 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 операции и не изисква специализиран хардуер. Препоръчва се като базов делегат за всички устройства.

Разгръщане на модел с TFLite

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

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

При разгръщане е важно да се вземе предвид размерът на .tflite файла. Google Play ограничава размера на APK до 200 MB. За модели, по-големи от 50 MB, се препоръчва използването на 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);

// Изпълни извод върху входните данни
interpreter.run(input, output);

// Освободи ресурсите на делегата след извода
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 и 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 KB на Android и работи на над 4 милиарда устройства.
  • Task Library предоставя готови решения за класификация, откриване, сегментация и NLU.
  • За динамично обновяване използвайте Firebase ML или Play Asset Delivery.

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

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също