Spark-X2.6-4B · file← Spark-X2.6-4B
Spark-X2.6-4B
XHToken's own Q4_K_M, which keeps some parts at higher precision. The only file, tested on 24 October.
- Size
- 3.5 GB
- Status
- Benched 24 Oct 2026
- Scored runs
- 15
- Smallest Mac
- 16 GB measured, 64K context
| Suite | Score | 95% interval | Passed | Runtime · profile | Recorded |
|---|---|---|---|---|---|
| chainwalkspark-x2.6-4b-q4km-np1-c64k-b11846 | 50.0% | 9.5–90.5 | Passed 1/2 | llama.cppextraction | 2026-10-24 |
| contractspark-x2.6-4b-q4km-np1-c64k-b11846 | 29.2% | 18.2–43.2 | Passed 14/48 | llama.cppextraction | 2026-10-24 |
| enrichmentspark-x2.6-4b-q4km-np1-c64k-b11846 | 85.2% | 73.4–92.3 | Passed 46/54 | llama.cppextraction | 2026-10-24 |
| epistemicsspark-x2.6-4b-q4km-np1-c64k-b11846 | 95.8% | 86.0–98.8 | Passed 46/48 | llama.cppextraction | 2026-10-24 |
| groundingspark-x2.6-4b-q4km-np1-c64k-b11846 | 72.0% | 63.6–79.1 | Passed 90/125 | llama.cppextraction | 2026-10-24 |
| needlespark-x2.6-4b-q4km-np1-c64k-b11846 | 87.3% | 79.8–92.3 | Passed 96/110 | llama.cppextraction | 2026-10-24 |
| nullschemaspark-x2.6-4b-q4km-np1-c64k-b11846 | 63.9% | 52.4–74.0 | Passed 46/72 | llama.cppextraction | 2026-10-24 |
| screeningspark-x2.6-4b-q4km-np1-c64k-b11846 | 98.3% | 91.1–99.7 | Passed 59/60 | llama.cppextraction | 2026-10-24 |
| synthesisspark-x2.6-4b-q4km-np1-c64k-b11846 | 81.7% | 70.1–89.4 | Passed 49/60 | llama.cppextraction | 2026-10-24 |
| taggerspark-x2.6-4b-q4km-np1-c64k-b11846 | 87.9% | 83.2–91.5 | Passed 211/240 | llama.cppextraction | 2026-10-24 |
| tagger_nullablespark-x2.6-4b-q4km-np1-c64k-b11846 | 71.7% | 65.7–77.0 | Passed 172/240 | llama.cppextraction | 2026-10-24 |
| toolcallspark-x2.6-4b-q4km-np1-c64k-b11846 | 0.0% | -0.0–6.0 | Passed 0/60 | llama.cppextraction | 2026-10-24 |
| toolsspark-x2.6-4b-q4km-np1-c64k-b11846 | 86.7% | 62.1–96.3 | Passed 13/15 | llama.cppextraction | 2026-10-24 |
| toolscalespark-x2.6-4b-q4km-np1-c64k-b11846 | 95.0% | 83.5–98.6 | Passed 38/40 | llama.cppextraction | 2026-10-24 |
| worldviewspark-x2.6-4b-q4km-np1-c64k-b11846 | 40.0% | 26.3–55.4 | Passed 16/40 | llama.cppextraction | 2026-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.
Of record
The measurement of record for this model.
The run’s own note: Single slot at 64K (benchmark rule), beside the full fleet. Vendor Q4_K_M is a mixed quant (BF16 token embeddings, Q8_0 attn-output and output head). 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 57.8 tokens/s, prefill 465.4 tokens/s (435.5 on prompts over 16K), medians. Single stream, full fleet resident (contended).
- Peak memory
- 7.8 GB resident, with 64K of context allocated
- Weights
- 3.5 GB file · sha256
91cb2811aebb47ac… - Coherence check
- passed
- Left out by plan
- shapegen, sitebuild
- Machine
- Mac Studio (M1 Max, 64 GB)
- Released
- 24 October 2026, bundle
2026-10-24-4174a46f
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-743cfeb3.
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.
| Context | Resident memory | Swap in use, whole Mac | Decode | Load |
|---|---|---|---|---|
| 8K | 3.81 GB | 11.76 GB | 58.1 tokens/s | 3 s |
| 16K | 4.09 GB | 11.76 GB | 58.3 tokens/s | 3 s |
| 32K | 4.66 GB | 11.76 GB | 58.2 tokens/s | 3 s |
| 64K | 5.78 GB | 11.76 GB | 58.2 tokens/s | 3 s |
| 128K | 8.04 GB | 11.76 GB | 58.1 tokens/s | 3 s |
| 256K | 12.54 GB | 11.76 GB | 58.2 tokens/s | 3 s |
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 | Spark-X2.6-4B-Q4_K_M.gguf |
| Format | GGUF "Q4_K_M", 3,543,441,312 B: a mixed quant with BF16 embeddings and Q8_0 attn-output (variant doc) |
| Where from | downloaded |
| Status | benched 2026-10-24 |
| Hugging Face | XHToken/Spark-X2.6-4B-GGUF |
How it was made
Downloaded, not made here.
| field | value |
|---|---|
| repo | XHToken/Spark-X2.6-4B-GGUF |
| file | Spark-X2.6-4B-Q4_K_M.gguf |
| revision | fe31f8d64890302cc3a1d365d700357b4b75ba77 |
| size | 3,543,441,312 bytes (ls -l; matches the HF listing) |
| sha256 | 91cb2811aebb47ac916aa619d27d4cdd7f4143106b7917accb8ead4cd7f5cbd9 (shasum -a 256; equals the HF LFS oid) |
| downloaded | 2026-10-24 ~10:12–10:15Z, huggingface_hub 1.33.0 with HF_XET_HIGH_PERFORMANCE=1 |
| local path | models/spark-x2.6-4b/Spark-X2.6-4B-Q4_K_M.gguf |
| asked by | Alan, 2026-10-24: "ok, there's a new spark model, we tested the previous one but it's now the same model with different training" |
Header (read with gguf-py from llama.cpp-b11846):
- architecture
spark2_5, 36 blocks, 4 KV heads, context_length 1,048,576,general.file_type15 (Q4_K_M); - token_embd
[2560, 131072], vocabulary 131,072.
Tensor-type mix: the vendor's "Q4_K_M" is a heavy mix.
| type | tensors | bytes |
|---|---|---|
| Q4_K | 108 | 1.49 GB |
| Q8_0 | 37 | 0.76 GB: output.weight plus all 36 attn_output |
| BF16 | 37 | 0.67 GB, incl. token_embd.weight (131,072 × 2,560) |
| Q6_K | 36 | 0.62 GB |
| F32 | 73 | ~0 (norms) |
X2.5's vendor Q4_K_M was 2,600,224,352 B with the same shapes. The +0.94 GB is consistent with these higher-precision tensors, though X2.5's own mix is not on record (its file was deleted 2026-10-11, header never read).
How it was served
Machine: a Mac Studio (Mac13,1): Apple M1 Max, 64 GB.
| label | dates (UTC) | binary and version | ctx / -np / KV / -fa / --jinja / --reasoning-format | profile | why this label exists |
|---|---|---|---|---|---|
spark-x2.6-4b-q4km-np1-c64k-b11846 | 2026-10-24 10:17–12:22Z | llama.cpp-b11846/build/bin/llama-server, version 0.7.0-dev, build 11846 (1a24df163) | -c 65536 -np 1 (server log: n_slots = 1, n_ctx_slot = 65536) / KV default f16 / -fa on / --jinja / default / -ngl 999 --cache-ram 0 | extraction | the measurement of record: the pre-registered gauntlet (the family's decision log), run by a one-off script through eval/swapseat_gauntlet.sh with VACATE=0 and PAR=1, 15 suites |
spark-x2.6-4b-q4km-np1-b11846 (context ladder) | 2026-10-24 12:22–12:24Z | the same binary | -c 8192 … 262144 -np 1 -fa on --jinja -ngl 99, KV default f16 | — | eval/ctx_ladder.py with LADDER_BIN, beside the full fleet |
Seats held: none.
Decisions
- 2026-10-24: the vendor Q4_K_M, to match X2.5's measured format (the family's decision log). The header shows the bit allocation differs from a plain Q4_K_M, which is recorded above.
What went wrong
- The run log's
llama_buildandserver_flagswill be wrong when it's backfilled. The truth is build 11846 with the Served-as flags. - The ladder's KV column reads "?" (b11846's log format). KV is taken from RSS growth.
What happened to it
Downloaded 2026-10-24 → gauntlet of record and context ladder complete 2026-10-24 → decide/1 and edgefill pending. Re-downloadable from the repo and revision above.