Model datasheet · K2-Horizon
K2-Horizon 7B
Does not run in stock llama.cpp, Ollama or LM Studio yet: support is an open pull request (llama.cpp #29535), so the GGUFs need IFM's own fork; the MLX build runs in stock mlx-lm with --trust-remote-code. IFM's own table is remarkable for the size (SWE-bench Verified 72.4, AIME 2026 90.2) and unconfirmed by anyone else. Named for its 7B backbone; with its two 1B embedding tables the file holds 9.0B parameters. It also caches heavily, about 18GB at 128K, and loses more to plain 4-bit than most models.
- Vendor
- IFM (MBZUAI)
- Architecture
- Dense · 9B
- Context
- 524,288 tokens
- License
- Apache-2.0
- Released
- 2026-09-01
- Vision
- No
→ GGUF (llama.cpp / LM Studio / Ollama) → MLX (Apple Silicon)
Architecture, from its own config.json
36 layers · 36 full attention
32 attention heads over 8 KV heads (GQA 4:1), head dim 128 · dense feed-forward · vocabulary 250,624
Where the memory goes: weights by band above, plus a KV cache of 1.1GB at 8K · 4.5GB at 32K · 18GB at 128K, plus the runtime's own working memory — dominated by the output projection over that vocabulary.
Inside one layer, from its own tensors
36 × full-attention layer
The green line down the right of each half is the residual: it leaves the spine above the norm, skips the operation entirely and rejoins at the +. Where attention is drawn open, q, k and v are scaled to their real output widths — a model that shares key and value heads across many query heads shows one wide box beside two narrow ones.
Around the stack: an embedding of 250,624 × 4,096, a final norm, and a separate output projection.
On the norm names: despite what it is called, post_attention_layernorm is drawn after the residual add here, which is where this family applies it — it normalises the input to the feed-forward, not the output of attention. Models that carry a separate pre_feedforward_layernorm use it the other way, and are drawn that way.
§1 Characteristics by quantization band
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q3_K_M · aggregated · 2026-10-04
Editorial derivation: four points down from bf16. Only community 3-bit files exist (NANI-Nithin), unmeasured, on a model already shown to be unusually sensitive at 4-bit.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q3_K_M · aggregated · 2026-10-04
Editorial derivation: four points down from bf16, for the same reason.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q3_K_M · aggregated · 2026-10-04
Editorial derivation: three points down from bf16.
Q4–Q5 — 4–5 bit
5.6GB weights · e.g. Q4_K_M , mlx-4bit + KV: 1.1GB at 8K · 4.5GB at 32K · 18GB at 128Kdata checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q4_K_M · aggregated · 2026-10-04
Editorial derivation: two points down rather than the usual one. mlx-community measured plain 4-bit at +18.6% WikiText-2 perplexity on this model, and 18-22% on all three dense K2-Horizon sizes, against +4.5% on the MoVA mixture; their mixed recipe still loses 4.5%. IFM's Q4_K_M has not been measured.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q4_K_M · aggregated · 2026-10-04
Editorial derivation: two points down, for the same perplexity evidence.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q4_K_M · aggregated · 2026-10-04
Editorial derivation: one point down.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q4_K_M · aggregated · 2026-10-04
Editorial derivation: carried; format compliance survives 4-bit better than arithmetic does.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q6_K · aggregated · 2026-10-04
Editorial derivation: carried; mlx-community measured 8-bit at +0.2% WikiText-2 perplexity against bf16.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q6_K · aggregated · 2026-10-04
Editorial derivation: carried from the full band.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q6_K · aggregated · 2026-10-04
Editorial derivation: carried from the full band.
data checked Oct 2026
- quant-degradation-community — editorial band derivation @ Q6_K · aggregated · 2026-10-04
Editorial derivation: carried from the full band.
FP16 — full precision (fp16/bf16)
18GB weights · e.g. bf16 + KV: 1.1GB at 8K · 4.5GB at 32K · 18GB at 128Kdata checked Oct 2026
- vendor-model-card — AIME 2026 = 90.2 @ bf16 · vendor-reported · 2026-10-04
From the card's anti-doom-loop table, "after" column, which IFM says is the released checkpoint. High reasoning effort, very large output budgets (500K tokens for AIME, IFEval, IFBench and LiveCodeBench). HMMT Feb 2026 77.8 and GPQA Diamond 75.6 in the same column.
data checked Oct 2026
- vendor-model-card — LiveCodeBench v6 = 72.7 @ bf16 · vendor-reported · 2026-10-04
From the card's anti-doom-loop table, "after" column, which IFM says is the released checkpoint. High reasoning effort, very large output budgets (500K tokens for AIME, IFEval, IFBench and LiveCodeBench).
- vendor-model-card — SWE-bench Verified = 72.4 @ bf16 · vendor-reported · 2026-10-04
From the card's anti-doom-loop table, "after" column, which IFM says is the released checkpoint. High reasoning effort, very large output budgets (500K tokens for AIME, IFEval, IFBench and LiveCodeBench). mini-swe-agent at 256K context. The headline table at the top of the same card says 70.6, and Terminal-Bench 39.1 against 44.6 here; the two tables appear to come from different checkpoints. Absent from the Aider polyglot leaderboard as of 2026-10-04.
data checked Oct 2026
- vendor-model-card — BFCL v4 = 67 @ bf16 · vendor-reported · 2026-10-04
From the card's anti-doom-loop table, "after" column, which IFM says is the released checkpoint. High reasoning effort, very large output budgets (500K tokens for AIME, IFEval, IFBench and LiveCodeBench). Run at temperature 0.01. tau3-Banking is in the Artificial Analysis-category table and is not recorded.
data checked Oct 2026
- vendor-model-card — IFEval (loose) = 86.9 @ bf16 · vendor-reported · 2026-10-04
From the card's anti-doom-loop table, "after" column, which IFM says is the released checkpoint. High reasoning effort, very large output budgets (500K tokens for AIME, IFEval, IFBench and LiveCodeBench).
- vendor-model-card — IFBench (loose) = 50.7 @ bf16 · vendor-reported · 2026-10-04
From the card's anti-doom-loop table, "after" column, which IFM says is the released checkpoint. High reasoning effort, very large output budgets (500K tokens for AIME, IFEval, IFBench and LiveCodeBench). Well below Qwen3.5 9B's vendor 64.5 on the same benchmark; the weakest row on the card.
§2 Known issues & what fixes them
Does not run in stock llama.cpp, Ollama or LM Studio yet. Support is an open pull request (llama.cpp #29535, opened 2026-09-27 and flagged by the project's PR checker as too large to review as-is), so a stock build refuses the GGUF with "does not recognise this GGUF's model architecture". IFM's fork works, but early builds of it also failed to load on Windows over a tokenizer regex. On a Mac, the mlx-community build does run in stock mlx-lm via --trust-remote-code, though mlx_lm.server does not yet parse its thinking tags or tool calls.
Build IFM's llama.cpp fork (branch model/K2Horizon) from source, or on a Mac use the mlx-community build with --trust-remote-code. Once #29535 merges, an ordinary update fixes this.
If you need it in Ollama or LM Studio today, or need parsed tool calls on the MLX path, there is no fix yet.
Evidence · 4 sources · community-consensus
- llama.cpp PR #29535: model : add K2 Horizon dense and MoVA support (open) (github, 2026-10-04)
- Users report "does not recognise this GGUF's model architecture (k2-horizon)"; IFM points to its fork (vendor, 2026-10-04)
- How to run this in llama.cpp: pre-tokenizer regex failure on load, fork and workaround (vendor, 2026-10-04)
- mlx-community build: ships its own model code; thinking tags and tool calls not parsed by mlx_lm.server (other, 2026-10-04)
All 36 layers cache, at 144KB per token: about 18GB at 128K, more than the bf16 weights. It is also a long thinker; even after IFM's anti-loop training its mean output is 3.2K tokens on IFEval and 15.6K on LiveCodeBench, and IFM evaluated with output budgets up to 500K. A 16GB machine runs out of cache long before it runs out of the advertised 512K context.
Cap the context (e.g. --max-kv-size, or -c in llama.cpp), use an 8-bit KV cache where supported, and lower reasoning_effort when a long trace is not worth the memory.
Evidence · 2 sources · community-consensus
- mlx-community build: "The KV cache adds about 144 KB per token in bf16 (18.0 GB at 128K tokens)" (other, 2026-10-04)
- Model card: output-length figures and evaluation budgets (vendor, 2026-10-04)
Users on the model repo call the results "benchmaxxing" and report output not close to the claims, and the card's two tables disagree with each other (SWE-bench Verified 70.6 in one, 72.4 in the other). The name counts backbone parameters only; the file holds 9.0B. No independent run exists yet to settle it.
Not a defect we can confirm. Treat the full-band scores as the vendor's claim until independent numbers land.
Evidence · 2 sources · anecdotal
- I wish you delivered what you say you delivered (users dispute the benchmark results) (vendor, 2026-10-04)
- IFM reply: the 7B name counts backbone, not embedding, parameters (vendor, 2026-10-04)
IFM's benchmark table follows the Artificial Analysis Intelligence Index categories and fills every comparison column with Artificial Analysis data. This site does not republish Artificial Analysis numbers, so the AA-branded rows (AA-LCR, AA-Omniscience, tau3-Banking) are left out, and with them most of the evidence on tool calling, long context and factuality. Those cells are unrated, not bad. Absent from Aider polyglot and Vectara HHEM as of 2026-10-04.
Not a defect but a gap. Revisit when IFM's technical report or independent runs on standard benchmarks land.
Evidence · 1 source · anecdotal
- Model card benchmark table ("Baseline scores are from Artificial Analysis") (vendor, 2026-10-04)
The dense K2-Horizon models lose unusually much to 4-bit. mlx-community measured plain 4-bit at +18.6% WikiText-2 perplexity against bf16 on this model (18-22% across all three dense sizes, against 4.5% on the MoVA mixture), and even its mixed recipe, MLP weights at 4-bit and everything else at 8-bit, still loses 4.5%. IFM's Q4_K_M and the community 3-bit files have not been measured, so the mid band is scored two points down on math and coding and the low band further still.
Q6_K is 7.4GB and Q8_0 9.6GB; mlx-community's 8-bit build measured +0.2%. On a 16GB machine either fits, and that is the band to run.
Where arithmetic is what broke, hand it to a tool instead of the weights.
Evidence · 2 sources · anecdotal
- mlx-community quantization comparison against bf16 (plain 4-bit +18.6%, mixed 4-bit +4.5%, 8-bit +0.2%) (other, 2026-10-04)
- mlx-community MoVA comparison (plain 4-bit +4.5%) (other, 2026-10-04)