TensorFlow Lite — a TensorFlow keretrendszer könnyűsúlyú verziója, amelyet a Google fejlesztett ki gépi tanulási modellek mobil és beágyazott eszközökön, korlátozott számítási erőforrásokkal történő futtatására. A teljes TensorFlow-val ellentétben a TFLite speciális interpretert és .tflite formátumot használ, amely gyors következtetésre van optimalizálva tanulás támogatása nélkül. A TensorFlow Lite Guide, 2025 szerint a keretrendszer Androidon, iOS-en és Linux-on működik, és több mint 4 milliárd eszközön használják. A TensorFlow Lite támogatja a kvantálást, hardveres gyorsítást NNAPI-n, GPU-n és Core ML delegáltakon keresztül.
Főbb pontok
TensorFlow Lite — egy speciális futásidejű környezet gépi tanulási modellek korlátozott erőforrású eszközökön történő futtatására. A teljes TensorFlow-val ellentétben a TFLite nem támogatja a tanulást és a visszaterjesztést — csak a következtetést. Ez lehetővé teszi a könyvtár bináris méretének minimalizálását: körülbelül 300 KB az alap interpreter számára Androidon.
A TFLite architektúrája a FlatBuffers-en alapuló .tflite formátum köré épül. A FlatBuffers közvetlen hozzáférést biztosít az adatokhoz elemzési szakasz nélkül, ami kritikus a korlátozott memóriájú mobileszközökön. A .tflite formátumú modell egyetlen bináris fájlban tartalmazza a számítási gráfot, a súlyokat és a metaadatokat.
A Google I/O 2024 szerint a TFLite-ot a Google Photos, Gboard, YouTube és más Google-alkalmazások használják, összesen több mint 4 milliárd eszközön. A keretrendszer támogatja az összes fő architektúrát: CNN, RNN, LSTM, Transformer és egyéni műveleteket delegáltakon keresztül.
A TFLite futásidejű környezet négy komponensből áll. A TFLite Converter fogadja a modellt a TensorFlow-ból (SavedModel, Keras, ConcreteFunction), és opcionális optimalizálással .tflite formátumba alakítja. A TFLite Interpreter betölti a .tflite-ot és végrehajtja a következtetést, kezelve a tenzorokat és a memóriát.
Delegáltak — olyan komponensek, amelyek a műveletek végrehajtását szakosodott hardverre helyezik át. A GPU Delegate OpenGL ES-t és Metal-t, az NNAPI Delegate az Android Neural Networks API-t, a Core ML Delegate az Apple Core ML-t használja. Az XNNPACK Delegate optimalizálja a végrehajtást ARM CPU-n. Minden delegált egy meghatározott operátorkészletet támogat.
A negyedik komponens — a Task Library, amely magas szintű API-kat biztosít tipikus feladatokhoz: képosztályozás, objektumdetektálás, szegmentálás, NLU. A Task Library az Interpreter tetején működik, és elrejti a tenzorkezelés részleteit.
A TFLite három kvantálási szintet támogat. A teljes egész számos INT8 kvantálás a súlyokat és aktivációkat FP32-ből 8 bites egész számokká alakítja. A modell mérete 4-szeresére csökken, a következtetés sebessége az INT8 támogatással rendelkező eszközökön akár 3x-ra nő. Az FP16 kvantálás felére csökkenti a méretet minimális pontosságvesztéssel.
A dinamikus kvantálás INT8-ban tartja a súlyokat, de a számításokat FP32-ben végzi. Ez a mód a pontosságra érzékeny modellekhez alkalmas, és akár 4x-es méretcsökkentést biztosít a minőség megőrzése mellett. A Google ML Performance Benchmarks szerint a dinamikus kvantálás NLP modellekhez ajánlott.
| Mód | Súly típusa | Aktiváció típusa | Méretcsökkenés |
|---|---|---|---|
| FP32 (kvantálás nélkül) | FP32 | FP32 | 1x |
| FP16 | FP16 | FP32 | 2x |
| Dinamikus INT8 | INT8 | FP32 | 4x |
| Teljes INT8 | INT8 | INT8 | 4x |
Androidon a fő gyorsítási mechanizmus az NNAPI Delegate, amely a műveletek végrehajtását NPU-ra, DSP-re vagy GPU-ra helyezi át az Android Neural Networks API-n keresztül. Az NNAPI Android 8.1+ rendszerű eszközökön érhető el, és támogatja az INT8 és FP16 számításokat. Az Androidhoz készült GPU Delegate OpenGL ES 3.1+ és Vulkan használ.
iOS-en a gyorsítást a Core ML Delegate biztosítja, amely lefordítja a TFLite műveleteket Core ML formátumba, és az Apple Neural Engine-on hajtja végre őket. Az Apple ML Benchmarking szerint a Core ML Delegate használata akár 4x-re gyorsítja a következtetést iPhone 15 Pro-n a CPU-hoz képest. Az iOS-hez készült GPU Delegate Metal Performance Shaders-t használ.
Az XNNPACK Delegate — egy platformok közötti megoldás ARM CPU-hoz, mobil processzorokra optimalizálva. Az XNNPACK FP32, FP16 és INT8 műveleteket támogat, és nem igényel speciális hardvert. Alapértelmezett delegáltként ajánlott minden eszközhöz.
A telepítési folyamat három lépésből áll. Első — a modell konvertálása .tflite formátumba a TFLite Converteren keresztül. Második — a .tflite fájl hozzáadása az alkalmazás erőforrásaihoz. Android esetén a fájl az assets mappába kerül, iOS esetén — az alkalmazás bundle-jába Xcode-on keresztül. Harmadik — az Interpreter inicializálása és a következtetés végrehajtása.
A modellek dinamikus frissítéséhez a Google a Firebase ML Model Downloading vagy saját felhőből történő letöltési mechanizmus használatát javasolja. A frissített .tflite fájl a helyi tárolóba kerül, és a következő indításkor betöltődik az Interpreter-be.
Telepítéskor fontos figyelembe venni a .tflite fájl méretét. A Google Play 200 MB-ra korlátozza az APK méretét. Az 50 MB-nál nagyobb modellekhez ajánlott az Android App Bundle használata vagy a modell külön történő letöltése a Play Asset Delivery-n keresztül.
Példa modell betöltésére és futtatására Androidon Java API-val. Használja az Interpreter.create()-t a .tflite betöltéséhez az assets mappából és a run()-t a következtetéshez. A bemeneti és kimeneti adatok többdimenziós tömbökként vagy ByteBuffer-ként kerülnek átadásra:
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();
Példa a GPU Delegate használatára Androidon hardveres gyorsításhoz. Adja hozzá a com.android.support:tensorflow-lite-gpu függőséget, és adja meg a delegáltat az Interpreter létrehozásakor:
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);
// Futtasson következtetést a bemeneti adatokon
interpreter.run(input, output);
// Szabadítsa fel a delegált erőforrásokat a következtetés után
gpuDelegate.close();
interpreter.close();
Gyakran Ismételt Kérdések
TensorFlow — teljes keretrendszer tanuláshoz és következtetéshez. TensorFlow Lite — csak következtetéshez mobileszközökön. A TFLite .tflite formátumot használ, és nem támogatja a visszaterjesztést.
GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) és XNNPACK Delegate (ARM CPU) támogatott. Minden delegált egy adott hardvertípusra van optimalizálva.
Használjon kvantálást: az FP16 2x-re, az INT8 4x-re csökkenti a méretet. Szintén elérhető a dinamikus kvantálás, súlymetszés (weight pruning) és modell-desztilláció a konvertálás előtt.
Igen, a TFLite Model Maker és az on-device training API segítségével (kísérleti). Támogatott a finomhangolás (fine-tuning) és a modellek közvetlenül a felhasználó eszközén történő személyre szabása.
A TFLite támogatja a CNN, RNN, LSTM, Transformer, mobil architektúrákat (MobileNet, EfficientNet, YOLO, BERT) és egyéni műveleteket. Korlátozás — a cél-delegáltban elérhető operátorok.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is