Views
No views yet

FORMAT GGUF · 6 quants | SIZE 1.367–2.875 GB | ARCH lfm2 hybrid · 2.6B | CONTEXT 131,072 |
IMATRIX 16-lang · 1.04 MB | FIDELITY KLD vs F16 | RUNS ON CPU / Metal / CUDA | LICENSE LFM Open v1.0 |
The model, the architecture and the training are Liquid AI's work (LiquidAI/LFM2.5-2.6B). This repo contributes the quant ladder, the fidelity measurements and the packaging. No weights were retrained, pruned, merged or otherwise altered — 266 tensors in, 266 out.
| Use case | File | Why |
|---|---|---|
| Safe default | LFM2.5-2.6B-Q4_K_M.gguf | 1.674 GB, KLD 0.111, keeps 57/60 on the capability probe (F16 itself scores 59/60). |
| Tightest RAM | LFM2.5-2.6B-Q3_K_M.gguf | 1.367 GB. Cheapest to run; highest measured drift. |
| Best compact I-quant | LFM2.5-2.6B-IQ4_XS.gguf | 1.518 GB — 156 MB under Q4_K_M, fastest generation here. |
| Closest to the original | LFM2.5-2.6B-Q6_K.gguf | KLD 0.0108, Top-1 95.1% — near-lossless at 2.222 GB. |
| Archival / reference-grade | LFM2.5-2.6B-Q8_0.gguf | KLD 0.0013. Practically indistinguishable from F16. |
| Quant | Bits/weight | File size | Notes |
|---|---|---|---|
LFM2.5-2.6B-Q3_K_M.gguf | ~4.0 | 1.367 GB (1.273 GiB) | Smallest included. Real quality cost — see the KLD column. |
LFM2.5-2.6B-IQ4_XS.gguf | ~4.5 | 1.518 GB (1.414 GiB) | Compact I-quant (needs the imatrix, which ships here). |
LFM2.5-2.6B-Q4_K_M.gguf | ~4.9 | 1.674 GB (1.559 GiB) | Standard K-quant. The one most people should start with. |
LFM2.5-2.6B-Q5_K_M.gguf | ~5.7 | 1.94 GB (1.807 GiB) | Noticeably closer to F16 for +0.27 GB over Q4_K_M. |
LFM2.5-2.6B-Q6_K.gguf | ~6.6 | 2.222 GB (2.069 GiB) | Near-lossless: KLD 0.011, Top-1 95%. |
LFM2.5-2.6B-Q8_0.gguf | 8.5 | 2.875 GB (2.677 GiB) | Effectively the reference: KLD 0.0013, Top-1 98.2%. |
Q*_K) are the general-purpose quants. I-quants (IQ*) pack more quality
into fewer bytes but need an importance matrix — LFM2.5-2.6B.imatrix ships here so you can
re-roll any tier yourself. More bits = closer to the original = bigger.| Model | Size GB | Prompt tok/s | Gen tok/s | PPL | PPL Δ | KLD mean | KLD p95 | RMS Δp | Top-1 match vs F16 |
|---|---|---|---|---|---|---|---|---|---|
| F16 reference | 5.403 | 1942 | 34.8 | 45.974 | +0.000 | 0.000000 | 0.00002 | 0.001% | 99.99% (8332/8333) |
Q8_0 | 2.875 | 1731 | 49.6 | 45.676 | -0.298 | 0.001348 | 0.00396 | 0.837% | 98.23% (7991/8135) |
Q6_K | 2.222 | 1616 | 60.0 | 45.396 | -0.579 | 0.010835 | 0.03476 | 2.342% | 95.07% (7731/8132) |
Q5_K_M | 1.94 | 1538 | 84.3 | 43.768 | -2.206 | 0.031740 | 0.10468 | 3.951% | 91.41% (7471/8173) |
Q4_K_M | 1.674 | 1700 | 96.2 | 40.096 | -5.878 | 0.110869 | 0.39431 | 7.440% | 84.36% (6887/8164) |
IQ4_XS | 1.518 | 1739 | 101.0 | 47.081 | +1.107 | 0.143438 | 0.50511 | 8.667% | 81.81% (6677/8161) |
Q3_K_M | 1.367 | 1552 | 87.7 | 41.069 | -4.906 | 0.316972 | 1.11038 | 12.515% | 74.73% (6100/8163) |
llama-perplexity --kl-divergence against LFM2.5-2.6B-F16.gguf over
~8.2K tokens of wikitext-2 test (ctx 512, 32 chunks; exact per-quant counts in the CSV);
PPL over ctx 2048 × 64 chunks; throughput from llama-bench
(pp512 / tg128, Metal). The F16 row is the control — F16 scored against its own logits.
It comes back at KLD 0.000000 and Top-1 99.99%, which is the measurement noise floor, not a
result. Raw per-quant JSON in reports/, machine-readable summary in
metrics/quant-summary-with-kld.json + .csv.




