FreshContextA context lab · Fife
Drawing
02 · Benchmarks
Sheet
2 of 3
Rev
A · 2026-10-01

K2-Horizon-36B-A4B · file← K2-Horizon-36B-A4B

Q4_K_M

The first build, and the one most of the testing ran on. Quantised here from IFM's BF16.

Size
22.4 GB
Status
Deleted 12 Sep 2026
Scored runs
24
Smallest Mac
48 GB estimate, 8K context
Results24 scored · 95% intervals
SuiteScore95% interval PassedRuntime · profileRecorded
chainwalkk2-36b-ctx128k-q850.0%9.5–90.5Passed 1/2llama.cppextraction2026-09-09
chainwalkk2-36b-ctx32k50.0%9.5–90.5Passed 1/2llama.cppextraction2026-09-09
nullschemak2-36b-ctx32k54.2%42.7–65.2Passed 39/72llama.cppextraction2026-09-09
nullschemak2-36b-extraction54.2%42.7–65.2Passed 39/72llama.cppextraction2026-09-09
nullschemak2-36b-vendor-k297.2% coverage48.6%37.2–60.0Passed 34/70llama.cppvendor-k22026-09-10
nullschemak2-36b-vendor-k2b98.6% coverage57.7%46.2–68.5Passed 41/71llama.cppvendor-k2b2026-09-10
screeningk2-36b-ctx32k90.0%79.9–95.3Passed 54/60llama.cppextraction2026-09-09
synthesisk2-36b-a4b-q473.3%61.0–82.9Passed 44/60llama.cppextraction2026-09-09
synthesisk2-36b-ctx32k70.0%57.5–80.1Passed 42/60llama.cppextraction2026-09-09
synthesisk2-36b-extraction75.0%62.8–84.2Passed 45/60llama.cppextraction2026-09-09
synthesisk2-36b-vendor-k293.3%84.1–97.4Passed 56/60llama.cppvendor-k22026-09-10
synthesisk2-36b-vendor-k2b90.0%79.9–95.3Passed 54/60llama.cppvendor-k2b2026-09-10
toolcallk2-36b-a4b-q4100.0%94.0–100.0Passed 60/60llama.cppextraction2026-09-09
toolcallk2-36b-ctx32k100.0%94.0–100.0Passed 60/60llama.cppextraction2026-09-09
toolcallk2-36b-np1100.0%94.0–100.0Passed 60/60llama.cppextraction2026-09-10
toolscalek2-36b-a4b-q490.0%76.9–96.0Passed 36/40llama.cppextraction2026-09-09
toolscalek2-36b-ctx32k90.0%76.9–96.0Passed 36/40llama.cppextraction2026-09-09
toolscalek2-36b-np187.5%73.9–94.5Passed 35/40llama.cppextraction2026-09-10
worldviewk2-36b-a4b-q478.9%56.7–91.5Passed 15/19llama.cppextraction2026-09-09
worldviewk2-36b-ctx128k-q865.0%49.5–77.9Passed 26/40llama.cppextraction2026-09-09
worldviewk2-36b-ctx32k65.0%49.5–77.9Passed 26/40llama.cppextraction2026-09-09
worldviewk2-36b-extraction52.5%37.5–67.1Passed 21/40llama.cppextraction2026-09-09
worldviewk2-36b-vendor-k277.5%62.5–87.7Passed 31/40llama.cppvendor-k22026-09-09
worldviewk2-36b-vendor-k2b82.5%68.0–91.3Passed 33/40llama.cppvendor-k2b2026-09-10

Runs marked unenforced were measured on a suite that requires constrained decoding, on a server shown not to apply the schema: mlx_lm accepts it and ignores it, and a few other servers and models break it. Those numbers do not measure what the suite is designed to measure. They are kept and labelled rather than deleted.

The recordHow it was made · how it was served · what went wrong · what happened to it

