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

Ornith 1.5 35B-A3B · file← Ornith 1.5 35B-A3B

Q4_0

The one we kept. bartowski's Q4_0, Alan's daily driver in mid-September. Bartowski.

Size
20.4 GB
Status
On disk
Scored runs
8
Smallest Mac
36 GB estimate, 8K context
Results8 scored · 95% intervals
SuiteScore95% interval PassedRuntime · profileRecorded
contractornith-35b-a3b-q4066.7%52.5–78.3Passed 32/48llama.cppextraction2026-09-12
groundingornith-35b-a3b-q4076.0%67.8–82.6Passed 95/125llama.cppextraction2026-09-12
nullschemaornith-35b-a3b-q4036.1%26.0–47.6Passed 26/72llama.cppextraction2026-09-12
taggerornith-35b-tagger85.8%80.9–89.7Passed 206/240llama.cppextraction2026-09-20
toolcallornith-35b-a3b-q4080.0%68.2–88.2Passed 48/60llama.cppextraction2026-09-12
toolscaleornith-35b-a3b-q40100.0%91.2–100.0Passed 40/40llama.cppextraction2026-09-12
worldviewornith-35b-a3b-q4085.0%70.9–92.9Passed 34/40llama.cppextraction2026-09-12
worldviewornith-35b-a3b-q40-recheck85.0%70.9–92.9Passed 34/40llama.cppextraction2026-09-17

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.

FileOrnith-1.5-35B-A3B-Q4_0.gguf (+ mmproj-Ornith-1.5-35B-A3B-bf16.gguf, 902,822,240 B)
FormatQ4_0, 20,415,243,936 B
Where fromdownloaded 2026-09-12 from bartowski/Ornith-1.5-35B-A3B-GGUF
Statuson disk; default swap-seat occupant
Hugging Facehttps://huggingface.co/bartowski/Ornith-1.5-35B-A3B-GGUF

Where it came from

  • Repo/file: bartowski/Ornith-1.5-35B-A3B-GGUF / Ornith-1.5-35B-A3B-Q4_0.gguf and mmproj-Ornith-1.5-35B-A3B-bf16.gguf.
  • Command: hfpull.sh bartowski/Ornith-1.5-35B-A3B-GGUF Ornith-1.5-35B-A3B-Q4_0.gguf models/ornith-1.5-35b-a3b/Ornith-1.5-35B-A3B-Q4_0.gguf 6 (6 parallel streams; mmproj with 2).
  • Size: 20,415,243,936 B; mmproj 902,822,240 B (stat 2026-10-23). sha256 and revision not on record.
  • Date: 2026-09-12 10:25Z start; file mtime 11:37 local = 10:37Z, and the seat came up at 10:38Z.
  • Who asked: Alan, "grab the q4_0 35b and let's try it out? would 4.7 flash fit too?", after "We should probably retest it, supposed to be a great daily driver in Hermes".
  • GGUF header: qwen35moe, 41 blocks, 2 KV heads, head_dim 256, 256 experts / 8 used.

How it was served

labeldates (UTC)binary and versionctx / -np / KV / -fa / --jinja / --reasoning-formatharness profilewhy this label exists
ornith-35b-a3b-q402026-09-12 11:00–11:14Z (run-log ts 12:02:50–12:14:18 BST).local/bin/llama-server → llama.cpp, b10893 (c32d1dabe)-c 65536 -np 1 / f16 KV / -fa on / --jinja / default; --mmproj bf16, -ngl 999extractionfirst measurement at Q4_0: the script header says everything previously 'known' about this model came from Q6_K and MLX builds (script header); co-resident with the 9B driver, so tok/s is invalid and pass rates stand
ornith-35b-a3b-q40-recheck2026-09-17 17:49Z (run-log ts 18:50:40 BST)same binary, b10893-c 262144 -np 2 (131,072 per slot) / q4_0 KV / -fa on / --jinja / default; --cache-ram 16384, no mmprojextractionprovenance spot-check: one recorded suite re-measured on a label whose weights are on disk (One baseline was 25 points off and nothing in the stamp could explain it; the other six reproduced exactly)
ornith-35b-tagger2026-09-20 17:03–17:07Z (run-log ts 18:07:26 BST)same binary, b10893as the recheck row; seat process started 2026-09-19 00:22Z, no restart on record before the runextraction"the missing row": the incumbent seat on tagger before choosing a tagging seat

Commands: board: breadth-seat-ornith35b.sh started 10:38Z, then ornith35_bench.sh with --model-id ornith-35b-a3b --label ornith-35b-a3b-q40 --profile extraction. Recheck: harness.runner --suite worldview --model-id ornith-35b-a3b --label ornith-35b-a3b-q40-recheck against the seat restarted at 2026-09-17 07:42Z. Tagger: harness.runner --suite tagger --model-id ornith --label ornith-35b-tagger against the 2026-09-19 00:22Z restart. Manifests: the q40 rows record n_ctx 65536, n_slots 1; the recheck records n_ctx 131072, n_slots 2, model_path …Ornith-1.5-35B-A3B-Q4_0.gguf, ftype Q4_0; the tagger manifest's server block is {"unavailable": "HTTPError"} because it went through fleetview.

