The following are the release notes for the LiteRT October release.
LiteRT Release Notes: Version 2.3.0
Summary
The LiteRT 2.3.0 release represents a leap in on-device AI efficiency, particularly for Large Language Models (LLMs) and cross-platform GPU/NPU utilization.
API and Platform updates
- Swift Package for iOS & macOS - New type-safe Swift APIs to run LiteRT models with hardware acceleration (developer guide).
- Support Library - Migrated from TensorFlow Lite Support to LiteRT Support (migration guide).
- Android - minSdk raised to 24; GPU (litert-gpu) and vendor-specific NPU libraries now ship as separate Maven packages (NPU sample).
Hardware acceleration
- Standalone Open Source LiteRT ML Drift GPU accelerator
- NPU Scaling - Samsung NPU (Exynos AI LiteCore) with LiteRT.
- Intel NPU/GPU - Weight sharing roughly halves AOT-compiled LLM size.
- MediaTek NPU - Support expanded to all Android S+ versions.
Performance and Memory optimizations
- FlashAttention on Metal - Up to 38% faster decode, up to 2.98x faster prefill, and >4 GB less peak RAM at 32K context.
- Fused LLM kernels - New QKV-RMSNorm-RoPE and SwiGLU GPU kernels for ~12% faster decode.
- GPU memory - Metal memory residency on iOS/macOS avoids swap paging; zero-copy mmap for the program cache lowers peak RAM.
Validation / Testing Infrastructure
- ATS - Coverage expanded to all core single ops and to macOS (Metal and WebGPU).
LiteRT-LM Release Notes: v0.18.0
- New Model Release (EmbeddingGemma 2): Shipped multimodal EmbeddingGemma 2 supporting text, vision, and audio embeddings with Matryoshka dimension truncation across Python, Kotlin, Swift, Web (JavaScript), and C++. Check out our DevSite documentation for more details!
- CLI & Developer Experience: Added fast model imports (
litert-lm import) and an OpenAI-compatible/v1/embeddingsendpoint (litert-lm serve) for multimodal embedding models. - Model Info API: Added
ModelInfoandlitert-lm describefor full model introspection—covering metadata, capabilities, and runtime requirements before loading. - NPU & GPU Acceleration: Enabled dynamic on-demand KV cache growth on NPU and attention mask pruning optimizations on GPU.
LiteRT-LM Release Notes: v0.18.1
- Fixed an ABI-incompatibility issue that prevented running EmbeddingGemma 2 when building LiteRT-LM from source.
LiteRT Quantizer Release Notes: v0.10.0
- Old Revision: v0.9.0 (Commit a4ae302)
- New Revision: v0.10.0 (Commit 7e6af26)
- Repository: google-ai-edge/ai-edge-quantizer
AI Edge Quantizer will be rebranded to LiteRT Quantizer and become a part of LiteRT GitHub repo in the next release.
Quantization Algorithms & Recipes
- New experimental OSCAR algorithm (AlgorithmName.OSCAR) for FULLY_CONNECTED. It combines activation-aware per-channel activation scaling with optimal weight clipping.
- Simpler recipe validation. weight_tensor_config is no longer required for ops without weights (e.g. model INPUT/OUTPUT), so you don't need a dummy weight config anymore.
Tooling & Model Formats
- uint8 model inputs/outputs. The new TensorDataType.UINT lets recipes set uint8 for model INPUT/OUTPUT tensors, which some hardware accelerators require.
Documentation
- README rewrite. It now covers key features, the CLI, the end-to-end workflow, recommended recipes, and calibration modes/APIs.
- Corrected operator support table, now split into ops with weights and activation-only ops, removed unsupported configs.
LiteRT Torch Release Notes: v0.10.0
🔹 Vision & Generative Pipelines
- Added Gemma 4 Audio Encoder export and
.litertlmpackaging support (--task=multimodal_lm), bundling vision and text components. - Added support for heterogeneous per-layer KV cache dimensions (
per_layer_configwith differinghead_dimandnum_key_value_headsacross sliding and full attention layers, such as in Gemma 4 12B). - Speech & Audio Models (Qwen3-TTS & Qwen3-ASR):
- Added Qwen3-TTS text-to-speech model export support (
--task=text_to_speech) inexport_hf. - Added
.litertlmbundle packaging support for Qwen3-ASR automatic speech recognition models (--task=automatic_speech_recognition --bundle_litert_lm=True).
- Added Qwen3-TTS text-to-speech model export support (
- Added automatic
pad_tokenmetadata population from the tokenizer, plus model-type mappings and MiniJinja chat template normalization
🔹 NPU & Acceleration Passes
- Export_hf Added
--cache_lengthsflag to export multiple static KV cache length signatures into a single model, and updated per-layer embedder export to generate signatures for all configuredprefill_lengths.
🔹 Converter Legalizations & Dialects
- 4D Attention View Rank Folding
- Added an algebraic FX pass that folds
unsqueeze -> permute -> squeezeview chains (such as intorch.nn.MultiheadAttentionQKV unpacking) into a singlepermute, keeping intermediate tensors within the rank-4 limit of the ML Drift GPU delegate.
- Added an algebraic FX pass that folds
- Added support for
nn.Conv2dwithpadding_mode='reflect'andpadding_mode='replicate', loweringaten.reflection_pad2dandaten.replication_pad2dto TFLiteMIRROR_PADcomposites across both NCHW and NHWC layout-optimized paths instead ofGATHER_NDsubgraphs. - Promoted rank-3 1D convolutions to rank-4 2D convolutions in pre-conversion FX decompositions so NHWC layout optimization preserves
CONV_2Dbias fusion - Lowered contiguous static
aten.as_stridedviews toravel -> slice -> reshapeinstead ofGATHER_ND, and folded batch dimensions of rank >= 3 non-contiguousaten.linearinputs into 2D matmuls (addmm/mm) to avoid rank-5/6BROADCAST_TO+BATCH_MATMULsubgraphs.
🔹 Core Bug Fixes
- Fixed
runtime_fold()to retain the folded MLIR module, preserve op order when pairing folded constant arrays to prevent silent buffer mispairing, and fold dequantized constant weight expressions (fold_dequantize=True). - Fixed
_promote_types_for_binary_opintorch_tfldecompositions to usetorch.result_type, preventing Python float scalars from being truncated to integer tensor dtypes (e.g.,int_tensor * 0.5becomingint_tensor * 0).