Rebuilt from the lab's records by Claude, an AI model. The results above come straight from the automated runs. How these pages are made.

FileK2-Horizon-36B-A4B-Q4_K_M.gguf
FormatQ4_K_M, 22,368,011,616 B
Where frommade here 2026-09-09 from the BF16, fork llama-quantize
Statusdeleted 2026-09-12 08:04Z
Hugging Facenot downloaded; byte size equals IFM's later-published Q4_K_M

How it was made

  • Input: models/k2-horizon-36b-a4b/K2-Horizon-36B-BF16.gguf, 74,924,627,296 B, downloaded 2026-09-09 from IFM/K2-Horizon-MoVA-36B-A4B-GGUF with snapshot_download(..., allow_patterns=['*BF16*.gguf','*.json','*.jinja'], max_workers=8). The assistant called it "byte-for-byte IFM's official release". HF revision: not on record.
  • Command:
llama.cpp-k2horizon/build/bin/llama-quantize K2-Horizon-36B-BF16.gguf K2-Horizon-36B-A4B-Q4_K_M.gguf Q4_K_M

No imatrix and no tensor-type overrides.

  • Tool: MBZUAI-IFM fork, model/K2Horizon @ 35999d1 (build 20), built 2026-09-09 14:54Z.
  • Date: 2026-09-09. The file was complete by 16:06Z (ls mtime "9 Sep 17:06" local).
  • Size: 22,368,011,616 B. sha256 not on record.
  • Who asked / why: Alan asked for a Q8 run against the gauntlet. The Q4_K_M was added by the assistant in the same script as the resident-size option ("20-38 GB footprint depending on quant") (reconstructed).

How it was served

labeldates (UTC)binary and versionctx / -np / KV / -fa / --jinja / --reasoning-formatharness profilewhy this label exists
k2-36b-a4b-q42026-09-09 19:45–19:54fork llama-server, 0.3.0-dev (build 20, commit 35999d1)16384 total → 8192/slot / 2 / f16 / off / on / noneextractionfirst gauntlet; the 8192 window was found mid-run to be a serving error
k2-36b-ctx32k2026-09-09 20:05–20:34fork llama-server, 0.3.0-dev (build 20, commit 35999d1)65536 total → 32768/slot / 2 / f16 / off / on / noneextractionthe whole board re-run under one configuration so it is citable
k2-36b-ctx128k-q82026-09-09 20:49–21:01fork llama-server, 0.3.0-dev (build 20, commit 35999d1)262144 total → 131072/slot / 2 / q8_0 / on / on / noneextractionKV-quantisation check after Alan's "32k context a killer, this thing can handle 500k"
k2-36b-extraction2026-09-09 22:29–22:35fork llama-server, 0.3.0-dev (build 20, commit 35999d1)131072 / 1 / q8_0 / on / on / none (the GOOD line, swap-to-36b.sh as edited)extraction (temperature 0, thinking off, 2048 max)baseline re-run, because adding sampling fields to Profile changed configuration_id
k2-36b-vendor-k22026-09-09 22:40–23:14fork llama-server, 0.3.0-dev (build 20, commit 35999d1)131072 / 1 / q8_0 / on / on / none (reconstructed)vendor-k2: thinking on, 8192 max, temperature 1.0, top_p 0.95, reasoning_effort=high, seed 42 (benchmarks/harness/profiles.py)IFM's recommended settings; Alan: "do it, skip dojo for now this is more fun"
k2-36b-vendor-k2b2026-09-09 23:19–23:44fork llama-server, 0.3.0-dev (build 20, commit 35999d1)as vendor-k2 (reconstructed)vendor-k2b: as vendor-k2, seed 1337variance check: "only a second seed does"
k2-36b-np12026-09-10 07:59–08:01fork llama-server, 0.3.0-dev (build 20, commit 35999d1)131072 / 1 / q8_0 / on / on / deepseekextractiontoolcall/toolscale at -np 1 for a clean A/B with qwen3.8-27b; the earlier runs were -np 2, and -np had flipped worldview/nullschema verdicts