Seats held (all on b10893, .local/bin/llama-server):

dates (UTC)configrole
2026-09-12 10:38Z → ~12:00Z-c 65536 -np 1 -fa on --jinja, f16 KV, mmproj"breadth seat" beside the 9B driver; then "drop the 35B, it earned nothing on the board"
2026-09-13 ~08:29Z → 2026-09-13 22:00Zcoding-seat-ornith35b.sh: -c 131072 --cache-ram 6144 -ctk q4_0 -ctv q4_0 -np 1 -fa on -ngl 999, mmprojDSH coding seat (later -np 1 131K for Spumco)
2026-09-13 22:10Z → 2026-09-16hermes-ab-35b.sh: -c 65536 -np 1 --cache-ram 2048 -ctk q4_0 -ctv q4_0, no mmproj; --cache-ram 8192 from 2026-09-15 07:38ZHermes A/B vs agents-a1-35b; then daily briefs for Spumco
2026-09-16 22:35Z → 2026-09-17 07:42Z-c 65536 -np 2 then -c 131072 -np 2 --cache-ram 12288briefs in parallel
2026-09-17 07:42Z → 2026-09-28 15:44Z-c 262144 -np 2 --cache-ram 16384 q4_0 KV; restarted with the same flags 2026-09-19 00:22Z; --cache-ram 4096 from 2026-09-20 18:10Z (fleetview BENCH)driver, then the judgment seat and default swap-seat occupant
2026-09-28 15:44Z → ~2026-10-12not seated: ornith-9b left in the seat—
2026-10-12 07:50Z → (2026-10-23 at least)fleetview BENCH: -c 262144 -np 2 --cache-ram 4096 + --jinja -ctk q4_0 -ctv q4_0 -fa on -ngl 999play-seat occupant; long omp job

Not in fleet-models.ini or any launchd plist (2026-10-23); the seat is started by fleetview's /swap.

Decisions

  • Downloaded 2026-09-12 on Alan's request (above).
  • Dropped the same morning, then seated anyway. "drop the 35B, it earned nothing on the board" — toolcall 80 against the 9B's 100. Alan wanted a coding seat and from 09-13 used it as his driver: "jesus ornith MOE is fast", "I'm only using ornith 35b just now".
  • Kept over BTL-4 Q4_K_M 2026-09-15: "Ornith stays the driver", with 100% on superseded and conflicting.
  • Kept over K2-36B 2026-09-19 01:08Z. Alan: "I think ornith has to stay for kv cache and context lengths".
  • Default occupant of the interchangeable seat from 2026-09-20; on 2026-10-11 Alan: "tbh the swap seat has no real job, it's a play seat, the others are workers".
  • Not published to HF (third-party file).

What went wrong

  • KV overstated in the driver race. Every seat budget from 2026-09-12 to 2026-09-19 used 82 KB/token f16 (20.5 KB q4_0) computed over all 41 layers (coding-seat-ornith35b.sh header). On 2026-10-11: "Ornith-35B is a hybrid model: only every fourth layer uses standard attention (10 of its 41)... about 5.6 KB per token" at q4_0. The 192-vs-82 comparison in a lab note therefore overstates this file's KV about 4×. The K2 side was not re-derived.
  • q4_0 KV arithmetic: q4_0 is 4.5 bits per value (18 bytes per 32), so 82 KB f16 is ~23 KB at q4_0, not 20.5.
  • Mislabelled KV for the board. On 2026-09-13 the assistant said the recorded scores were "Ornith at q4_0 KV"; the board ran on breadth-seat-ornith35b.sh, which sets no -ctk, so f16 KV.
  • Brief failures blamed on the model. A Hermes status note said the briefs are "pinned to the ornith-35b model which is fine for short jobs but chokes on long multi-step briefs"; the causes were --cache-ram 2048 (one 1,254 MiB cache entry) and -np 1. Fixed by raising both.
  • Wedged by oversubscription 2026-09-19 ~00:22Z: six seats (~57 GB) brought up for the feel test produced "Compute error" and the production seat stopped streaming; restarted with its original flags.
  • Contention: 12.3 t/s during BTL-4's gauntlet on 2026-09-15, with a 38,433-token context.
  • Drift out of the seat 2026-09-28 → 2026-10-12: no agent knew the 35B was the intended occupant. Resolved by Alan's "play seat" ruling.
  • Thinking by default: without enable_thinking:false the reply is in reasoning_content and content is empty, which clients read as errors.

What happened to it

Downloaded 2026-09-12 → benched 2026-09-12 → coding seat 2026-09-13 → Hermes/brief driver 2026-09-13 → judgment seat and default swap occupant 2026-09-19/20 → unseated 2026-09-28 → re-seated 2026-10-12 → on disk at models/ornith-1.5-35b-a3b/Ornith-1.5-35B-A3B-Q4_0.gguf (20,415,243,936 B, stat 2026-10-23). Production binary still b10893 on 2026-10-23 (.local/bin/llama-server → llama.cpp/build/bin/llama-server, version 0.4.0-dev build 10893). Re-downloadable from https://huggingface.co/bartowski/Ornith-1.5-35B-A3B-GGUF.