LFM2.5-1.2B-Instruct β Core AI (.aimodel)
LiquidAI/LFM2.5-1.2B-Instruct converted to Core AI .aimodel bundles for Apple silicon
by visible-cx. These are derivative artifacts: Liquid
AI's weights re-expressed as a Core AI graph with int8 block-32 symmetric weight
quantization and a two-entrypoint (decode + chunked-prefill) function map. They load
through Core AI on macOS and are not usable by PyTorch, GGUF or MLX.
Provenance
| Base checkpoint | LiquidAI/LFM2.5-1.2B-Instruct |
| Recipe | export_lfm2_multifunction.py int8hu --head-sym --chunk 64 |
| Toolchain base | apple/coreai-models @ b1cb71b8522d99408059fa0b98b8742171bcb0b8 + the coreai-model-zoo python overlay |
| Toolchain | coreai-torch 0.4.1, coreai-core 1.0.0b2, coreai-opt 0.2.1, torch 2.9.0 |
| Producer fingerprint | coreai-core 1.0.0b2 on every inner <name>.aimodel/metadata.json |
| Weight format | int8, per-K-block-32, symmetric; symmetric head (--head-sym) |
| Vocab | 65,536 |
| Export functions | main (S=1 decode) + prefill (S=64 chunked prefill), function_map: {"main": ["main", "prefill"]}, weights shared |
mf64 in the bundle name means multifunction with a 64-wide prefill.
This model is not a thinking model and needs no chat-template adjustment β its template
ends at <|im_start|>assistant\n.
Contents
| Path | Bytes | Manifest context | Functions |
|---|---|---|---|
gpu-pipelined/lfm2_5_1_2b_instruct_decode_int8hu_block32_sym_mf64 |
1,702,039,167 | 4096 | main + prefill |
ctx8192/gpu-pipelined/lfm2_5_1_2b_instruct_decode_int8hu_block32_sym_mf64 |
1,702,039,171 | 8192 | main + prefill |
ctx16384/gpu-pipelined/lfm2_5_1_2b_instruct_decode_int8hu_block32_sym_mf64 |
1,702,039,167 | 16384 | main + prefill |
Each folder holds <name>.aimodel/ (main.mlirb β 1.70 GB, main.hash, asset
metadata.json), a bundle-level metadata.json, and tokenizer/ (tokenizer.json,
tokenizer_config.json, special_tokens_map.json, chat_template.jinja).
The three folders hold the same weights and the same graph β identical function
signatures, identical state descriptors, identical export peak RSS at 4096/8192/16384.
--max-ctx sets one manifest integer, language.max_context_length, and nothing else. The
folders exist so each declared window is a clean, fingerprinted artifact rather than a
hand-edited manifest.
Stop token: eos_token = "<|im_end|>" in all three folders. Clean self-stop on every
measured sample.
Requirements
- Apple silicon Mac, Core AI runtime.
- Engine contract: 2 inputs (
input_ids,position_ids) β logits. No static inputs, no per-step mask. Runs on the pipelined engine and on the sequential engine, which is the only logits-capable one and therefore the only path for grammar-constrained decoding. - States:
keyCache/valueCacheFloat16, 6 Γ 1 Γ 8 Γ ? Γ 64plusconvState Float16, 10 Γ 1 Γ 2048 Γ 2. Dynamic sequence dim βGrowingKVCache(initial 256, doubling), not a static allocation at the manifest maximum.convStatedoes not scale with context. - KV cost: 12,288 bytes per token (fp16) β 50 MB at 4096, 101 MB at 8192, 201 MB at
- Memory envelope, 16 GB Mac (Metal working set β 10.7 GB): weights 1.70 GB resident; KV is nowhere near binding at any context this bundle declares. Measured max RSS 3.42 GB on guided decoding and 3.46 GB at 15k context; peak in-process footprint 0.14 GB and 0.32 GB respectively. Minimum practical machine memory: 8 GB.
- The bundle manifest declares
runtime_env COREAI_CHUNK_THRESHOLD=1.
Performance
Measured on a 16 GB Apple silicon Mac (M2 Pro, macOS 27 beta): 10-sample harness,
guided JSON-constrained decoding against a fixed schema, greedy, sequential engine,
reset() between samples, 128-token cap. Load excluded from s/row; sample 1 excluded as
a cache-warm outlier.
| Cold load | 5.4 s |
| Guided JSON parse | 10/10 |
| Enum-clean | 10/10 |
| s/row (long samples) | 1.89 |
| s/row (short samples) | 1.37 |
| Decode | 71.5β74.7 tok/s |
| TTFT | 0.37β1.60 s |
| Peak footprint | 0.14 GB |
| Max RSS | 3.42 GB |
Output-identical to a stored reference baseline. All ten guided outputs diff clean
against it β every character of every field, in order. That equality is behavioural and
exact; it does not mean byte-identical weights, since .aimodel conversion is not
byte-deterministic.
Long context
Needle-in-haystack: 3/3 verbatim at both 8k and 15k. Three distinctive facts planted at 10% / 50% / 90% of the filler, strict scoring (a fact counts only if the distinctive entity comes back correct). All three returned at 8,099 tokens and all three at 15,106 tokens, verbatim, including the date.
| probe | prompt tokens | TTFT | decode | wall | peak footprint |
|---|---|---|---|---|---|
| needle 8k | 8,099 | 6.98 s | 64.5 tok/s | 8.3 s | 0.21 GB |
| needle 15k | 15,106 | 12.79 s | 59.7 tok/s | 14.4 s | 0.32 GB |
Free-form generation from a fixed prompt at three depths, 900-token cap (the model self-stopped inside it every time):
| depth | prompt tokens | TTFT | decode | generated | wall | peak footprint |
|---|---|---|---|---|---|---|
| 3.4k | 3,371 | 3.22 s | 71.0 tok/s | 361 | 8.5 s | 0.16 GB |
| 8k | 7,953 | 6.69 s | 63.1 tok/s | 683 | 17.7 s | 0.30 GB |
| 12k | 12,099 | 9.97 s | 59.4 tok/s | 514 | 19.1 s | 0.29 GB |
Decode barely moves with depth: 71.0 β 63.1 β 59.4 tok/s across a 3.6Γ context increase. High context costs prefill time and almost nothing else. TTFT scales cleanly and peak in-process footprint stays under a third of a gigabyte at every depth measured.
Status
| Artifact | Status |
|---|---|
gpu-pipelined/β¦_mf64 (ctx 4096) |
SHIP β measured, and output-identical to the stored reference baseline. |
ctx8192/β¦_mf64 |
QUALIFIED AT DEPTH β same weights and graph; measured: 3/3 verbatim needle recall at 8,099 tokens, 63.1 tok/s at 8k, 0.30 GB peak footprint. |
ctx16384/β¦_mf64 |
QUALIFIED AT DEPTH β 3/3 verbatim needle recall at 15,106 tokens, 59.7 tok/s, 0.32 GB peak footprint, 3.46 GB max RSS. |
No PyTorch-reference oracle or PSNR gate has been run. Qualification is behavioural: an exact diff against a stored baseline, plus the depth probes above.
License
LiquidAI/LFM2.5-1.2B-Instruct is released under the LFM Open License v1.0
(lfm1.0). These bundles are a derivative and the same licence travels with them β see the
upstream licence.
Redistribute the licence with the files and comply with its terms. The contribution here is
the conversion and the qualification evidence, not the weights.
Model tree for visible-cx/LFM2.5-1.2B-CoreAI
Base model
LiquidAI/LFM2.5-1.2B-Base