LFM2.5-cmf / README.md
infosave's picture
Upload README.md with huggingface_hub
a0d9bb6 verified
|
Raw
History Blame Contribute Delete
2.48 kB
---
license: other
base_model:
- LiquidAI/LFM2.5-230M
- LiquidAI/LFM2.5-2.6B
- LiquidAI/LFM2.5-8B-A1B
tags:
- cmf
- cortiq
- quantized
- lfm2
language:
- en
---
# LFM2.5 β†’ CMF β€” one file, one Rust binary, no Python
```bash
cargo install cortiq-cli
hf download infosave/LFM2.5-cmf lfm2.5-2.6b-q4tp.cmf --local-dir .
cortiq run lfm2.5-2.6b-q4tp.cmf --prompt "Explain what a Fourier transform does, in two sentences."
```
[LiquidAI's LFM2.5](https://huggingface.co/LiquidAI) is a hybrid: most layers
mix with a short gated convolution and only a few carry full attention, so the
state a token needs is small and constant where the convolution runs. These are
those checkpoints in the [CMF container](https://github.com/infosave2007/cmf) β€”
a single memory-mapped file read by `cortiq`, a Rust binary with no ML framework
under it. GPU via Vulkan/Metal/DX12 with a CPU fallback; NVIDIA, AMD, Intel and
Apple silicon read the same file.
| file | params | layers | size |
|---|---|---|---|
| `lfm2.5-230m-q4tp.cmf` | 0.23B | 14 (5 attention / 9 conv) | **132 MB** |
| `lfm2.5-2.6b-q4tp.cmf` | 2.70B | 30 (8 attention / 22 conv) | **1.43 GB** |
| `lfm2.5-8b-a1b-q4tp.cmf` | 8.3B total, 1B active | 24 (6 attention / 18 conv), 32 experts, 4 per token | **4.6 GB** |
All three are 4-bit tiled with ladder scales (`q4tp`), quantized straight from
the bf16 checkpoints.
## Speed
Steady-state decode, `cortiq bench --core`, single stream, cortiq **0.5.99+**
(the whole-token graph learned this family's short-conv mixer and its
sigmoid-routed MoE in 0.5.98/0.5.99 β€” earlier versions decode it an order
of magnitude slower).
| | A100 80GB (Vulkan) | Apple M4 |
|---|---|---|
| 230M | **390 tok/s** | 138 tok/s |
| 2.6B | **141 tok/s** | 42 tok/s (`CMF_GPU=0`) |
| 8B-A1B | **124 tok/s** | β€” |
On a discrete card the whole token runs as one submitted graph, conv ring
and expert routing included; the MoE's greedy output is token-identical to
the CPU path. On Apple silicon the engine measures both arms at startup and
picks; for the 2.6B the host arm wins there, and `CMF_GPU=0` pins it.
## Server and API
```bash
cortiq serve lfm2.5-2.6b-q4tp.cmf --port 8080
```
Speaks the OpenAI API, so anything that talks to OpenAI talks to it:
```bash
curl localhost:8080/v1/chat/completions -H 'content-type: application/json' \
-d '{"model":"lfm2.5","messages":[{"role":"user","content":"Say hello"}]}'
```
## Checksums
Each `.cmf` ships a `.sha256` beside it.