LiteRT vs TensorFlow Lite: what changed, plus the old-name new-name cheat sheet

작성자

카테고리:

← 피드로
DEV Community · Daisuke Majima (MLBoy) · 2026-09-08 개발(SW)

Last verified: 2026-09-05 — LiteRT 2.2.0, LiteRT-LM 0.16.1, litert-torch 0.9.4, ai-edge-litert 2.2.0. Every version and link below was read on that date. On-device tooling moves monthly; check the linked page before you pin anything.

Direct answer

LiteRT is TensorFlow Lite, renamed on 2024-09-04. Same .tflite file format, same models, same Interpreter API. Four things changed since then:

  1. Package names. Android org.tensorflow:tensorflow-litecom.google.ai.edge.litert:litert. Python tflite-runtimeai-edge-litert. PyTorch converter ai-edge-torchlitert-torch.
  2. A new inference API, CompiledModel. GPU or NPU is an option you pass in, not a delegate you wire yourself.
  3. A PyTorch converter, litert-torch, that goes from torch.export straight to .tflite. No ONNX step, no TensorFlow graph.
  4. A separate LLM runtime, LiteRT-LM, which replaces the MediaPipe LLM Inference API.

TensorFlow Lite packages are in maintenance mode. The tensorflow/lite README says they “only receive critical security and stability updates”.

If you start today: com.google.ai.edge.litert:litert:2.2.0 with CompiledModel on Android, ai-edge-litert in Python, litert-torch for PyTorch models, LiteRT-LM for on-device LLMs. An existing TensorFlow Lite app keeps working. You can move one package at a time.

Old name → new name

Android (Gradle)

You have Use instead Notes org.tensorflow:tensorflow-lite:2.17.0 com.google.ai.edge.litert:litert:2.2.0 Google Maven only, not Maven Central. Contains both Interpreter and CompiledModel; minSdk 23. The 1.4.x line is Interpreter-only, minSdk 21. org.tensorflow:tensorflow-lite-gpu nothing extra on 2.x; the GPU accelerator is inside litert litert-gpu stops at 1.4.2 (Interpreter API). org.tensorflow:tensorflow-lite-support / -metadata com.google.ai.edge.litert:litert-support / litert-metadata 1.4.2 No 2.x release of either. -select-tf-ops, -task-*, -hexagon no LiteRT-named artifact Task Library and Model Maker stay under the TensorFlow Lite name. com.google.android.gms:play-services-tflite-* unchanged (16.5.0) The Play services runtime keeps the tflite name. No code change. GpuDelegate / NnApiDelegate on Interpreter CompiledModel.Options(Accelerator.GPU) or Accelerator.NPU NNAPI is deprecated from Android 15 (Android docs). Qualcomm qnn-litert-delegate + qnn-runtime Accelerator.NPU on CompiledModel, one dependency NPU page lists Google Tensor, Qualcomm, MediaTek, Samsung, Intel.

Python

You have Use instead Notes pip install tflite-runtime (tflite_runtime.interpreter) pip install ai-edge-litert (ai_edge_litert.interpreter.Interpreter, ai_edge_litert.compiled_model.CompiledModel) tflite-runtime last shipped 2023-10 with wheels up to Python 3.11 and carries no deprecation note. ai-edge-litert 2.2.0 ships cp310 to cp314; its PyPI classifiers still say 3.8–3.11, ignore them. tf.lite.Interpreter for inference ai-edge-literttf.lite.TFLiteConverter (TensorFlow / Keras → .tflite) unchanged Still the converter for TensorFlow models. pip install ai-edge-torch (ai_edge_torch.convert) pip install litert-torch (litert_torch.convert(model, sample_inputs)) ai-edge-torch 0.7.2 is a deprecation stub that says so. litert-torch 0.9.4 is a pure-Python wheel; its native part, litert-converter 0.4.0, has cp310–cp314 wheels. Installing pulls torch, jax and transformers (2.0 GB, 93 packages on 2026-09-05), not TensorFlow. — pip install ai-edge-quantizer Post-training quantization for LiteRT. — pip install litert-lm LiteRT-LM CLI (Python ≥ 3.10) to run .litertlm bundles on a desktop.

iOS, Web, LLM

Area State on 2026-09-05 iOS / Swift The official quickstart still says pod 'TensorFlowLiteSwift' 2.17.0. LiteRTSwift on CocoaPods is nightly-only and stopped in 2025-06. No LiteRT core Swift package. LiteRT-LM has one (import LiteRTLM, early preview). Web @tensorflow/tfjs-tflite@litertjs/core 2.5.3 (WebGPU, Wasm/XNNPack, WebNN). @litertjs/tfjs-interop bridges TF.js tensors. LLMs The MediaPipe LLM Inference page says it is “in maintenance-only mode. New features and optimizations will be focused on LiteRT-LM”. LiteRT-LM: com.google.ai.edge.litertlm:litertlm-android 0.16.1 (litertlm-jvm for desktop), .litertlm bundles, Kotlin / Python / C++ stable, Swift / JS early preview.

Which API should I use?

Situation Pick Why New Android app, GPU or NPU with one line CompiledModel in litert 2.x Accelerator is an option; no delegate wiring. Existing TensorFlow Lite app, minSdk < 23 litert 1.4.x (Interpreter) Same API surface, minSdk 21. App already on Play services keep play-services-tflite-* Officially unchanged. Detection / segmentation / audio with pre- and post-processing done for you MediaPipe Tasks Some MediaPipe models (Selfie Segmenter, for one) use MediaPipe-only ops such as Convolution2DTransposeBias; they do not load in plain LiteRT. On-device LLM LiteRT-LM MediaPipe LLM Inference is maintenance-only. PyTorch model to Android litert-torch.tfliteCompiledModel Direct torch.export path.