Run-log runtime for every label: llama.cpp b20 (35999d1), k2horizon fork (runtime_source "evidence"). All seven ran with alias k2-36b. The run-log evidence for the vendor labels points to a server started with --reasoning-format deepseek at 23:58Z. On the timestamps, all vendor runs had finished by 23:44Z, so they ran without that flag (reconstructed).

Seats held: the interactive Hermes / opencode / pi / dsh model (2026-09-09 19:45Z to 2026-09-11). It was the target in the speculative-decoding tests with the 3.7B as draft (On a sparse MoE, speculative decoding fails even at 96% draft acceptance). It was also the baseline for the 2026-09-11 format ladder.

Decisions

  • Made as the resident-size build next to the Q8_0 (reconstructed). It was the build every board label used until 2026-09-11.
  • Seated as Alan's agent model on 2026-09-09. Alan's reaction: "do it, this could become my daily driver".
  • Replaced as the serving build by Q4_0 on 2026-09-11. swap-to-36b.sh was re-pointed, and its header records toolcall 100→100, toolscale 87.5→90.0, worldview 52.5→57.5, nullschema 54.2→65.3 and synthesis 75.0→76.7.
  • Deleted 2026-09-12 08:04Z as a "Q4_K_M with a Q4_0 sibling" on Alan's "We can do some more cleanup too, kill and q8 and q4_k_m safely?".
  • Not published to HF (a local quant of a public BF16).

What went wrong

  • Mid-write misread. At 16:03Z the file was 8.5 GB and still being written; the assistant flagged it as "1.9 bits per weight on average"... "I would not trust that build" and retracted at 19:43Z. A lab note still says "Treat that build as unverified".
  • 8192-token effective window. -c 16384 -np 2 gave each slot 8192, so an ordinary page fetch overflowed. Every harness also declared maxTokens 32768 against a 16384 window. k2-36b-a4b-q4 ran under this.
  • Two synthesis runs for k2-36b-a4b-q4. synthesis__k2-36b-a4b-q4__extraction.jsonl.superseded (20:52 local) sits beside the live file (20:54). The overlapping scripts both queued synthesis (reconstructed).
  • -fa takes a value in this build. A bare -fa swallowed -ngl and the server refused to start.
  • Context extrapolation OOM. 256k per slot was predicted to fit from a 64 KB/token extrapolation and Metal OOM'd.
  • Think-tag leakage into content in opencode and Hermes until --reasoning-format deepseek (swap-to-36b.sh header).
  • Missing flags (standing check). The vendor arms ran thinking-on with no --reasoning-format on the server line. What build 20 does by default there, and so whether reasoning text reached graded content, is not on record (it would be in the vendor results' response fields). All seven labels had --jinja.
  • Partial runs (standing check). Only worldview k2-36b-a4b-q4 is short (19 rows against 40 cases); every other results file for these labels has the full case count (line counts, 2026-10-23).
  • One HTTP 500 and one truncation were excluded on k2-36b-vendor-k2 nullschema, giving 70/72 measured.
  • Run-log build stamp. Every entry carries llama_build: 0.4.0-dev (build 10893, commit c32d1dabe), which is the upstream build. The fork reports 0.3.0-dev (build 20, commit 35999d1). The runtime_version field is correct; llama_build is not.

What happened to it

Downloaded BF16 2026-09-09 → quantised here 2026-09-09 → benched 2026-09-09/10 → seated 2026-09-09 → superseded by Q4_0 2026-09-11 → deleted 2026-09-12 08:04Z. No RESTORE-deleted-*.sh entry. Re-create: download K2-Horizon-36B-BF16.gguf from IFM/K2-Horizon-MoVA-36B-A4B-GGUF, then run the command above with the fork (or with upstream once the 36B is verified there). The run-log results survive the deletion.