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
| Suite | Score | 95% interval | Passed | Runtime · profile | Recorded |
|---|---|---|---|---|---|
| chainwalkk2-36b-ctx128k-q8 | 50.0% | 9.5–90.5 | Passed 1/2 | llama.cppextraction | 2026-09-09 |
| chainwalkk2-36b-ctx32k | 50.0% | 9.5–90.5 | Passed 1/2 | llama.cppextraction | 2026-09-09 |
| nullschemak2-36b-ctx32k | 54.2% | 42.7–65.2 | Passed 39/72 | llama.cppextraction | 2026-09-09 |
| nullschemak2-36b-extraction | 54.2% | 42.7–65.2 | Passed 39/72 | llama.cppextraction | 2026-09-09 |
| nullschemak2-36b-vendor-k297.2% coverage | 48.6% | 37.2–60.0 | Passed 34/70 | llama.cppvendor-k2 | 2026-09-10 |
| nullschemak2-36b-vendor-k2b98.6% coverage | 57.7% | 46.2–68.5 | Passed 41/71 | llama.cppvendor-k2b | 2026-09-10 |
| screeningk2-36b-ctx32k | 90.0% | 79.9–95.3 | Passed 54/60 | llama.cppextraction | 2026-09-09 |
| synthesisk2-36b-a4b-q4 | 73.3% | 61.0–82.9 | Passed 44/60 | llama.cppextraction | 2026-09-09 |
| synthesisk2-36b-ctx32k | 70.0% | 57.5–80.1 | Passed 42/60 | llama.cppextraction | 2026-09-09 |
| synthesisk2-36b-extraction | 75.0% | 62.8–84.2 | Passed 45/60 | llama.cppextraction | 2026-09-09 |
| synthesisk2-36b-vendor-k2 | 93.3% | 84.1–97.4 | Passed 56/60 | llama.cppvendor-k2 | 2026-09-10 |
| synthesisk2-36b-vendor-k2b | 90.0% | 79.9–95.3 | Passed 54/60 | llama.cppvendor-k2b | 2026-09-10 |
| toolcallk2-36b-a4b-q4 | 100.0% | 94.0–100.0 | Passed 60/60 | llama.cppextraction | 2026-09-09 |
| toolcallk2-36b-ctx32k | 100.0% | 94.0–100.0 | Passed 60/60 | llama.cppextraction | 2026-09-09 |
| toolcallk2-36b-np1 | 100.0% | 94.0–100.0 | Passed 60/60 | llama.cppextraction | 2026-09-10 |
| toolscalek2-36b-a4b-q4 | 90.0% | 76.9–96.0 | Passed 36/40 | llama.cppextraction | 2026-09-09 |
| toolscalek2-36b-ctx32k | 90.0% | 76.9–96.0 | Passed 36/40 | llama.cppextraction | 2026-09-09 |
| toolscalek2-36b-np1 | 87.5% | 73.9–94.5 | Passed 35/40 | llama.cppextraction | 2026-09-10 |
| worldviewk2-36b-a4b-q4 | 78.9% | 56.7–91.5 | Passed 15/19 | llama.cppextraction | 2026-09-09 |
| worldviewk2-36b-ctx128k-q8 | 65.0% | 49.5–77.9 | Passed 26/40 | llama.cppextraction | 2026-09-09 |
| worldviewk2-36b-ctx32k | 65.0% | 49.5–77.9 | Passed 26/40 | llama.cppextraction | 2026-09-09 |
| worldviewk2-36b-extraction | 52.5% | 37.5–67.1 | Passed 21/40 | llama.cppextraction | 2026-09-09 |
| worldviewk2-36b-vendor-k2 | 77.5% | 62.5–87.7 | Passed 31/40 | llama.cppvendor-k2 | 2026-09-09 |
| worldviewk2-36b-vendor-k2b | 82.5% | 68.0–91.3 | Passed 33/40 | llama.cppvendor-k2b | 2026-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.
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.
| File | K2-Horizon-36B-A4B-Q4_K_M.gguf |
| Format | Q4_K_M, 22,368,011,616 B |
| Where from | made here 2026-09-09 from the BF16, fork llama-quantize |
| Status | deleted 2026-09-12 08:04Z |
| Hugging Face | not 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 fromIFM/K2-Horizon-MoVA-36B-A4B-GGUFwithsnapshot_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
| label | dates (UTC) | binary and version | ctx / -np / KV / -fa / --jinja / --reasoning-format | harness profile | why this label exists |
|---|---|---|---|---|---|
k2-36b-a4b-q4 | 2026-09-09 19:45–19:54 | fork llama-server, 0.3.0-dev (build 20, commit 35999d1) | 16384 total → 8192/slot / 2 / f16 / off / on / none | extraction | first gauntlet; the 8192 window was found mid-run to be a serving error |
k2-36b-ctx32k | 2026-09-09 20:05–20:34 | fork llama-server, 0.3.0-dev (build 20, commit 35999d1) | 65536 total → 32768/slot / 2 / f16 / off / on / none | extraction | the whole board re-run under one configuration so it is citable |
k2-36b-ctx128k-q8 | 2026-09-09 20:49–21:01 | fork llama-server, 0.3.0-dev (build 20, commit 35999d1) | 262144 total → 131072/slot / 2 / q8_0 / on / on / none | extraction | KV-quantisation check after Alan's "32k context a killer, this thing can handle 500k" |
k2-36b-extraction | 2026-09-09 22:29–22:35 | fork 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-k2 | 2026-09-09 22:40–23:14 | fork 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-k2b | 2026-09-09 23:19–23:44 | fork llama-server, 0.3.0-dev (build 20, commit 35999d1) | as vendor-k2 (reconstructed) | vendor-k2b: as vendor-k2, seed 1337 | variance check: "only a second seed does" |
k2-36b-np1 | 2026-09-10 07:59–08:01 | fork llama-server, 0.3.0-dev (build 20, commit 35999d1) | 131072 / 1 / q8_0 / on / on / deepseek | extraction | toolcall/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.shwas 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 2gave each slot 8192, so an ordinary page fetch overflowed. Every harness also declaredmaxTokens32768 against a 16384 window.k2-36b-a4b-q4ran 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). -fatakes a value in this build. A bare-faswallowed-ngland 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-formaton 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'responsefields). All seven labels had--jinja. - Partial runs (standing check). Only worldview
k2-36b-a4b-q4is 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-k2nullschema, 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 reports0.3.0-dev (build 20, commit 35999d1). Theruntime_versionfield is correct;llama_buildis 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.