TensorFlow Lite — co to jest, kluczowe możliwości i zastosowanie

Autor: IT Sectr Opublikowano: 2026-07-17 Czas czytania: 6 min

TensorFlow Lite — to lekka wersja frameworka TensorFlow opracowana przez Google do wykonywania modeli uczenia maszynowego na urządzeniach mobilnych i wbudowanych o ograniczonych zasobach obliczeniowych. W przeciwieństwie do pełnego TensorFlow, TFLite używa specjalistycznego interpretera i formatu .tflite, zoptymalizowanego pod kątem szybkiego wnioskowania bez wsparcia uczenia. Według TensorFlow Lite Guide, 2025, framework działa na Android, iOS i Linux i jest używany na ponad 4 miliardach urządzeń. TensorFlow Lite wspiera kwantyzację, przyspieszenie sprzętowe przez NNAPI, GPU i delegaty Core ML.

Najważniejsze

  • TensorFlow Lite — lekki framework do on-device ML na urządzeniach mobilnych i wbudowanych.
  • Modele są konwertowane do formatu .tflite przez konwerter TFLite z TensorFlow SavedModel lub Keras.
  • Obsługuje kwantyzację INT8, FP16 i kwantyzację dynamiczną w celu zmniejszenia rozmiaru.
  • Przyspieszenie sprzętowe dostępne przez GPU Delegate, NNAPI i Core ML Delegate.
  • TFLite działa na Android, iOS i Linux z API w Java, C++, Swift i Python.

Co to jest TensorFlow Lite

TensorFlow Lite — to specjalistyczne środowisko uruchomieniowe do wykonywania modeli uczenia maszynowego na urządzeniach o ograniczonych zasobach. W przeciwieństwie do pełnego TensorFlow, TFLite nie wspiera uczenia i propagacji wstecznej — tylko wnioskowanie. Pozwala to zminimalizować rozmiar biblioteki binarnej: około 300 KB dla podstawowego interpretera na Android.

Architektura TFLite opiera się na formacie .tflite, bazującym na FlatBuffers. FlatBuffers zapewnia bezpośredni dostęp do danych bez etapu parsowania, co jest kluczowe dla urządzeń mobilnych z ograniczoną pamięcią. Model w formacie .tflite zawiera graf obliczeniowy, wagi i metadane w jednym pliku binarnym.

Według Google I/O 2024, TFLite jest używany w Google Photos, Gboard, YouTube i innych aplikacjach Google z łączną bazą ponad 4 miliardów urządzeń. Framework wspiera wszystkie główne architektury: CNN, RNN, LSTM, Transformer i operacje niestandardowe przez delegaty.

Architektura TensorFlow Lite

Środowisko uruchomieniowe TFLite składa się z czterech komponentów. TFLite Converter przyjmuje model z TensorFlow (SavedModel, Keras, ConcreteFunction) i przekształca go do formatu .tflite z opcjonalną optymalizacją. TFLite Interpreter ładuje .tflite i wykonuje wnioskowanie, zarządzając tensorami i pamięcią.

Delegaty — to komponenty przenoszące wykonywanie operacji na specjalistyczny sprzęt. GPU Delegate używa OpenGL ES i Metal, NNAPI Delegate — Android Neural Networks API, Core ML Delegate — Apple Core ML. XNNPACK Delegate optymalizuje wykonywanie na ARM CPU. Każdy delegat wspiera określony zestaw operatorów.

Czwarty komponent — Task Library, udostępniająca wysokopoziomowe API dla typowych zadań: klasyfikacja obrazów, wykrywanie obiektów, segmentacja, NLU. Task Library działa na Interpreter i ukrywa szczegóły zarządzania tensorami.

Optymalizacja modeli i kwantyzacja

TFLite wspiera trzy poziomy kwantyzacji. Pełna kwantyzacja całkowitoliczbowa INT8 przekształca wagi i aktywacje z FP32 na 8-bitowe liczby całkowite. Rozmiar modelu zmniejsza się 4-krotnie, a szybkość wnioskowania na urządzeniach z obsługą INT8 wzrasta do 3x. Kwantyzacja FP16 zmniejsza rozmiar o połowę przy minimalnej utracie dokładności.

Kwantyzacja dynamiczna zachowuje wagi w INT8, ale wykonuje obliczenia w FP32. Ten tryb jest odpowiedni dla modeli wrażliwych na dokładność i daje zmniejszenie rozmiaru do 4x przy zachowaniu jakości. Według Google ML Performance Benchmarks, kwantyzacja dynamiczna jest zalecana dla modeli NLP.

Porównanie trybów kwantyzacji TFLite

TrybTyp wagTyp aktywacjiZmniejszenie rozmiaru
FP32 (bez kwantyzacji)FP32FP321x
FP16FP16FP322x
Dynamiczne INT8INT8FP324x
Pełne INT8INT8INT84x

Przyspieszenie sprzętowe na Android i iOS

