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

Spark-X2.5-4B · file← Spark-X2.5-4B

Q4_K_M

A fresh download of XHToken's 4-bit file on 24 October, for a fuller re-run. Where the runs overlap, it scored exactly the same.

Size
2.6 GB
Status
Benched 24 Oct 2026
Scored runs
15
Smallest Mac
16 GB measured, 64K context
Results15 scored · 95% intervals
SuiteScore95% interval PassedRuntime · profileRecorded
chainwalkspark-x2.5-4b-q4km-np1-c64k-b1184650.0%9.5–90.5Passed 1/2llama.cppextraction2026-10-24
contractspark-x2.5-4b-q4km-np1-c64k-b1184625.0%14.9–38.8Passed 12/48llama.cppextraction2026-10-24
enrichmentspark-x2.5-4b-q4km-np1-c64k-b1184677.8%65.1–86.8Passed 42/54llama.cppextraction2026-10-24
epistemicsspark-x2.5-4b-q4km-np1-c64k-b1184672.9%59.0–83.4Passed 35/48llama.cppextraction2026-10-24
groundingspark-x2.5-4b-q4km-np1-c64k-b1184672.8%64.4–79.8Passed 91/125llama.cppextraction2026-10-24
needlespark-x2.5-4b-q4km-np1-c64k-b1184663.6%54.3–72.0Passed 70/110llama.cppextraction2026-10-24
nullschemaspark-x2.5-4b-q4km-np1-c64k-b1184648.6%37.4–59.9Passed 35/72llama.cppextraction2026-10-24
screeningspark-x2.5-4b-q4km-np1-c64k-b1184696.7%88.6–99.1Passed 58/60llama.cppextraction2026-10-24
synthesisspark-x2.5-4b-q4km-np1-c64k-b1184628.3%18.5–40.8Passed 17/60llama.cppextraction2026-10-24
taggerspark-x2.5-4b-q4km-np1-c64k-b1184687.5%82.7–91.1Passed 210/240llama.cppextraction2026-10-24
tagger_nullablespark-x2.5-4b-q4km-np1-c64k-b1184688.8%84.1–92.2Passed 213/240llama.cppextraction2026-10-24
toolcallspark-x2.5-4b-q4km-np1-c64k-b118460.0%-0.0–6.0Passed 0/60llama.cppextraction2026-10-24
toolsspark-x2.5-4b-q4km-np1-c64k-b1184680.0%54.8–93.0Passed 12/15llama.cppextraction2026-10-24
toolscalespark-x2.5-4b-q4km-np1-c64k-b1184695.0%83.5–98.6Passed 38/40llama.cppextraction2026-10-24
worldviewspark-x2.5-4b-q4km-np1-c64k-b1184620.0%10.5–34.8Passed 8/40llama.cppextraction2026-10-24

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.

SetupHow it was run

Of record

The measurement of record for this model.

The run’s own note: Single slot at 64K (benchmark rule), beside the full fleet: the training comparison for Spark-X2.6-4B. Weights re-downloaded and pinned to a revision; the vendor Q4_K_M here is a plain Q4_K/Q6_K mix. On the five suites run on 2026-09-10, 270 of 272 answers are byte-identical to that run. shapegen and sitebuild excluded.

Server
1 slot, 64K of context per request, KV cache f16 (default), flash attention on, 1 suite at a time
Runtime
llama.cpp b11846 (1a24df163), plain upstream
Speed
decode 58.4 tokens/s, prefill 453.2 tokens/s (433.2 on prompts over 16K), medians. Single stream, full fleet resident (contended).
Peak memory
7 GB resident, with 64K of context allocated
Weights
2.6 GB file · sha256 adfcfa19a4ed6a59…
Coherence check
passed
Left out by plan
shapegen, sitebuild
Machine
Mac Studio (M1 Max, 64 GB)
Released
24 October 2026, bundle 2026-10-24-0b6bf0e3

Memory by context

The same file and server, started at each context size in turn: what it held in memory and how fast it wrote on a short prompt. It measures memory and serving, not how well the model uses a long context. Released 24 October 2026, bundle 2026-10-24-eaf7f863.

The ladder’s own note: Context ladder 8K to 256K (native window 1M; the ladder tops out at 262144), single slot, f16 KV, beside the full fleet. Decode on a trivial prompt per rung; measures allocation and serving, not long-context quality.

