--- license: other license_name: lfm1.0 license_link: https://huggingface.co/LiquidAI/LFM2.5-VL-1.6B/blob/main/LICENSE pipeline_tag: image-text-to-text tags: - liquid - lfm2 - lfm2-vl - edge - lfm2.5-vl - lfm2.5 library_name: executorch --- # lfm-2.5 This repository hosts the **lfm-2.5** models exported for the [React Native ExecuTorch](https://www.npmjs.com/package/react-native-executorch) library as ExecuTorch `.pte` programs, ready to run on device. ## Variants | Path | Backend | Precision | Context length | | --- | --- | --- | --- | | `2_6b/mlx/lfm_2_5_2_6b_mlx_int4.pte` | mlx | int4 | 8,192 | | `2_6b/xnnpack/lfm_2_5_2_6b_xnnpack_8da4w.pte` | xnnpack | 8da4w | 8,192 | | `2_6b/vulkan/lfm_2_5_2_6b_vulkan_8da4w.pte` | vulkan | 8da4w | 8,192 | | `1_2b/mlx/lfm_2_5_1_2b_mlx_int4.pte` | mlx | int4 | 16,384 | | `1_2b/xnnpack/lfm_2_5_1_2b_xnnpack_8da4w.pte` | xnnpack | 8da4w | 16,384 | | `350m/mlx/lfm_2_5_350m_mlx_int4.pte` | mlx | int4 | 16,384 | | `350m/xnnpack/lfm_2_5_350m_xnnpack_8da4w.pte` | xnnpack | 8da4w | 16,384 | | `vl_1_6b/mlx/lfm_2_5_vl_1_6b_mlx_int4.pte` | mlx | int4 | 2,048 | | `vl_1_6b/mlx/lfm_2_5_vl_1_6b_mlx_int8.pte` | mlx | int8 | 2,048 | | `vl_1_6b/vulkan/lfm_2_5_vl_1_6b_vulkan_8da4w.pte` | vulkan | 8da4w | 2,048 | | `vl_1_6b/xnnpack/lfm_2_5_vl_1_6b_xnnpack_8da4w.pte` | xnnpack | 8da4w | 2,048 | | `vl_450m/mlx/lfm_2_5_vl_450m_mlx_int4.pte` | mlx | int4 | 2,048 | | `vl_450m/vulkan/lfm_2_5_vl_450m_vulkan_8da4w.pte` | vulkan | 8da4w | 2,048 | | `vl_450m/xnnpack/lfm_2_5_vl_450m_xnnpack_8da4w.pte` | xnnpack | 8da4w | 2,048 | ## Repository structure ``` 1_2b/mlx/config.json 1.2 KiB 1_2b/mlx/lfm_2_5_1_2b_mlx_int4.pte 849 MiB 1_2b/tokenizer.json 4.5 MiB 1_2b/tokenizer_config.json 92.4 KiB 1_2b/xnnpack/config.json 1.2 KiB 1_2b/xnnpack/lfm_2_5_1_2b_xnnpack_8da4w.pte 773 MiB 350m/mlx/config.json 1.2 KiB 350m/mlx/lfm_2_5_350m_mlx_int4.pte 308 MiB 350m/tokenizer.json 4.5 MiB 350m/tokenizer_config.json 2.9 KiB 350m/xnnpack/config.json 1.2 KiB 350m/xnnpack/lfm_2_5_350m_xnnpack_8da4w.pte 279 MiB config.json 29 B vl_1_6b/mlx/config.json 1.7 KiB vl_1_6b/mlx/lfm_2_5_vl_1_6b_mlx_int4.pte 2.2 GiB vl_1_6b/mlx/lfm_2_5_vl_1_6b_mlx_int8.pte 2.8 GiB vl_1_6b/tokenizer.json 4.5 MiB vl_1_6b/tokenizer_config.json 3.2 KiB vl_1_6b/vulkan/config.json 2.1 KiB vl_1_6b/vulkan/lfm_2_5_vl_1_6b_vulkan_8da4w.pte 2.3 GiB vl_1_6b/xnnpack/config.json 2.1 KiB vl_1_6b/xnnpack/lfm_2_5_vl_1_6b_xnnpack_8da4w.pte 2.3 GiB vl_450m/mlx/config.json 1.0 KiB vl_450m/mlx/lfm_2_5_vl_450m_mlx_int4.pte 555 MiB vl_450m/tokenizer.json 4.5 MiB vl_450m/tokenizer_config.json 3.2 KiB vl_450m/vulkan/config.json 2.1 KiB vl_450m/vulkan/lfm_2_5_vl_450m_vulkan_8da4w.pte 594 MiB vl_450m/xnnpack/config.json 2.1 KiB vl_450m/xnnpack/lfm_2_5_vl_450m_xnnpack_8da4w.pte 619 MiB ``` ## LFM2.5 2.6B chat model `2_6b/` contains the instruction-tuned [LiquidAI/LFM2.5-2.6B](https://huggingface.co/LiquidAI/LFM2.5-2.6B) checkpoint, exported for chat assistants with an 8,192-token context and 128-token prefill chunks. Its chat template strips thinking from every assistant message when rendering history, matching Qwen3 and keeping incremental KV-cache prompts monotonic. Generation still starts with ``. `tokenizer_config.json` contains the corrected template. Both XNNPACK and MLX artifacts were executed on a physical Apple Silicon Mac, including generation and the maximum prefill chunk size. See `2_6b/validation.json` for smoke-test results and `2_6b/export_manifest.json` for checkpoint provenance and SHA-256 hashes. The MLX artifact requires the React Native ExecuTorch MLX runtime from the software-mansion-labs ExecuTorch fork. The embedding lookup uses a portable int4 kernel; the decoder runs in one MLX partition. The 8K exports were checked with 8,000-token prompts and generation beyond position 4096. Vulkan was tested on a Samsung Galaxy S20+ (Exynos 990, Mali-G77) using the Android libraries shipped by React Native ExecuTorch. It delegates the entire forward graph, including quantized embeddings and mutable caches, to one Vulkan partition. The current fp16 layout requires `maxImageDimension3D >= 16384`; the tested Mali-G77 supports that limit. Native tool calls and tool-result follow-up generation were also tested on that device. XNNPACK remains the Android default because it was faster on this phone. These are smoke tests, not a long-context quality benchmark; see the validation metadata for timings. ## Compatibility These files are published for the **ExecuTorch v1.4.1** runtime. ExecuTorch gives no forward compatibility guarantee, so an older runtime may fail to load them. To use them in React Native ExecuTorch, pass the model constant shipped in the library's model registry to the corresponding task pipeline. See the [documentation](https://docs.swmansion.com/react-native-executorch/docs/fundamentals/downloading-models). To load these files in your own ExecuTorch runtime, read the [compatibility note](https://github.com/pytorch/executorch/blob/main/runtime/COMPATIBILITY.md) first.