--cache-type-k q8_0 --cache-type-v q8_0.| You have | Comfortable quant | Context |
|---|---|---|
| 3 GB | Q3_K_M / IQ4_XS | 8K–32K |
| 4 GB | Q4_K_M | 32K–64K |
| 6 GB | Q5_K_M / Q6_K | 128K (full native) |
| 8 GB+ | Q8_0 | 128K (full native), room to spare |
modelfiles/; the full guide is in CONTEXT.md.1# Ollama
2ollama run hf.co/KikoCis/LFM2.5-2.6B-GGUF:Q4_K_M
3
4# llama.cpp — --jinja is important: it uses the chat template embedded in the GGUF,
5# which is what gives you the reasoning channel and the tool-call syntax
6llama-server -m LFM2.5-2.6B-Q4_K_M.gguf -c 32768 --jinja
7
8# full 128K window with a quantized KV-cache
9llama-server -m LFM2.5-2.6B-Q4_K_M.gguf -c 131072 --jinja \
10 --cache-type-k q8_0 --cache-type-v q8_0temperature 0.1, top_k 50, repetition_penalty 1.1.<|tool_call_start|> and
<|tool_call_end|>, e.g. <|tool_call_start|>[get_weather(city="Barcelona")]<|tool_call_end|>.
Good news for agent frameworks: recent llama.cpp parses that into standard
tool_calls, so with llama-server --jinja you can just send the ordinary OpenAI-style
tools parameter — measured 6/6 at both Q8_0 and Q4_K_M, no adapter and no text-injection
workaround (see Agent-harness compatibility below). Passing the tool list as JSON in the
system prompt (List of tools: [...]), the format Liquid AI
document, works equally well.<think>
channel. Budget your max_tokens accordingly: see the finding below.max_tokens=900 the lower quants sometimes spend the entire
budget inside the <think> channel and return an empty final answer. At max_tokens=2600
the same prompts answer correctly. If you get blank replies, raise the token budget before
blaming the quant.Q3_K_M is not automatically the fastest.LFM2.5-2.6B-F16.gguf, the unquantized f16 conversion of the upstream
bf16 weights. Every quant in the ladder is cut from that same file.llama-perplexity --kl-divergence over ~8.2K tokens
of wikitext-2 test, ctx 512, 32 chunks.llama-perplexity over wikitext-2 test, ctx 2048, 64 chunks.llama-bench -p 512 -n 128 -r 3, Metal backend.edge-probe-v1 (60 items, no LLM judge)edge_probe.json;
per-item results: reports/edge-probe-*.json.<|tool_call_start|> block.langdetect for Latin
ones). Scored at max_tokens=2600 so the number measures language fidelity and not the
reasoning-budget effect described above.| Quant | Tool calls | Instruction following | Multilingual (16 langs) | Total |
|---|---|---|---|---|
| F16 reference | 23/24 | 20/20 | 16/16 | 59/60 (98%) |
Q8_0 | 23/24 | 19/20 | 16/16 | 58/60 (97%) |
Q6_K | 22/24 | 20/20 | 16/16 | 58/60 (97%) |
Q5_K_M | 23/24 | 20/20 | 16/16 | 59/60 (98%) |
Q4_K_M | 22/24 | 19/20 | 16/16 | 57/60 (95%) |
IQ4_XS | 22/24 | 20/20 | 16/16 | 58/60 (97%) |
Q3_K_M | 22/24 | 19/20 | 16/16 | 57/60 (95%) |
llama-server --jinja. Date: 2026-08-06.tools parameter (which is what agent frameworks
send) and tools-as-JSON-in-the-system-prompt (the format Liquid AI document).| Quant | Returned structured tool_calls | Correct function | Correct via system-prompt format |
|---|---|---|---|
Q8_0 | 6/6 | 6/6 | 6/6 |
Q4_K_M | 6/6 | 6/6 | 6/6 |
llama-server --jinja. llama.cpp parses LFM2.5's Pythonic
<|tool_call_start|> output into standard tool_calls, so the model is drop-in for
OpenAI-compatible agent harnesses — no adapter, no text-injection workaround. Detail in
reports/agent-harness-check.json.| Instance | Resolved | Tool calls issued | Agent minutes |
|---|---|---|---|
django__django-11133 | no | 20 | 10.2 |
django__django-11099 | no | 4 | 1.7 |
django__django-13590 | no | 23 | 1.6 |
django__django-13933 | no | 32 | 20.6 |
django__django-14608 | no | 14 | 8.1 |
django__django-14752 | no | 2 | 0.7 |
swe-mix probe), run through terminal-bench with a Claude-Code-style harness. Quant tested: Q8_0 — deliberately the highest-fidelity tier, so a failure cannot be blamed on quantization. temp 0.1, ctx 32K, 60-turn cap.reports/swe-prescreen.json. Small, hard probe; NOT comparable to the official SWE-bench leaderboard.| What | Where |
|---|---|
| Corpus builder for the imatrix | scripts/00_build_imatrix_corpus.py |
| Download → F16 → imatrix | scripts/01_convert_and_imatrix.sh |
| The quant ladder (+ magic check on every file) | scripts/02_quantize_ladder.sh |
| KLD / PPL / Top-1 / throughput sweep | scripts/03_quality_sweep.py |
| Charts | scripts/04_charts.py |
| Capability probe | scripts/05_edge_probe.py, scripts/06_multilingual_budget.py |
| Agent-harness compatibility check | scripts/08_agent_harness_check.py |
| This card (generated from the metrics, not typed) | scripts/07_make_card.py |
| Importance matrix | LFM2.5-2.6B.imatrix |
| The exact calibration text | imatrix-calibration-corpus.txt |
| Serving / sampling profiles | configs/ |
| SHA-256 of every artifact | reports/artifact-sha256sums.txt |
LiquidAI/LFM2.5-2.6B, downloaded 2026-08-05. Conversion with
llama.cpp/convert_hf_to_gguf.py (arch Lfm2ForCausalLM → lfm2), then
llama-quantize --imatrix. Every output was verified with llama-gguf <file> r:
266 tensors, GGUF v3, valid magic on all six.<|tool_call_start|> blocks. The
wikitext test split was deliberately kept out of the calibration — it is the PPL eval
set. Computed over 512 chunks at ctx 512, no NaNs.shasum -a 256 -c reports/artifact-sha256sums.txt.LICENSE and the modifications made here are itemised in
NOTICE, as the licence requires.⚠️ Commercial-use limit (LFM Open License v1.0, §5). Commercial use is permitted only for legal entities with annual revenue below 10,000,000 USD. At or above that threshold you need a separate commercial licence from Liquid AI. This applies to these quantized files exactly as it applies to the original weights. Non-commercial and research use is not subject to the threshold. This note is a pointer, not legal advice — readLICENSE.
edge-probe-v1 on every tier, Modelfiles, checksums.