ContextResident memorySwap in use, whole MacDecodeLoad
8K2.93 GB10.02 GB59.7 tokens/s3 s
16K3.22 GB10.02 GB59.7 tokens/s3 s
32K3.78 GB10.02 GB59.6 tokens/s3 s
64K4.91 GB10.02 GB59.5 tokens/s3 s
128K7.16 GB10.02 GB59.7 tokens/s3 s
256K11.62 GB10.02 GB59.5 tokens/s6 s
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.

FileSpark-X2.5-4B-Q4_K_M.gguf (re-download)
FormatQ4_K_M GGUF, 2,600,224,352 B (HF listing 2026-10-24)
Where fromdownloaded 2026-10-24, pinned to revision 9826e0be84e6e6e8b9668abc91421109a1df1e2d
Statusbenched 2026-10-24
Hugging Facehttps://huggingface.co/XHToken/Spark-X2.5-4B-GGUF

How it was made

Downloaded, not made here.

fieldvalue
repoXHToken/Spark-X2.5-4B-GGUF (repo last modified 2026-09-20T08:08:37Z)
fileSpark-X2.5-4B-Q4_K_M.gguf
revision9826e0be84e6e6e8b9668abc91421109a1df1e2d
size2,600,224,352 bytes (ls -l; same as the HF listing, and as the deleted 2026-09-10 file)
sha256adfcfa19a4ed6a5985da8bf565fe15f8e1a7e131d79bae2d19d48d1c40109428 (shasum -a 256; equals the HF LFS oid)
downloaded2026-10-24 ~15:30Z, huggingface_hub 1.33.0 with HF_XET_HIGH_PERFORMANCE=1
local pathmodels/spark-x2.5-4b/Spark-X2.5-4B-Q4_K_M.gguf
asked byAlan, 2026-10-24: "yes re-run"

Identity with the 2026-09-10 file:

  • Bit identity is not provable. The byte size is the same, but that file's sha256 was never recorded, and the repo was modified after the first download.
  • Behaviourally it is the same file. On the five suites both runs share, 270 of 272 answers are byte-identical, and all 272 pass/fail outcomes match. That holds across a different llama.cpp build, context and KV type.

Header (gguf-py, llama.cpp-b11846):

  • architecture spark2_5, 36 blocks, 4 KV heads, context_length 1,048,576, general.file_type 15 (Q4_K_M).
  • Tensor mix:
typetensorsbytes
Q4_K1801.70 GB, incl. every attn_output
Q6_K370.89 GB, incl. token_embd.weight
F3273~0 (norms)
  • There's no separate output.weight tensor; the output head appears tied to the embeddings.
  • Against X2.6's vendor "Q4_K_M": that file has BF16 token_embd, Q8_0 attn_output and a separate Q8_0 output.weight, and is 3,543,441,312 B. So the two vendor files at the same nominal format differ in precision, and possibly in whether the output head is tied.

How it was served

Machine: a Mac Studio (Mac13,1): Apple M1 Max, 64 GB.

labeldates (UTC)binary and versionctx / -np / KV / -fa / --jinja / --reasoning-formatprofilewhy this label exists
spark-x2.5-4b-q4km-np1-c64k-b118462026-10-24 15:41Z–17:50Zllama.cpp-b11846/build/bin/llama-server, build 11846 (1a24df163)-c 65536 -np 1 / KV default f16 / -fa on / --jinja / default / -ngl 999 --cache-ram 0extractionthe training-comparison re-run (the family's decision log, 2026-10-24); 16 suites incl. toolcall2, PAR=1, VACATE=0; coherence COHERENT
spark-x2.5-4b-q4km-np1-b118462026-10-24 17:50Z–17:51Zsame binary-np 1 -fa on, f16 KV, 8K→256K—context ladder

Decisions

  • 2026-10-24: re-downloaded and pinned for the re-run (family decision log).
  • 2026-10-24: re-run complete; expectations scored in the family doc.

What went wrong

  • Mis-stamped run log (known in advance): llama_build reads the live binary and server_flags is empty. The truth is build 11846 with the Served-as flags. The bundle carries the true runtime_version.
  • The waiting task hit its 2-hour limit at the end of the queue; the queue itself finished (QUEUE_DONE 17:51:41Z). Nothing was lost.

What happened to it

Downloaded 2026-10-24 → benched 2026-10-24. Re-downloadable from the repo and revision above. Not seated.