Na Android głównym mechanizmem przyspieszenia jest NNAPI Delegate, który przenosi wykonywanie operacji na NPU, DSP lub GPU przez Android Neural Networks API. NNAPI jest dostępny na urządzeniach z Android 8.1+ i wspiera obliczenia INT8 i FP16. GPU Delegate dla Android używa OpenGL ES 3.1+ i Vulkan.

Na iOS przyspieszenie jest zapewniane przez Core ML Delegate, który tłumaczy operacje TFLite na format Core ML i wykonuje je na Apple Neural Engine. Według Apple ML Benchmarking, użycie Core ML Delegate przyspiesza wnioskowanie na iPhone 15 Pro do 4x w porównaniu z CPU. GPU Delegate dla iOS używa Metal Performance Shaders.

XNNPACK Delegate — to rozwiązanie wieloplatformowe dla ARM CPU, zoptymalizowane dla procesorów mobilnych. XNNPACK wspiera operacje FP32, FP16 i INT8 i nie wymaga specjalistycznego sprzętu. Zalecany jako delegat bazowy dla wszystkich urządzeń.

Wdrażanie modelu z TFLite

Proces wdrażania obejmuje trzy kroki. Pierwszy — konwersja modelu do .tflite przez TFLite Converter. Drugi — dołączenie pliku .tflite do zasobów aplikacji. Dla Android plik umieszcza się w assets, dla iOS — w bundle aplikacji przez Xcode. Trzeci — inicjalizacja Interpreter i wykonanie wnioskowania.

Do dynamicznej aktualizacji modeli Google zaleca używanie Firebase ML Model Downloading lub własnego mechanizmu pobierania z chmury. Zaktualizowany plik .tflite jest zapisywany w lokalnym magazynie i ładowany do Interpreter przy następnym uruchomieniu.

Przy wdrażaniu ważne jest uwzględnienie rozmiaru pliku .tflite. Google Play ogranicza rozmiar APK do 200 MB. Dla modeli większych niż 50 MB zaleca się używanie Android App Bundle lub pobieranie modelu osobno przez Play Asset Delivery.

Przykłady użycia TFLite w kodzie

Przykład ładowania i wykonywania modelu na Android z Java API. Użyj Interpreter.create() do załadowania .tflite z assets i run() do wnioskowania. Dane wejściowe i wyjściowe są przekazywane jako tablice wielowymiarowe lub 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();

Przykład użycia GPU Delegate na Android do przyspieszenia sprzętowego. Dodaj zależność com.android.support:tensorflow-lite-gpu i wskaż delegat przy tworzeniu 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);

// Wykonaj wnioskowanie na danych wejściowych
interpreter.run(input, output);

// Zwolnij zasoby delegata po wnioskowaniu
gpuDelegate.close();
interpreter.close();

Często zadawane pytania

Jaka jest różnica między TensorFlow a TensorFlow Lite?

TensorFlow — pełny framework do uczenia i wnioskowania. TensorFlow Lite — tylko do wnioskowania na urządzeniach mobilnych. TFLite używa formatu .tflite i nie wspiera propagacji wstecznej.

Jakie delegaty przyspieszenia są dostępne w TFLite?

Obsługiwane są GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) i XNNPACK Delegate (ARM CPU). Każdy delegat jest zoptymalizowany dla konkretnego typu sprzętu.

Jak zmniejszyć rozmiar modelu .tflite?

Użyj kwantyzacji: FP16 zmniejsza rozmiar 2x, INT8 — 4x. Dostępna jest również kwantyzacja dynamiczna, przycinanie wag (weight pruning) i destylacja modelu przed konwersją.

Czy TFLite wspiera uczenie na urządzeniu?

Tak, przez TFLite Model Maker i API uczenia na urządzeniu (eksperymentalnie). Obsługiwane jest dostrajanie (fine-tuning) i personalizacja modeli bezpośrednio na urządzeniu użytkownika.

Jakie typy modeli obsługuje TFLite?

TFLite obsługuje CNN, RNN, LSTM, Transformer, architektury mobilne (MobileNet, EfficientNet, YOLO, BERT) i operacje niestandardowe. Ograniczeniem są dostępne operatory w docelowym delegacie.

Podsumowanie

  • TensorFlow Lite — lekki framework do on-device ML na urządzeniach mobilnych i wbudowanych od Google.
  • Modele są konwertowane do formatu .tflite przez TFLite Converter z TensorFlow SavedModel lub Keras.
  • Kwantyzacja INT8 i FP16 zmniejsza rozmiar modelu do 4x i przyspiesza wnioskowanie do 3x.
  • Przyspieszenie sprzętowe dostępne przez GPU, NNAPI, Core ML i XNNPACK delegaty.
  • Środowisko uruchomieniowe zajmuje około 300 KB na Android i działa na ponad 4 miliardach urządzeń.
  • Task Library udostępnia gotowe rozwiązania do klasyfikacji, detekcji, segmentacji i NLU.
  • Do dynamicznej aktualizacji używaj Firebase ML lub Play Asset Delivery.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również