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 та виконує інференс, керуючи тензорами та пам'яттю.

Делегати — це компоненти, що переносять виконання операцій на спеціалізоване обладнання. 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 зростає до 3х. Квантування FP16 зменшує розмір удвічі з мінімальною втратою точності.

Динамічне квантування зберігає ваги в INT8, але виконує обчислення в FP32. Цей режим підходить для моделей, чутливих до точності, і дає зменшення розміру до 4х разів при збереженні якості. За даними 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 до 4х разів порівняно з CPU. GPU Delegate для iOS використовує Metal Performance Shaders.

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

Розгортання моделі з 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 зменшує розмір в 2х, INT8 — в 4х. Також доступні динамічне квантування, обрізка ваг та дистиляція моделі перед конвертацією.

Чи підтримує TFLite навчання на пристрої?

Так, через TFLite Model Maker та API навчання на пристрої (експериментально). Підтримується доналаштування та персоналізація моделей безпосередньо на пристрої користувача.

Які типи моделей підтримує TFLite?

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

Підсумки

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

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

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