LFM2.5-ExecuTorch / README.md
bhanc's picture
Add tested LFM2.5 2.6B Vulkan export and extend mobile context to 8K
5987826 verified
|
Raw History Blame Contribute Delete
5.62 kB
---
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 `<think>`. `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.