Quick start (Kotlin, LiteRT 2.x)

// build.gradle.kts — served from Google Maven, not Maven Central
dependencies { implementation("com.google.ai.edge.litert:litert:2.2.0") }
// keep the asset mmappable:  android { androidResources { noCompress += "tflite" } }

Enter fullscreen mode Exit fullscreen mode

import com.google.ai.edge.litert.Accelerator
import com.google.ai.edge.litert.CompiledModel

val model = CompiledModel.create(
    context.assets, "model.tflite",
    CompiledModel.Options(Accelerator.GPU),   // NPU with GPU fallback: Options(Accelerator.NPU, Accelerator.GPU)
    null)                                     // Environment; null = default
val inputs = model.createInputBuffers()
val outputs = model.createOutputBuffers()
inputs[0].writeFloat(inputArray)             // FloatArray in the layout you exported (NCHW from litert-torch)
model.run(inputs, outputs)                   // enqueues on the GPU
val logits = outputs[0].readFloat()          // the readback is what waits
// TensorBuffer and CompiledModel are AutoCloseable; close them or you leak native memory.

Enter fullscreen mode Exit fullscreen mode

Two rules that are easy to miss: with Accelerator.GPU, every op in the graph must be GPU-compatible (there is no CPU fallback inside CompiledModel), and GPU tensors are rank 4 at most.

Quick start (Python)

python3.12 -m venv .venv && . .venv/bin/activate   # ran on 3.12.13 and 3.14.6 on 2026-09-05
pip install ai-edge-litert litert-torch            # pulls torch, jax, transformers; ~2 GB; no TensorFlow

Enter fullscreen mode Exit fullscreen mode

import numpy as np, torch, litert_torch
from ai_edge_litert.interpreter import Interpreter

x = torch.randn(1, 3, 224, 224)
litert_torch.convert(model.eval(), (x,)).export("model.tflite")   # torch.export → .tflite, nothing in between

it = Interpreter(model_path="model.tflite"); it.allocate_tensors()
inp, out = it.get_input_details()[0], it.get_output_details()[0]
it.set_tensor(inp["index"], x.numpy()); it.invoke()
print(it.get_tensor(out["index"]))

# Same file through CompiledModel, the API Android uses (CPU here; GPU on macOS is Metal)
from ai_edge_litert.compiled_model import CompiledModel
from ai_edge_litert.hardware_accelerator import HardwareAccelerator
cm = CompiledModel.from_file("model.tflite", HardwareAccelerator.CPU)
ins, outs = cm.create_input_buffers(0), cm.create_output_buffers(0)
ins[0].write(x.numpy()); cm.run_by_index(0, ins, outs)
print(outs[0].read(10, np.float32))

Enter fullscreen mode Exit fullscreen mode

Run on 2026-09-05 with a conv + nn.MultiheadAttention model: conversion took 1–2 s, outputs were within 7e-7 of PyTorch, identical results on Python 3.12 and 3.14.

When to use LiteRT, and when not

Use it when you deploy .tflite models on Android with GPU or NPU, when you want a torch.export-based converter, or when you need a Google-maintained LLM runtime with NPU backends.

Do not pick it for an iOS-only app today. The iOS path is still the TensorFlow Lite pod, and Core ML, MLX and llama.cpp have more direct iOS routes. For arbitrary Hugging Face LLMs on a Mac, GGUF with llama.cpp or MLX needs no conversion step; LiteRT-LM needs a .litertlm bundle (Hugging Face litert-community has 343 models on 2026-09-05, many ungated, Qwen2.5-1.5B-Instruct among them).

Alternatives

ExecuTorch (PyTorch’s own runtime, torch.export.pte), ONNX Runtime Mobile (Maven AAR, NNAPI / XNNPACK / QNN providers), llama.cpp (GGUF, Metal / Vulkan / CPU), MLX (Apple Silicon). All four are reasonable defaults. This page is about what LiteRT calls things, not a ranking.

Things the docs do not tell you (gaps on 2026-09-05)

  • tflite-runtime on PyPI has no deprecation note and no pointer to ai-edge-litert. The microcontroller Python quickstart still says pip install tflite-runtime.
  • ai-edge-litert PyPI metadata is stale (classifiers 3.8–3.11, homepage tensorflow.org/lite). The wheels go to 3.14.
  • Android doc snippets pin litert:2.1.0 next to a table that lists 2.2.0 as latest.
  • “LiteRT Next” survives only in URL paths (/edge/litert/next/*). Blogs say LiteRT; the version-bearing statement is the GitHub v2.1.0 note (“beta… officially recommending that developers begin their transition”).
  • The Play services page and the Android index each call a different path “recommended”.
  • MediaPipe’s custom-op requirement is visible only in source (mediapipe/util/tflite/operations/) and issues.
  • No documented relationship between .task and .litertlm.

FAQ

Is TensorFlow Lite deprecated? Maintenance mode: “only receive critical security and stability updates. All active on-device ML development… transitioned to LiteRT” (tensorflow/lite README).

Do my .tflite files still work? Yes. Format and extension are unchanged.

Does LiteRT run on iOS? Through the TensorFlow Lite pod for now. LiteRT-LM has a Swift package in early preview.

Where are ready-made models? Hugging Face litert-community (343 models, .tflite and .litertlm) and Kaggle Models (the filter is still named tfLite).

Related

원문에서 계속 ↗